一個線程組下,多個CSV文件的總結:說明:1csv中的值為a:5;2csv中的值為b:3
1、CSV在不同的循環控制器下,按照順序執行(即1csv-1取樣器-2csv-2取樣器);如1取樣器中的${b}獲取不到值,因為在執行1取樣器時,2csv還沒執行,所以獲取不到b的值;
2、當1csv對應的循環控制器設置為1,2csv對應的循環控制器設置為2時,執行邏輯為:
執行第一個循環控制器:
讀取1csv中的a=5 ,執行1取樣器,結果為1:5___${b}
執行第二個循環控制器:
第一次循環:讀取2csv中的b=3,執行2取樣器,結果為2:5___3(因為a的值沒有重新讀,也沒有變化,所以還是取1取樣器中a的值)
第二次循環:讀取2csv中的b=(因為csv設置的是遇到文件結束符再次循環為false),執行2取樣器,
結果為2:5___eof
csv設置的遇到文件結束符停止線程-true,當超出csv數據行數的時候,線程自動停止;如csv有5行數據,循環6次,則第6次時,線程自動停止;
csv設置的遇到文件結束符停止線程-false,循環控制器會一致循環,永遠在循環控制器里面執行;
所以我們試算腳本中寫的循環永遠是不對的,會導致后面的試算無法執行;
csv設置的遇到文件結束符再次循環-true,當讀取到csv最后一行后,從頭開始讀csv文件;
csv設置的遇到文件結束符再次循環-false,當讀取到csv最后一行后,讀取的值為eof;
兩個CSV變量名不一樣時,b=3 ,a=5;
兩個CSV變量名一樣時,取其中一個的值
說明:3csv都是同一個文件名,變量,設置等;
如下圖,第一個循環控制器循環2次,第二個循環控制器循環8次;
最終結果是2取樣器打印的值是接着1取樣器之后的值;
說明:3dsv與4csv是不同的文件名,其他變量什么的都一樣;
如下圖,第一個循環控制器循環2次,第二個循環控制器循環8次;
最終結果是2取樣器打印的值是4csv第一行開始的值;
總結:如果不同的循環控制器的csv文件是一模一樣的,jmeter會把這兩個文件當成一個文件來運行;
