【问题标题】:Programmatic JMeter configuration with CSV test data带有 CSV 测试数据的程序化 JMeter 配置
【发布时间】:2018-05-16 16:25:36
【问题描述】:

我正在从 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());

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

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

【问题讨论】:

    标签: csv jmeter automated-tests performance-testing


    【解决方案1】:

    如果您能够使用JMeter API 创建HTTP Request 采样器,您可以采取类似的步骤来创建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());
    

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


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      相关资源
      最近更新 更多