一、JMeter执⾏原理
JMerer通过线程组来驱动多个(也可以理解为LR⼯具⾥⾯的虚拟⽤户)运⾏测试脚本对⽬标服务器发起⼤量的⽹络请 求,在每个客户端上可以运⾏多个线程组,也就是说⼀个测试计划⾥⾯可以包含N个线程组。
线程数 ⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。
Ramp-Up时间(秒) 该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线 程数设置50,设置的时间为5秒,那么计算的公式为:
每秒执⾏线程数=线程数/Ramp-Up 具体如: 如设置的线程数为50,Ramp-up的时间为10,那么也就是说开启执⾏后,每秒会启动5个线程,如果Ramp-Up设置为 0,那么开始执⾏后,50个线程会⽴刻启动。
二、jmeter性能测试实战
我们以百度实战为例
1、在线程里面创建一个新的【线程组】,在【线程组】添加里面找到【取样器】,创建一新的【HTTP请求】

2、在【HTTP请求】中,我们找到路径把百度的请求地址放到里面

3、创建查看结果,查看结果是在监听器中,它的组件具体如下:
1、查看结果树:查看发送网络请求后返回的信息
2、响应时间图:发送N次请求过程中响应时间的趋势图



4、添加【聚合报告】【汇总报告】,使我们能更加直观的看到【样本数】【平均值】【中位数】【最大最小值】等等测试数据

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:每秒从客户端发送的请求的数量
5、添加调度器
调度器: 持续时间:指的是所有的任务执行完成后,任务再接着执行N秒,目的是验证被测服务的稳定性

启动延迟:等待把所有被执行的任务集合中一起来瞬间来执行

性能测试注意事项: 客户端本身的资源也是有限的,到具体一定的值,就不能再扩大每秒并发用户数了 。这个时候使用分布式的技术来实现。
六、循环次数

汇总报告跟聚合报告的区别:

三、下载使用PerfMon插件:
1、我们在性能测试的过程中,需要收集被测目标服务器的终端的系统资源
A、在目标服务器部署serveragent(功能就是收集数据)
B、在JMeter连接serveragent,把收集的数据展示出来

启动插件

启动成功

下载PerfMon



后端监听器:


四、 Grafana可视化展示
1、我们打开【Grafana】http://47.95.142.233:3000/d/Z6Jz03i7k/apache-jmeter-dashboard?orgId=1&refresh=5s
2、在里面我们可以详细的看到我们测试的数据

3、我们使用jmeter做性能测试的时候一共可以通过六种方式来查看他的测试数据