2010-06-29 68 views
3

我正在寫一個jmeter腳本,並且我有一個大量的csv文件,這些數據在我的請求中使用,是否可以從第一個入口開始,而不是從第5個開始或第n個條目?使用jmeter讀取csv(從x開始)

回答

4

看看CSVDataSet,它似乎不直接支持跳到給定的行。但是,您可以通過首先執行N個循環來仿效相同的效果,您只需從數據集中讀取數據,而不對數據執行任何操作。接下來是一個包含實際測試的循環。我已經使用JMeter已經有一段時間了 - 爲了使這種方法起作用,您必須在兩個循環之間共享相同的CVSDataSet。

如果這是不可能的,那麼有一個選擇。在您的主測試循環中,使用Counter和If Controller。計數器從1開始遞增。If控制器包含您的測試,條件爲${Counter}>N,其中N是要跳過的數字。 (「計數器」在表達式中是無論你設置「參考名稱」屬性「在計數器中。)

3

mdma的第二個想法是一個乾淨的方法來做到這一點,但這裏有兩個其他選項是簡單的,但討厭的事:

  1. 最簡單的: 創建單獨的CSV文件要啓動文件,刪除你不需要的行我會爲每一個CSV文件中單獨的CSV數據配置元素,那麼只需禁用那些你不想運行的那些。

  2. 較不容易: 創建一個新的柱子n在您的CSV文件中稱爲「忽略」。在要跳過的行中,輸入值「True」。在您的測試計劃中,創建一個作爲您的請求的父級的IF控制器。使If條件:"${ignore}"!="True"(包括引號和注意'true'區分大小寫)。如果'ignore'列的值爲'true',這將跳過這些請求。

這兩種方法都需要修改CSV文件,但兩個方法有其他的應用程序(如不包括標題行),如果你使用的Open Office,Excel可以快速等

+0

+1第二種方法很有意義並且非常乾淨 – Diadistis 2010-07-09 07:35:50

+0

值得注意的是,如果您試圖控制從CSV讀取的總行數,第二種方法會影響循環計數。例如,如果你想要10個循環,但是你的CSV對於兩行有「忽略== TRUE」,你只能得到8次執行。您最終得到一個有趣的公式,其中讀取了實際循環計數==期望循環計數+(希望循環計數/ CSV文件中的行的上限) – BlackGaff 2010-07-14 20:07:01