软件性能测试基础知识总结

性能测试基础知识
一、基础概念:
1、性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
2、事务:事务又称为Transaction,
(1)loadrunner定义事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这就定义了一个transaction.
(2)一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数.
3、QPS(TPS):每秒钟request/事务数量 QPS(TPS)= 并发数/平均响应时间
4、并发数:
并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
    在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
    系统用户数:系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
5、响应时间:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间,一般取平均响应时间
响应时间可以简单理解为对请求做出响应所需要的时间。
6、吞吐量:单位时间内系统处理的客户端请求的数量 Throughput = (number of requests) / (total time)
7、资源利用率:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
*系统资源:CPU、内存、磁盘IO等
8、思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力
9、点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是”请求-响应”模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。
10、集合点:集合点可以简单得理解为一种控制虚拟用户行为的机制,该机制可以达到在一定时间范围内将一定数量的虚拟用户阻挡在一个操作行为点前的位置进行互相等待,在条件(达到虚拟用户数量或超时)到达后唤醒全部等待中的虚拟用户,从而达到使得一定数量的虚拟用户可以同时进入下一个操作行为点的目的
集合点作用:实现最大意义上的并发来考察系统应对此种极端情况的表现, 集合点是一种特殊情况下的并发,通常是在以调优为目的的性能测试中才会用得到,目的是有针对性地对某个可能存在性能问题的模块施压,以便找到性能瓶颈。

二、性能测试分类:
1、基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
2、负载测试(Load Testing):负载测试是指在一定的软件、硬件和网络环境下,运行一种或多种业务,在不同虚拟用户数量情况下,测试服务器的性能指标是否满足用户需求,以此确定系统所能承载的最大用户数、最大有效用户数,侧重不同负载情况下的系统状态。
3、压力测试:是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力
4、稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定
5、并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题

三、应用场景
  主要用途 典型场景 特点 常用性能
测试方法
能力验证 关注在给定的软硬件条件下,系统能否具有预期的能力表现 在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量? a)要求在已确定的环境下运行
b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。 a)负载测试
b)压力测试
c)稳定性能测试
规划能力 关注如何使系统具有我们要求的性能能力 某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置? a) 它是一种探索性的测试
b) 常用于了解系统性能和获得扩展性能的方法 a) 负载测试
b) 压力测试
c) 配置测试
性能调优 主要用于对系统性能进行调优 某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办? 每次只改变一个配置,切忌无 休止的调优 a) 并发测试
b) 压力测试
c) 配置测试
缺陷发现 发现缺陷或问题重现、定位手段 某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。 做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位 a) 并发测试
b) 压力测试
性能基准比较    常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。
2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:
这里写图片描述

四、中间件
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。


未完待续

猜你喜欢

转载自blog.csdn.net/jameswuang/article/details/79315072