我的 JMeter 测试:
- 使用登录凭据迭代 CSV 文件 (logins.csv),其唯一标识符用户为 CsvDataSetConfig
- 登入
- 根据登录凭据(来自 logins.csv 的唯一标识符),识别并加载第二个文件,该文件的格式
<user_identifier>_invoices.csv
具有查看该用户发票所需的路径。
简化的测试设置:
ThreadGroup
> CsvDataSetConfig - file: logins.csv, variables: user_identifier,email,password, sharing_mode: all threads
> `SignIn` TransactionController using email and password from above CSV file to login via series of HTTP Requests
> UserParameters - USER_IDENTIFIER,INVOICE_CSV_FOR_USER
> BeanShellSampler
props.setProperty("USER_IDENTIFIER", vars.get("user_identifier"));
props.setProperty("INVOICE_CSV_FOR_USER","${__P(USER_IDENTIFIER)}_invoices.csv");
> WhileController - condition: ${__javaScript("${invoice-id}" != "<EOF>",)}
> CsvDataSetConfig - file: ${__P(INVOICE_CSV_FOR_USER,)}, variables: invoice-id, sharing_mode: current thread
> `ViewInvoice` TransactionController with HTTP Request to url `../${invoice-id}`
# logins.csv
c7beaa99c6d99fa7754fc2213f9b17b8,foo@example.com,password321
9c8466bee65e39c9d3cf715e42933c3b,bar@example.com,password456
# c7beaa99c6d99fa7754fc2213f9b17b8_invoices.csv
f54eca1cbbba4a97c1dc459e0ba64970
0024f2cdf28dd7ebf3606988fd229afd
# 9c8466bee65e39c9d3cf715e42933c3b_invoices.csv
64f725fdeb2980b28bdf5e02076a55cd
60ac45a12ea3d6b59c2cb82f27da1722
问题:
- 在本地 JMeter 中,看到对业务发出的发票 url 请求不正确
invoice-id
。所以似乎参数在线程之间没有被正确处理。 - 在 BlazeMeter 中,永远不会看到 while 控制器的内容。
我试过循环控制器,每个 _invoices.csv 文件有 50 行,但也没有任何结果。我最初也是从用户定义的变量而不是用户参数开始的,但后者似乎是我应该在这个用例中使用的。