一、性能测试中的常见指标及其含义
1、并发用户数
并发用户的含义分为狭义和广义两种。
狭义上的,或者说严格意义上的并发用户,指的是同一时刻做同一件事件的用户,如操作同一记录或不同记录。
广义上的,则是指在同一时间内,对系统发出请求或操作,可以是相同的请求或操作,也可以是不同的。
狭义的并发用户,主要用于针对核心模块或核心算法的测试中,与功能相关,是健壮性和稳定性测试的一部分,需要在广义的并发测试前进行。
而并发用户数,就是同一时刻与服务器进行交互的在线用户数量。
2、请求响应时间
请求响应时间,是指客户端发出请求到得到响应的整个过程的时间,包括了网络响应时间、应用与系统的响应时间。
4、事务响应时间
事务,是有一系列请求组成的,其响应时间针对用户而言,属于宏观的业务上的概念。顾名思义,事务响应时间,则是用户完成一个对于用户来说具有原子性价值的业务操作的时间,包含了一个或多个请求。
5、吞吐量
一次性能测试过程中,网络上传输的数据流量的总和。
6、吞吐率
单位时间内的吞吐量,常用单位有字节数/秒、请求数/秒、页面数/秒。
7、TPS
每秒能够处理的交易或事物的数量。
8、点击率
点击率,指的是每秒用户向服务器提交的http请求的数量,是web应用特有的。注意,鼠标在页面的单击数不一定等于点击数!一次单击,可能会发起多个请求,引起多个点击。
9、资源利用率
不同资源的使用程度,是分析与改善系统性能的主要依据。我们只有在充分了解了JVM、操作系统、数据库、网络等各方面的基础原理,才能做出有效的分析。
思考:
并发用户数,是否与force-bot上的虚拟用户数有区别?
二、性能测试的种类
1、压力测试
对系统不断施加压力,通过确定一个系统的瓶颈或者不能接收用户请求的性能点,来获得系统能提供的最大服务级别。
2、负载测试
在被测系统上不断增加压力,知道性能指标达到极限。
3、强度测试
为了测试系统在异常情况下的处理能力。
4、并发测试
测试多用户同时访问同一系统、同一模块、同一业务功能、同一数据记录时,是否存在功能或性能问题。
5、大数据量测试
大数据量分为两种情况,一种是运行时大数据量测试,例如较长数据的请求处理;一种是历史大数据量测试,例如在海量存量数据的情况下,对系统进行读写操作。
6、配置测试
通过测试,找到系统各项资源的最优分配原则,用于性能调优。
7、可靠性测试
一定压力下,长时间运行,确定系统是否稳定可靠。
8、狭义性能测试
即我们常规的性能测试,模拟生产运行时的使用场景和业务压力,评估系统的性能是否满足生产性能要求。通常施加的压力,会稍稍超出正常压力,以便系统对于一些峰值情况能留有余地。
思考:
以上各种测试,只是概念上的区分,在实际执行中并没有明显的界限区分,我们应当理解各类测试的目的,对比条件、目的和手段,厘清内部联系,在实际项目中有机组合,高效执行。
三、粗谈性能调整
1、目的
性能调整的目的,是为了改变系统的性能特性。
性能调整,而不是叫做性能调优,是因为所做的调整,并不一定使得系统获得整体的性能提升,有可能存在拆东墙、补西墙的情况。
2、步骤
性能调整包括以下几个步骤:
1)确定问题
2)确定原因
3)确定调整目标
4)确定解决方案
确定解决方案时,应考虑是整体性能得到改善,还是牺牲了其他部分性能。如果牺牲了其他部分性能,需要回过头去修正调整目标,同时劣化的那部分性能指标,也需要在后继的测试中进行验证。
5)测试解决方案
6)分析调整结果
3、流程:
4、方案要点
测试需求、测试场景、测试预案、方案评审