带有 CSV 测试数据的编程 JMeter 配置

Programmatic JMeter configuration with CSV test data

我是 运行 JMeter,以编程方式来自 Java 代码,我想生成一堆 POST 具有不同主体的请求。 这是我用来生成一个请求的采样器:

HTTPSamplerProxy sampler = new HTTPSamplerProxy();
sampler.setDomain("localhost");
sampler.setPort(8081);
sampler.setPath("/service");
sampler.setMethod("POST");
sampler.addEncodedArgument("body", "{\"key\": \"data\"}");
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());

如何用 CSV 文件中的值替换每个请求正文中的 data

我知道在 GUI 版本中有 CSV Data Set Config 插件,但我还没有从 Java 代码中找到使用它的方法。

鉴于您能够创建 HTTP Request sampler using JMeter API you can take the similar steps to create the CSV Data Set Config。只需查看 .jmx 文件并将您在其中看到的内容转换为 Java 代码。

万一你做不到:

CSVDataSet csvDataSet = new CSVDataSet();
csvDataSet.setName("CSV Data Set Config");
csvDataSet.setProperty("delimiter", ",");
csvDataSet.setProperty("filename", "test.csv");
csvDataSet.setProperty("ignoreFirstLine", false);
csvDataSet.setProperty("quotedData", false);
csvDataSet.setProperty("recycle", true);
csvDataSet.setProperty("shareMode", "shareMode.all");
csvDataSet.setProperty("stopThread", false);
csvDataSet.setProperty("variableNames", "foo");
csvDataSet.setProperty(TestElement.TEST_CLASS, csvDataSet.getClass().getName());
csvDataSet.setProperty(TestElement.GUI_CLASS, TestBeanGUI.class.getName());

有关启动 JMeter 测试的各种方法的更多信息,包括在 Java 中从头开始创建脚本,请参阅 Five Ways To Launch a JMeter Test without Using the JMeter GUI 文章。


如果您的测试计划生成必须是程序化的但不一定是 Java 您可能会发现 Taurus 工具更容易使用,因为您将能够使用声明式创建测试YAML 语法。