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

时间:2018-05-16 16:25:37

标签: 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("body", "{\"key\": \"data\"}");
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());

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

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

1 个答案:

答案 0 :(得分:2)

鉴于您已经能够使用HTTP Request创建JMeter API采样器,您可以采取类似的步骤来创建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测试的各种方法的更多信息,请参阅Five Ways To Launch a JMeter Test without Using the JMeter GUI文章,包括在Java中从头开始创建脚本。

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