【问题标题】:How can I save a result set after running the Jmeter Test using a program (JAVA CODE)?使用程序(JAVA CODE)运行 Jmeter 测试后如何保存结果集?
【发布时间】:2020-01-21 05:44:08
【问题描述】:

我已经使用 Java 代码在 Eclipse 中使用 Jmeter 依赖项运行了 Jmeter 脚本,幸运的是,我的脚本运行良好,但现在我无法存储相同的结果。谁能告诉我如何实现这一目标? 请参阅我尝试过的以下代码。

package com.solitera.automation.controller;

import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;

import java.io.File;
import java.io.FileInputStream;

public class JMeterFromExistingJMX {

    public static void main(String[] argv) throws Exception {
        // JMeter Engine
        StandardJMeterEngine jmeter = new StandardJMeterEngine();


        // Initialize Properties, logging, locale, etc.
        JMeterUtils.loadJMeterProperties("D:/apache-jmeter-5.1.1/bin/jmeter.properties");
        JMeterUtils.setJMeterHome("D:/apache-jmeter-5.1.1");
        JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
        JMeterUtils.initLocale();

        // Initialize JMeter SaveService
        SaveService.loadProperties();

        // Load existing .jmx Test Plan
       /* FileInputStream in = new FileInputStream("D:/Ecllipse_project_workspace2/slt_automation/src/test/jmeter/slt_autoMa_Test.jmx");
        HashTree testPlanTree = SaveService.loadTree(in);
        in.close();*/

        HashTree testPlanTree = SaveService.loadTree(new File("D:/apache-jmeter-5.1.1/extras/slt_auto_test_java_blaze_script.jmx"));

        // Run JMeter Test
        jmeter.configure(testPlanTree);
        jmeter.run();
    }


}

【问题讨论】:

    标签: java jmeter jmeter-plugins jmeter-5.0 jmeter-maven-plugin


    【解决方案1】:

    我自己解决了..

    if (summariserName.length() > 0) {  
        summer = new Summariser(summariserName);  
      }  
    
      String logFile = "D:/apache-jmeter-5.1.1/extras/resultss.xml";
      ResultCollector logger = new ResultCollector(summer);  
      logger.setFilename(logFile);
      testPlanTree.add(testPlanTree.getArray()[0], logger); 
    

    【讨论】:

      【解决方案2】:

      您需要将ResultCollector 实例添加到您的测试计划中,以获取 .jtl 文件,如下所示:

      ResultCollector collector = new ResultCollector();
      collector.setFilename("result.jtl");
      testPlanTree.add(testPlanTree.getArray()[0], collector);
      

      代码需要在jmeter.configure(testPlanTree);行之前添加

      更多信息:

      【讨论】:

      • 您好,感谢您的回复,我现在可以打印 .jtl 文件中的日志,但现在我必须使用我在上面分享过我尝试过的代码的 CSV 文件进行多次登录。你能告诉我我在那个代码中哪里错了或者我必须添加什么代码来实现同样的目标。
      • 只需将CSV Data Set Config 添加到您的D:/apache-jmeter-5.1.1/extras/slt_auto_test_java_blaze_script.jmx 脚​​本并使用GUI 执行配置,一旦完成,您应该能够从Java 代码正常运行测试。如果您正在寻找一种以编程方式将 CSV 数据集配置添加到现有测试的方法,最好提出一个新问题,因为评论字段太有限,无法提供全面的答案。您很可能还需要分享您的测试计划
      • 我创建了另一个问题,请参考相同的问题,请给我解决方案,因为我在过去 3 天里一直在努力解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多