一、背景
在Jmeter進行併發測試的時候,請求有時候並不能按照我們想要的順序執行。
二、原因
這個是因爲多線程會存在競爭。多線程執行併發操作,肯定是誰跑得快誰就先執行,線程纔不會進行排隊。所以就導致請求的順序不會按照我們錄入的先後來執行。
三、解決方案
使用jmeter自帶的一個事物鎖控制器:官方把它定義爲線程鎖控制器(Critical Section Controller),中文翻譯是臨界部分控制器。
使用了這個控制器,在鎖下面的請求,在相同的時間點只會有一個線程去執行它,不會產生競爭。這樣子的話,我們把需要按照順序執行的請求,直接放在這個控制器下面,就可以按照順序執行了。
四、舉個例子
上述截圖中,我們調用下單接口之前,是需要先執行預下單接口的,故我們按照順序把兩個請求,放在同一個臨界部分控制器下面,那麼執行線程組的時候,就可以看到請求是按照預下單,下單的順序執行了。