在Jmeter進行並發測試時,經常會出現請求沒有按照順序執行,如下圖(進行登錄,需要先設置登錄公共信息、再獲取驗證碼等)
從結果樹中可以看到執行順序並沒有按照1-2-3-4,1-2-3-4 去執行
為什么會出現這種情況呢?那是因為多線程競爭的原因。多線程執行並發操作,肯定是誰跑得快誰就先執行,線程才不會傻乎乎的的排隊。
jmeter自帶了一個事物鎖控制器。
官方把它定義為線程鎖控制器(Critical Section Controller)
意思就是這個鎖下面的請求,在相同的時間點只會有一個線程去執行它,也就意味着這個鎖下面的事物在相同的時間點會給每個線程分配一個,不會產生競爭。
設置了線程鎖控制器(Critical Section Controller)后,再次看結果樹
此時就按照順序執行了