栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

尝试使用JMeter API生成JMeter测试计划(jmx):从代码创建的jmeter jmx文件与JMeter创建的jmeter jmx文件不匹配

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

尝试使用JMeter API生成JMeter测试计划(jmx):从代码创建的jmeter jmx文件与JMeter创建的jmeter jmx文件不匹配

最后,在研究了jmeter源代码之后,我发现除了我在做什么之外,我还需要显式设置guiClass和testClass参数。

testPlan.setProperty(TestElement.TEST_CLASS,TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS,TestPlanGui.class.getName());

类似地,对于其他测试元素,例如ThreadGroup,JavaSampler等。

完整的代码如下,

package com.test;import java.io.FileOutputStream;import org.apache.jmeter.control.LoopController;import org.apache.jmeter.control.gui.LoopControlPanel;import org.apache.jmeter.control.gui.TestPlanGui;import org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui;import org.apache.jmeter.protocol.java.sampler.JavaSampler;import org.apache.jmeter.save.SaveService;import org.apache.jmeter.testelement.TestElement;import org.apache.jmeter.testelement.TestPlan;import org.apache.jmeter.threads.ThreadGroup;import org.apache.jmeter.threads.gui.ThreadGroupGui;import org.apache.jmeter.util.JMeterUtils;import org.apache.jorphan.collections.HashTree;public class JMXCreator {    public static void main(String[] argv) throws Exception {        // Initialize the configuration variables        String jmeterHome = "D:\apache-jmeter-2.11";        JMeterUtils.setJMeterHome(jmeterHome);        JMeterUtils.loadJMeterProperties(JMeterUtils.getJMeterBinDir()     + "\jmeter.properties");        JMeterUtils.initLogging();        JMeterUtils.initLocale();        // TestPlan        TestPlan testPlan = new TestPlan();        testPlan.setName("Test Plan");        testPlan.setEnabled(true);        testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());        testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());        // ThreadGroup controller        LoopController loopController = new LoopController();        loopController.setEnabled(true);        loopController.setLoops(5);        loopController.setProperty(TestElement.TEST_CLASS,     LoopController.class.getName());        loopController.setProperty(TestElement.GUI_CLASS,     LoopControlPanel.class.getName());        // ThreadGroup        ThreadGroup threadGroup = new ThreadGroup();        threadGroup.setName("Thread Group");        threadGroup.setEnabled(true);        threadGroup.setSamplerController(loopController);        threadGroup.setNumThreads(5);        threadGroup.setRampUp(10);        threadGroup.setProperty(TestElement.TEST_CLASS,     ThreadGroup.class.getName());        threadGroup.setProperty(TestElement.GUI_CLASS,     ThreadGroupGui.class.getName());        // JavaSampler        JavaSampler javaSampler = new JavaSampler();        javaSampler.setClassname("my.example.sampler");        javaSampler.setEnabled(true);        javaSampler.setProperty(TestElement.TEST_CLASS,     JavaSampler.class.getName());        javaSampler.setProperty(TestElement.GUI_CLASS,     JavaTestSamplerGui.class.getName());        // Create TestPlan hash tree        HashTree testPlanHashTree = new HashTree();        testPlanHashTree.add(testPlan);        // Add ThreadGroup to TestPlan hash tree        HashTree threadGroupHashTree = new HashTree();        threadGroupHashTree = testPlanHashTree.add(testPlan, threadGroup);        // Add Java Sampler to ThreadGroup hash tree        HashTree javaSamplerHashTree = new HashTree();        javaSamplerHashTree = threadGroupHashTree.add(javaSampler);        // Save to jmx file        SaveService.saveTree(testPlanHashTree, new FileOutputStream(     "d:\test.jmx"));    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号