2017-03-08 33 views
1

我正在使用簡單的JMeter腳本和使用WHILE控制器。 當我運行測試一個用戶和一個迭代,而控制器執行良好。Jmeter:雖然控制器:循環沒有得到執行第二次itreration

當我運行爲一個用戶和兩個(大於1)次迭代的測試時,控制不內部去而控制器

爲例如1個用戶和3迭代

迭代1:當控制器將是執行:迭代將通過
迭代2:當控制器將被執行:迭代失敗
迭代3:當控制器將被執行:迭代失敗

預先感謝。

+0

您在'While Controller'中指定的條件是什麼?請添加屏幕截圖。 –

+0

@Naveen附加條件作參考, $ {__使用Javascript(「$ {file_status}」!=「UNPUBLISHED」)} –

回答

0

我意料的是,你需要在第2次迭代開始重新${file_status}變量值,不知道你的測試計劃,我只能建議通過JSR223 Test Element做這件事的細節,該代碼會那樣簡單:

vars.put("file_status", "something not equal to UNPUBLISHED") 

vars是一個速記JMeterVariables類的實例,它提供了讀取範圍內的所有JMeter Variables /寫訪問,上面的代碼將${file_status}變量的值設置爲等第二和進一步的迭代你雖然從UNPUBLISHED不同的東西控制器也將被執行。

查看在JMeter的測試中使用Groovy腳本Groovy Is the New Black文章以獲取更多信息。

+0

我看到兩個JSR223下的前置和後置processer如果將預處理器作爲一個孩子這是更優選 –

+0

它會在請求之前執行的請求,PostProcessor會在它之後執行。我沒有足夠的心靈感應來建議使用哪一個,JSR223採樣器放在While控制器之前肯定會工作 –

+0

這次運行良好...只是實現了你的建議,在WHILE之前添加了JSR223採樣器並將它們重置爲其他值:) –