一、性能测试指标
二、性能测试目的
三、性能测试的范围
四、性能测试流程
五、性能测试
5.1、性能测试需求
问题:测试环境与生成环境不一样
5.2、性能测试数据
数据分为:业务数据 + 基础数据(测试环境数据尽量接近生成环境数据)
5.3、测试指标估算
5.4、性能测试策略
5.5、测试执行方案
5.6、分析性能测试结果
从那几个角度分析:
1、根据场景运行过程中的错误提示信息
➢应用服务死掉
(小用户量时:程序上的问题。程序上处理数据库的问题)
➢应用服务没有死
(应用服务参数设置问题)
➢数据库的连接
( 1、在应用服务的性能参数可能太小了2、数据库启动的最大连接数
(跟硬件的内存有关) )
2、根据测试结果收集到的监控指标数据
➢最大并发用户数
➢业务操作响应时间
➢服务器资源监控指标
➢TPS
硬件分析
六、Jmeter工具
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。
Jmeter能够对HTTP、FTP服务器和数据库进行压力和性能测试
工作原理: 模拟用户向服务器发送请求,收集服务器返回来的数据,展示成一个图表或对数据进行整合的过程。
JMeter与LoadRunner比较
七、JMeter并发配置
线程数: 设置发送请求的用户数目, 即并发数,根据实际需要设置即可。
Ramp-Up.Period(in second): 所有线程在多少时间内启动,一般设置和并发数一致,这样不用一下子给服务器过大的压力。
线程属性-循环次数: 请求的重复次数,即该线程组下面的重复运行的次数,根据实际需要设置即可。
JMeter集合点
线程组–》添加–》定时器–》同步定时器(Synchronizing Timer)
Timeout in milliseconds默认为0。所以当timeout设置为0 ,但是线程数又不满足集合点中设置的值时,就一i直等待 ,不执行请求,需要手动stop;(例:用户组数量为3,超时时间为0,若人数没有达到3人会一直等)
如果大于0 ,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到" Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。也就是说如果线程数不满足集合点中设置的值,则在timeout中设置的时间后继续执行不足的那些线程。(例:用户组数量为3,超时时间>0,若人数没有在设置超时的时间内达到3人会执行)
八、脚本参数化
1.本地文件参数放置正常,多个参数分隔符种meter分隔符保持一致
2.变量名填写phone,name
3.后续接口请求中进行参数化引用 ${phone} ${name}
注意: 引用的参数名跟用户定义变量设置的名称必须保持-致
九、案例
jp@gc - Active Threads Over Time: 在线用户数
jp@gc - Transactions per Second : TPS
jp@gc - Composite Graph: 总和报告
响应时间图(默认10秒显示一次)