2013-05-09 123 views
0

我遇到了麻煩,我該如何將它放入JMeter測試中,並確保分配給每個線程的所有客戶編號正在使用?JMeter - 通過CSV迭代使用變量

我的負載測試...

•有12個SOAP請求(12×RequestTypes)需要爲每個客戶可以同時發送。在SOAP請求中,客戶通過CustomerNumber加以區分。 例如:

<Execute> 
<UserCredentials></UserCredentials> 
<CustomerNumber></CustomerNumber> 
<RequestType></RequestType> 
</Execute> 

•我有3級線程的用戶,每個線程的用戶每個人都有客戶的指定列表,例如:

Thread 1 has customer list – A, D, G, J, … 
Thread 2 has customer list – B, E, H, K, … 
Thread 3 has customer list – C, F, I, L, … 

•線程無法發送另一組12 SOAP的請求另一個客戶,除非已經爲其客戶的所有先前的12個SOAP請求獲取響應(這個響應是SOAP還是應用程序失敗並不重要)

CustomerNumber和相應的UserCredentials將存儲在CSV文件中。

•線程用戶必須在SOAP請求中使用自己的憑證。

•只有當CSV文件中的每個線程的所有客戶號碼已發送完畢,纔會完成發送的請求。

我目前有:

Test Plan 
| 
-Thread Group 
    | 
    - User Parameters 
     *UserCredentials 
     *CustomerNumbers 
    | 
    - Loop Controller 
     | 
     - Request 1 
     - Request 2 
     ... 
     - Request 12 

在用戶參數我有以下幾點:

Name:    User_1      User 2      User 3 
UserCredentials  ${__CSVRead(users.csv,0)}  ${__CSVRead(users.csv,1)}  ${__CSVRead(users.csv,2)} 
CustomerNumbers  ${__CSVRead(cust.csv,0)}  ${__CSVRead(cust.csv,1)}  ${__CSVRead(cust.csv,2)} 

我在同一時間發送3線用戶,每個用戶發送12個請求。每個線程用戶都有一個n個患者的列表。

問題是,我的迴路控制器設置爲2,我本來會期望在每個線程的第二次運行時,它會爲客戶號碼接收第二行,但它不會。

任何幫助將不勝感激!

回答

0

要回答我的問題:

Thread Group 
*Number of Threads = n 
*Loop Count = Forever 
| 
- CSV Data Set Config 
    *Filename = cust${__threadNum}.csv  (where i separated my cust.csv file into n number of files) 
    *Stop of thread EOF = true (others on False) 
    *All threads sharing mode 
- Loop Controller 
    | 
    - Request 1 
    - Request 2 
    ... 
    - Request 12 
    - User Parameters 
    *User Credentials