最近公司項目需要做壓力測試,所以初步研究了一下JMeter的使用。
項目要求對單接口進行並發操作,但是由於該接口需要先獲取token等其他值后,才能夠正常執行。所以會存在一個測試計划下,有多個http請求,我原以為jmeter會按照我調整的次序順序執行,后面腳本完成以后多並發執行,開發告訴我部分接口調用的數據有誤,我才反應過來jmeter同一個測試計划下的所有接口,都是同時並發執行的,如果需要順序執行,需要添加一個邏輯控制器,也就是Critical Section Controller
這個是通過右鍵點擊線程組,依次選擇Add-Logic Controller-Critical Section Controller,而后將你需要順序執行的多個接口按照你想要的次序,放到這個控制器下,重新執行后,查看“察看結果樹”就可以發現這個時候執行的次序就是你排列的順序。
但是這個有一個情況,就是我這個控制器下,一共放了三個http請求,多並發,但是執行完畢后,察看結果樹列表展示,第1個請求會在所有線程依次執行完以后繼續重復執行;查看聚合報告,發現第一個請求的樣本數總是與第2、3個不一致,而第2、3個請求的樣本數則是一致的。請教過開發,也在網上查閱了很多資料都沒有找到相應的解決辦法,希望有大佬指點迷津,感謝。(這個第1個請求就是獲取token)