性能测试基础
一、基础概念
1.1、性能测试定义:
指通过自动化的测试工具模拟多种正常、峰值异常负载条件来对系统的各项性能指标进行测试。
1.2、事务: 事务又称为Transaction
1.2.1 loadrunner定义事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这就定义了一个transaction.
1.2.2 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数.
1.2.3 QPS(TPS):每秒钟request/事务数量 QPS(TPS)= 并发数/平均响应时间
1.3、用户数:
**并发用户数:**某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
**在线用户数:**某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
**系统用户数:**系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
1.4、响应时间: 从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间,一般取平均响应时间
响应时间可以简单理解为对请求做出响应所需要的时间。
1.5、吞吐量:单位时间内系统处理的客户端请求的数量 Throughput = (number of requests) / (total time)
1.6、资源利用率: 指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
*系统资源:CPU、内存、磁盘IO等
1.7、思考时间: 用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力
1.8、点击数: 每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次请求,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。
1.9、集合点: 集合点可以简单得理解为一种控制虚拟用户行为的机制,该机制可以达到在一定时间范围内将一定数量的虚拟用户阻挡在一个操作行为点前的位置进行互相等待,在条件(达到虚拟用户数量或超时)到达后唤醒全部等待中的虚拟用户,从而达到使得一定数量的虚拟用户可以同时进入下一个操作行为点的目的
集合点作用:实现最大意义上的并发来考察系统应对此种极端情况的表现, 集合点是一种特殊情况下的并发,通常是在以调优为目的的性能测试中才会用得到,目的是有针对性地对某个可能存在性能问题的模块施压,以便找到性能瓶颈。
二、性能测试分类:
2.1、基准测试(Benchmark Test): 在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
2.2、负载测试(Load Testing):负载测试是指在一定的软件、硬件和网络环境下,运行一种或多种业务,在不同虚拟用户数量情况下,测试服务器的性能指标是否满足用户需求,以此确定系统所能承载的最大用户数、最大有效用户数,侧重不同负载情况下的系统状态。
2.3、压力测试(Stress Testing): 是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力
2.4、稳定性测试(Stability Test):在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定
2.5、并发测试(Concurrency testing): 测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题
三、应用场景
通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:
未完待续