有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jmeter java运行jmx禁用操作

Im使用java运行jmx文件,该文件已禁用采样器。所以我以为它不会运行禁用的采样器,但它运行了。这是jmx文件代码:如你所见enabled="false"

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit User All Parameters" enabled="false">

和Im使用org.apache.jmeter.save.SaveService;类加载文件内容:

 File jmxFile = new File(jmxFilePath);
      HashTree testPlanTree = null;
      try{
       testPlanTree = SaveService. loadTree(jmxFile);
      }catch(IOException ex){}

你知道我该怎么解决这个问题吗


共 (1) 个答案

  1. # 1 楼答案

    我的期望是,根据JavaDoc,您的代码缺少JMeter.convertSubTree()方法

    convertSubTree

    public static void convertSubTree(HashTree tree)

    Remove disabled elements Replace the ReplaceableController with the target subtree

    所以确保在运行测试之前调用它

    示例代码(以防您仍然需要它),请注意JMeter.convertSubTree(testPlanTree);

       //JMeter Home
       String jmeterHome = "c:/apps/jmeter";
    
       // JMeter Engine
       StandardJMeterEngine jmeter = new StandardJMeterEngine();
    
       // Initialize Properties, logging, locale, etc.
       JMeterUtils.loadJMeterProperties(jmeterHome + "bin/jmeter.properties");
       JMeterUtils.setJMeterHome(jmeterHome);
       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
       HashTree testPlanTree = SaveService.loadTree(new File(jmeterHome + "bin/test.jmx"));
    
       // Remove disabled test elements
       JMeter.convertSubTree(testPlanTree);
    
    
       // Add summariser
       Summariser summer = null;
       String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
       if (summariserName.length() > 0) {
           summer = new Summariser(summariserName);
       }
    
    
       // Store execution results into a .jtl file
       String logFile = jmeterHome + "/bin/test.jtl";
       ResultCollector logger = new ResultCollector(summer);
       logger.setFilename(logFile);
       testPlanTree.add(testPlanTree.getArray()[0], logger);
    
       // Run JMeter Test
       jmeter.configure(testPlanTree);
       jmeter.run();
    

    有关执行JMeter测试的不同方法的更多信息,请参阅Five Ways To Launch a JMeter Test without Using the JMeter GUI文章