jmeter是一个用于负载功能测试和性能测试的工具,该工具在使用过程中会出现一些问题,在此进行简单整理。
设置好qps后,执行jmx文件,压力达不到既定需求。
出现该问题的原因可能有以下两种:
(1)对于qps的设置 或者 计算 存在问题
在jmeter中一般使用Constant Throughput Timer设置qps
不同模式的qps计算方法不同:
- This thread only:仅对当前线程,也就是每个线程相互是不干扰的,都互相分开计算需要多少延迟时间(总吞吐量=Target throughput乘以线程数)
- All active threads:针对所有线程,把所有线程的吞吐量合在一起作为因子计算
- All active threads in current thread group:针对当前线程组中的所有线程
- All active threads(shared):线程延迟计算是基于任意一个线程上次运行的时间,也就是随便获取一个线程的运行时间来计算,既然是随机,结果就不一定准确,所以只能是努力控制吞吐量在某一个范围
- All active threads in current thread group (shared):在当前线程组中任取一个线程的上次运行时间来计算延时,与上面意思相近
个人感觉用jmeter测试性能的时候,一般用This thread only,感觉这样准一些。
(2)在压测过程中可以观察总的qps,观察是否一直达不到设定的qps。
如果设定无误,且执行压测的机器与被压服务在同一个机房/网络畅通,则可能为被测服务的问题,建议调整qps或者对被测服务进行性能调优。
- summary+ 为最近30s的qps信息
- summary= 为总的qps信息