我遇到了麻烦,如何将其放入 JMeter 测试并确保分配给每个线程的所有客户编号都在使用?
我的负载测试...
•需要为每个客户同时发送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 个患者的列表。
问题是,我将 Loop 控制器设置为 2,我希望在每个线程的第二次运行时,它会为CustomerNumber拾取第二行,但它没有。
任何帮助将不胜感激!