2014-04-04 57 views
3

在我的網站上,我有兩個商家操作:搜索和瀏覽。搜索通常會觸發三種瀏覽。使用JMeter時嵌套在循環中。嵌套循環控制器和CSV數據集配置。

我已經運行在這個規模測試,我想使用的所有在我的網站上的商家時使用的商戶和商戶ID號的CSV文件,JMeter測試。

我在JMeter的映射這就像這樣:

  • 迴路控制器
    • HTTP取樣(搜索/搜索/ $ {MERCHANT_NAME})
    • CSV數據集配置(商家名稱)
    • 迴路控制器
      • HTTP採樣器(瀏覽/ merchant/$ {merchant_id})
      • 個CSV數據集配置(商家ID)

我在內環的外環和loop count = 3設置loop count = 2

我想到兩個搜索觸發6種瀏覽行爲。但是我得到的是一個搜索,然後是三個瀏覽,一直持續到我放棄測試。

有我誤解了循環結構?這是預期的行爲?

我如何能實現我的搜索的運行目標,接着是三個瀏覽,兩次?

回答

0

我認爲你濫用CSV數據集的配置。

我有你的工作情況如下:

鑑於以下CSV文件:

merchants.csv包含:

merchant1name 
merchant2name 

和其他2 CSV文件:merchant1name.csvmerchant2name.csv與內容:

id1 
id2 
id3 

及後續測試計劃結構:

  • 線程組(1線,1秒系統預熱,1環)
    • 迴路控制器(2路)
      • HTTP請求/ $ {MERCHANTNAME}
        • BeanShell的後置處理器(見下面的代碼和說明)
      • CSV數據集配置(文件名:完整路徑MERC HANTS。csv文件,變量名:MERCHANTNAME,所有默認值)
      • 迴路控制器(3圈)
        • HTTP請求/ $ {MERCHANTID}
          • CSV數據集配置(文件名:完整路徑merchantname1文件,merchantname1應是屬性,變量名:MERCHANTID,所有默認值)

通過關於CSV數據集配置使用「所有默認設置」我認爲以下幾點:

  • 文件編碼 - 空(我JMeter是與運行UTF-8是罰款大多數情況下)
  • 分隔符 - 在EOF假
  • 回收 - - ,(逗號)
  • 允許引用數據真實
  • 停止線程EOF - 假
  • 共享模式 - 所有主題

的BeanShell代碼:

props.put("merchantname", vars.get("merchantname")); 

這是必須的CSV數據配置不允許在文件路徑中使用的變量。

路徑在內部循環:

C:\jmeter\${__P(merchantname,)}.csv 

你可以參考http://glinius.narod.ru/stackoverflow/nestedloop.zip文件。從「nestedloop」文件夾(1個jmx文件和3個CSV文件)解壓所有文件到JMeter的/ bin文件夾並運行測試。它會產生8個請求

參考資料:

  1. Using CSV DATA SET CONFIG
  2. How to use BeanShell
+0

它總是讀一個商戶的詳細信息 – binary