当前位置: 首页 > 知识库问答 >
问题:

用CSV测试数据对JMeter进行编程配置

宋新知
2023-03-14

我正在通过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个答案

陈项禹
2023-03-14

如果您能够使用JMeter API创建HTTP请求采样器,那么您可以采取类似的步骤来创建CSV数据集配置。只需查看.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从头创建脚本,请参阅不使用JMeter GUI文章启动JMeter测试的五种方法。

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

 类似资料:
  • 我想将JMeter的CSV数据集配置中提到的CSV文件中的数据使用到我的JUnit测试用例程序中,并将该数据传递给测试方法。 我知道如何从 HTTP 请求的 CSV 数据集配置中获取数据,但找不到有关 JUnit 请求的任何帮助。 我的测试方法是: 我不熟悉JUnit和JMeter。对此,任何帮助都将不胜感激。谢了。

  • 我正在创建一个Jmeter docker容器。测试输入由CSV(数据集配置)驱动。我需要在脚本中设置什么文件名路径

  • 我有一个JMeter设置,它从CSV数据集配置元素中配置的CSV文件中读取数据。它工作正常,CSV文件在CSV数据集配置中指定 - 现在我想从命令行而不是GUI调用JMeter,并且我想为上面的元素指定一个不同的文件名。怎么做? 我尝试了“-JCSVNAME=”,但它似乎不起作用。 想法?

  • 为什么EOF传递给它?有人能提供一个解决方案吗? 我遵循了以下堆栈溢出问题的步骤。27634885链接。

  • 我试图在JMeter中加载我的CSV文件,但我一直得到下面的错误。我将文件结构设置为 c: \claimstest\claimsload.jmx C:\索赔stest\policies.csv

  • 问题内容: 我正在尝试使用的插件(jmeter- websocket )对服务器进行压力测试。关键是该插件没有附带文档说明如何使用它,因此我不确定是否支持我的期望。 我设法使用提到的插件运行了一个示例测试,它已成功连接到服务器。它也设法与服务器进行通信,但是一旦完成接收到第一个响应,它就会断开连接。我希望以某种方式配置此插件,以便它将与服务器保持持久的连接几分钟,在断开连接之前发送和接收一些消息。