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

带有CSV测试数据的编程JMeter配置,csv,jmeter,automated-tests,performance-testing,Csv,Jmeter,Automated Tests,Performance Testing,我从Java代码以编程方式运行JMeter,我希望生成一组具有不同主体的POST请求。 下面是我用来生成一个请求的采样器: HTTPSamplerProxy sampler = new HTTPSamplerProxy(); sampler.setDomain("localhost"); sampler.setPort(8081); sampler.setPath("/service"); sampler.setMethod("POST"); sampler.addEncodedArgument

我从Java代码以编程方式运行JMeter,我希望生成一组具有不同主体的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文件中的值替换每个请求正文中的
数据


我知道GUI版本中有
CSV数据集配置
插件,但我还没有找到从Java代码中使用它的方法。

如果您能够使用创建采样器,您可以采取类似的步骤来创建采样器。只需查看.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中从头开始创建脚本)的更多信息,请参阅本文



如果您的测试计划生成必须是编程的,但不必是Java,您可能会发现该工具更易于使用,因为您将能够使用声明性YAML语法创建测试

如果您能够使用创建采样器,您可以采取类似的步骤来创建采样器。只需查看.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中从头开始创建脚本)的更多信息,请参阅本文


如果您的测试计划生成必须是编程的,但不必是Java,您可能会发现该工具更易于使用,因为您将能够使用声明性YAML语法创建测试