软件测试【JMeter性能测试部分】
JMeter性能测试
一、JMeter性能测试场景设置
JMerer通过线程组来驱动多个(也可以理解为LR⼯具⾥⾯的虚拟⽤户)运⾏测试脚本对⽬标服务器发起⼤量的⽹络请求,在每个客户端上可以运⾏多个线程组,也就是说⼀个测试计划⾥⾯可以包含N个线程组。
1、线程属性
1)线程数
⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。
取样器错误后要执⾏的动作
继续
如果有⼀个请求错误,其他的请求会继续,不会因为有⼀个请求错误的导致其他请求终⽌。
启动下⼀个进程循环
如果请求出现问题,同⼀脚本中的其他请求就都不再执⾏,直接执⾏下⼀个进程的信息。如登录后下⼀个请求是查看个⼈主⻚,但是因为登录出错,下个接⼝查看个⼈主⻚就不会被执⾏。
停⽌线程
停⽌线程指的是如果请求失败,就停⽌当前线程执⾏,不再继续执⾏。如果线程数很多的,那么导致的结果是停⽌的线程就会很多,处于真正运⾏的线程会很少,最后导致服务器的负载不够,⼀般不建议构选改选项。
停⽌测试
如果请求失败,那么停⽌所有线程执⾏,也就是说停⽌整个测试。
⽴即停⽌测试
如果请求失败,⽴即停⽌整个测试场景的执⾏。
2)Ramp-Up时间(秒)
该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线 程数设置50,设置的时间为5秒,那么计算的公式为:
每秒执⾏线程数=线程数/Ramp-Up
具体如:
如设置的线程数为50,Ramp-up的时间为10,那么也就是说开启执⾏后,每秒会启动5个线程,如果Ramp-Up设置为0,那么开始执⾏后,50个线程会⽴刻启动
3)调度器
所谓调度器可以理解为设置何时开始运⾏。
持续时间
测试计划持续多⻓时间
启动延迟
从当前时间延迟多⻓时间开始运⾏测试,也就是说点击执⾏后,仅仅是做初始化的场景,不会执⾏测试,等待延迟到达后开始运⾏测试,执⾏的时间为持续时间设置的时间。
2、JMeter监听器
1)聚合报告
聚合报告是以表格的形式来显示取样器的结果信息,如果不同的取样器拥有相同的名字,那么在聚合报告会显示在⼀⾏⾥⾯。
⼀般来说,聚合报告都是根据取样器来显示每个取样器的执⾏结果信息。聚合报告的信息具体如下:
其中,聚合报告各个值为
Label:取样器名称
Samples:取样器运⾏次数
Average:单个请求的平均响应时间
Median:50%请求的响应时间
90%Line:90%请求响应时间
95%Line:95%请求响应时间
99%Line:99%请求的响应时间
Min:请求的最⼩响应时间
Max:请求的最⼤响应时间
Std.Dev:响应时间的标准⽅差
Error%:事务错误率
Throughput:吞吐率,也就是TPS
KB/sec:每秒数据包流量
Avg.Bytes:平均数据流量
Received KB/sec:每秒从服务器端接收到的数据量
SentKB/sec:每秒从客户端发送的请求的数量
2)响应时间
响应时间趋势图反馈的是请求的时间趋势图,具体如下:
3、后端监听器
后端监听器可以把JMeter与influxdb,grafana整合起来,把性能测试过程中的数据存储到influxdb,然后最后显示在grafana的可视化界⾯中。
1)后端监听器工作流程
如图所示:
2)后端监听器配置
(1)建立后端监听器,后端监听器创建如图所示:
(2)选择【后端监听器实现】,选择最后一种,如图所示
(3)安装监听插件,打开安装插件,如图所示:
(4)选择插件,点击Available Plugins,选择PerfMon(Servers Performance Monitoring),进行安装,安装后如图所示:
(5)退出插件页面后,打开该插件,并命名为【监听器资源】,如图所示:
(6)配置完毕
二、JMeter性能实战
1、配置修改
在JMeter的当前⽬录下,把bin⽬录下的jmeter.properties⽂件中 jmeter.save.saveservice.output_format=csv禁⽤取消,如图所示:
2、环境变量配置
1)把JMeter设置到path的环境变量
打开电脑属性,打开高级系统设置,点击环境变量,在系统变量中找到path,打开path,添加【jmeter-5.4.1\bin】路径,即【D:\jmeter\apache-jmeter-5.4.1\bin】
2)在命令栏中执行命令
在命令栏中运行【jmeter -n -t script/1212.jmx -l testdev.jtl -e -o performanceReport/】
3、测试报告查看
执⾏成功后,会在performanceReport⽣成具体的性能测试报告以及⽂件信息,具体如下: