最近公司项目需要做压力测试,所以初步研究了一下JMeter的使用。
项目要求对单接口进行并发操作,但是由于该接口需要先获取token等其他值后,才能够正常执行。所以会存在一个测试计划下,有多个http请求,我原以为jmeter会按照我调整的次序顺序执行,后面脚本完成以后多并发执行,开发告诉我部分接口调用的数据有误,我才反应过来jmeter同一个测试计划下的所有接口,都是同时并发执行的,如果需要顺序执行,需要添加一个逻辑控制器,也就是Critical Section Controller
这个是通过右键点击线程组,依次选择Add-Logic Controller-Critical Section Controller,而后将你需要顺序执行的多个接口按照你想要的次序,放到这个控制器下,重新执行后,查看“察看结果树”就可以发现这个时候执行的次序就是你排列的顺序。
但是这个有一个情况,就是我这个控制器下,一共放了三个http请求,多并发,但是执行完毕后,察看结果树列表展示,第1个请求会在所有线程依次执行完以后继续重复执行;查看聚合报告,发现第一个请求的样本数总是与第2、3个不一致,而第2、3个请求的样本数则是一致的。请教过开发,也在网上查阅了很多资料都没有找到相应的解决办法,希望有大佬指点迷津,感谢。(这个第1个请求就是获取token)