我想使用 Jmeter 使用 http post 更新 solr 上的文档。我希望它在每次迭代中都需要一个不同的文件来更新,创建一个适当的 http post 请求并监控来自服务器的响应。
有人可以指导我如何做到这一点:
- 每次都使用不同的文件。
- 从中创建 http 帖子。
您的用例可以分为两部分:
- 获取要发送的文件列表
- 将它们发送到服务器
关于第 1 点,我建议通过脚本获取文件列表。
假设以下测试计划结构:
添加线程组(所有默认值)将 JSR223 采样器添加为线程组的子项选择"豆子"作为语言在"脚本"区域中,添加以下代码:
File folder = new File("PATH TO FOLDER WITH YOUR FILES");
File [] files2send = folder.listFiles();
int counter = 1;
for (File file : files2send)
{
vars.put("FILE_" + counter, file.getPath());
counter++;
}
这将保存文件,您将作为JMeter变量发送,例如:
FILE_1=d:2solrsometxtfile.txt
FILE_2=d:2solrsomewordfile.docx
FILE_3=d:2solrsomeexcelfile.xlsx
之后,您可以使用 For Each Controller 循环访问文件并将其添加到您的请求中
为每个控制器添加作为线程组的子项(与 JSR223 采样器级别相同)
确保"对于每个控制器"具有以下配置:
- 输入变量前缀:文件
- 输出变量名称:当前文件
- 在检查数字之前添加 _
将 HTTP 请求添加为每个控制器的子项
在 HTTP 请求的"随请求发送文件"节中访问要作为 ${CURRENTFILE} 发送的文件
这只是其中一种方法,如果你对JSR233或Beanshell不是很满意,你可能希望使用CSV数据集配置。