2017-03-17 62 views
0

我有CSV(Users.CSV),它包含10000個唯一的用戶名,名,姓和電子郵件ID。在我的測試計劃中的一個POST請求中,我需要通過日期。我只能在相同的日期發佈數據一次。我如何使用CSV或任何其他方式處理此問題?如何在Jmeter回收中更改CSV中的一個變量值

我可以想到兩個選項: 1.將相同的日期拖動到同一Users.CSV中的所有10000條目。然後再次將用戶名,名字,姓氏和電子郵件ID粘貼到同一CSV中,然後拖動下一個日期。 2.維護兩個CSV文件,一個用於用戶,一個用於日期。 Date.csv在同一日期將有10000個條目,在10001之後將包含下一個日期。

在這兩種解決方案中,我需要維護樣本計數,因爲我需要從CSV中刪除那些用於下次運行的很多條目。

有人可以分享任何更好的選擇來實現這一目標嗎?

回答

1

您可以使用兩種compoenent更多的信息來解決這個問題: -

  1. User Defined Variables
  2. BeanShell-PreProcessor

步驟1:在腳本中使用用戶定義的變量來保留計數器的日期,以便在做出特定的POST請求時不應使用相同的日期。

UDV example

步驟2:使用變量在步驟1中所定義,和寫腳本來獲得獨特日期在預處理器。這個預處理器應該作爲孩子添加到特定的POST請求中。預處理器

示例代碼: -

import java.text.SimpleDateFormat; 
import java.util.Date; 

    int dateCounter=Integer.parseInt(vars.get("dateCounter")); 

    Date currentDate = new Date(); 
    SimpleDateFormat date = new SimpleDateFormat("dd/MMM/yyyy"); 


    long milliseconds = (long) dateCounter * 24 * 60 * 60 * 1000; 
    Date previousDate = new Date(currentDate.getTime() - milliseconds); 
    String strDate = date.format(previousDate); 
    vars.put("date",strDate); 


    dateCounter = dateCounter - 1; 
    vars.put("dateCounter",Integer.toString(dateCounter)); 

請注意,我們使用的是最近的1000天的例子,你可以修改根據自己的需要。現在,這個date-Jmeter變量可以用於整個線程組,並且一旦使用partilculare POST採樣器生成日期,將爲下一個請求生成一個新日期。

相關問題