在做性能测试时,往往需要用到Jmeter中的线程组来模拟大用户并发场景。
一、线程组
1.在取样器错误后要执行的动作
- 继续:忽略错误,继续执行操作
- 启动下一进程循环:忽略错误,线程当前循环终止,执行下一个循环
- 停止线程:停止当前线程,其他线程不受影响
- 停止测试:当前执行的采样器结束后,停止整个测试计划
- 立即停止测试:立即停止整个测试计划
2.线程属性
- 线程数:当前线程数量,可以简单的理解为用户数量。
- Ramp-up 时间(秒):达到上面指定线程数所花费的时间,单位为秒。举个栗子:假设线程数为100个,花费时间20s,那么这100个线程会在20秒内启动。如果填写0,就表示同时并发。
- 循环次数:勾选“永远”选项,则线程组一直循环。否则,以后面所填数量为准。
- 延迟创建线程直到需要:当线程需要执行的时候,才会被创建。如果不勾选此选项,所有线程在开始时就全部被创建。
- 调度器:勾选此选项,才可修改下面的调度器配置。
3.调度器配置
- 持续时间(秒):整个测试计划持续的时间。(优先于后面的结束时间选项)
- 启动延迟(秒):测试计划启动后,会被延迟启动,时间为选项填入的时间。(优先于后面的启动时间选项)
二、聚合报告
当我们做性能测试后,往往需要记录各种指标,而聚合报告(Aggregate Report)可以说是必用的监听器。
右击线程组->添加->监听器->聚合报告
label:每个JMeter的http request都有一个name属性,这里就是name属性的值
#样本:表示这次测试中一共发出了多少个请求,例如这次我们模拟20个用户,每个用户迭代10次,那么这里显示的是200
平均值:平均响应时间
中位数:聚合报告会实时给请求耗时进行由小到大行排序,排序后在达到50%请求耗时时间
90%百分位:聚合报告会实时给请求耗时进行由小到大行排序,排序后在达到90%请求耗时时间
95%百分位:聚合报告会实时给请求耗时进行由小到大行排序,排序后在达到95%请求耗时时间
99%百分位:聚合报告会实时给请求耗时进行由小到大行排序,排序后在达到99%请求耗时时间
最大值:最大响应时间
异常%:本次测试中出现错误的请求的数量/请求总数
吞吐量:吞吐量-每秒完成的请求数
发送KB/sec:每秒从服务器接收到的数据量
三、实践
接下来,我们做一个线程数为30个,在3秒内启动完成,一个运行30秒的一个场景设计。
运行我们的脚本,等待结果,查看聚合报告。
这就是最基本的性能测试了。