2017-04-15 35 views
0

我在CSV/txt文件中有一百萬條記錄(只有一列沒有標題),我通過CSV數據集配置進行迭代並將其存儲爲變量。我還添加了控制器,以檢查文件的結尾以退出循環,並且在失敗任何事務之前也重試5次。所以我添加了5的計數器。while循環在EOF之前停止線程

問題是,這個邏輯工作正常,但只有CSV/txt文件中的50305個條目,它不會持續到EOF,不知道什麼是錯誤的,但每次都是令人興奮的以相同的方式,直到5035.

你能幫我循環,直到文件結束?是否因爲我使用groovy重置櫃檯而發生?

添加了屏幕截圖。

enter image description here

+0

你爲什麼要用While循環來循環到最後。在CSV數據集配置中,選擇EOF上的回收爲False和/或EOF上的線程停止爲真。該配置將運行至結束。請讓我知道它是否有效。 –

+0

當config提供一個值時,它將一直持續到EOF,並且還會更新配置以在到達結束時結束循環。但是我添加了while邏輯來在發生故障的情況下重試同一個HTTP採樣器5次。基本上,我必須讀取文件,將輸入傳遞給HTTP示例,如果採樣器失敗,則必須在標記失敗之前重試最多5次相同的HTTP請求。如果在第二次重試嘗試中重試成功,它也應該傳遞並向前移動。 –

回答

0

我會略有建議修改你的方案,並有2個雖然控制器,例如大綱:

  • While Controller,條件:${__javaScript("${myVar}" != "<EOF>",)}

    • CSV Data Set Config,變量名 - myVar回收在EOF上 - false,在EOF上停止線程 - false
    • If Controller,條件:"${myVar}" != "<EOF>"
      • 你的採樣
      • 如果控制器,條件${JMeterThread.last_sample_ok}"=="false"
      • 雖然控制器,條件${__javaScript(${counter} < 4 && "${JMeterThread.last_sample_ok}"=="false",)}
        • Counter:啓動1,增量1,參考名稱:counter
        • 你的採樣
  • 這就需要主區域1萬元的 「while」 循環

引用後執行任何其他採樣:

+0

我不能使用$ {JMeterThread.last_sample_ok}「==」false「,因爲HTTP請求總是提供200,因爲它只生成cookie id。在我的情況下,我必須傳遞一個cookie ID, cookie id.So我在while循環中修改了條件爲$ {__ javaScript((「$ {myvar}」!=「$ {myvar1}」)&& $ {counter3} <4,)}。這個邏輯,HTTP採樣器總是被重試5次,首先是if條件,然後是while條件中的4次,這使得所有的$ {myvar}「!=」$ {myvar1}「)條件總是確定哪個是不是這樣。 –