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

完全使用Java for Java Sampler创建新的JMeter测试

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

完全使用Java for Java Sampler创建新的JMeter测试

添加将执行SleepTest的Java
Request
采样器的示例代码如下所示:

JavaSampler javaSampler = new JavaSampler();javaSampler.setName("Java Request");javaSampler.setClassname("org.apache.jmeter.protocol.java.test.SleepTest");Arguments arguments = new Arguments();arguments.addArgument("SleepTime", "1000");arguments.addArgument("SleepMask", "0x33F");javaSampler.setArguments(arguments);javaSampler.setProperty(TestElement.TEST_CLASS, JavaSampler.class.getName());javaSampler.setProperty(TestElement.GUI_CLASS, JavaTestSamplerGui.class.getName());

如果您需要执行自己的实现JavaSamplerClient接口的类,只需替换类名并在需要时提供您自己的参数即可。

完整的代码,以防万一:

import org.apache.jmeter.config.Arguments;import org.apache.jmeter.config.gui.ArgumentsPanel;import org.apache.jmeter.control.LoopController;import org.apache.jmeter.control.gui.LoopControlPanel;import org.apache.jmeter.control.gui.TestPlanGui;import org.apache.jmeter.engine.StandardJMeterEngine;import org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui;import org.apache.jmeter.protocol.java.sampler.JavaSampler;import org.apache.jmeter.reporters.ResultCollector;import org.apache.jmeter.reporters.Summariser;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;import java.io.File;import java.io.FileOutputStream;public class JMeterFromScratch {    public static void main(String[] args) throws Exception {        //JMeter Engine        StandardJMeterEngine jmeter = new StandardJMeterEngine();        //JMeter initialization (properties, log levels, locale, etc)        JMeterUtils.loadJMeterProperties("C:/jmeter/bin/jmeter.properties");        JMeterUtils.setJMeterHome("C:/jmeter");        //JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level        JMeterUtils.initLocale();        // JMeter Test Plan        HashTree testPlanTree = new HashTree();        // Java Request        JavaSampler javaSampler = new JavaSampler();        javaSampler.setName("Java Request");        javaSampler.setClassname("org.apache.jmeter.protocol.java.test.SleepTest");        Arguments arguments = new Arguments();        arguments.addArgument("SleepTime", "1000");        arguments.addArgument("SleepMask", "0x33F");        javaSampler.setArguments(arguments);        javaSampler.setProperty(TestElement.TEST_CLASS, JavaSampler.class.getName());        javaSampler.setProperty(TestElement.GUI_CLASS, JavaTestSamplerGui.class.getName());        // Loop Controller        TestElement loopController = new LoopController();        ((LoopController) loopController).setLoops(1);        loopController.addTestElement(javaSampler);        ((LoopController) loopController).setFirst(true);        loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());        loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());        ((LoopController) loopController).initialize();        // Thread Group        ThreadGroup threadGroup = new ThreadGroup();        threadGroup.setNumThreads(1);        threadGroup.setRampUp(1);        threadGroup.setName("Thread Group");        threadGroup.setSamplerController(((LoopController) loopController));        threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());        threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());        // Test Plan        TestPlan testPlan = new TestPlan("Create JMeter script From Java Code");        testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());        testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());        testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());        // Construct Test Plan from previously initialized elements        testPlanTree.add(testPlan);        HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup);        threadGroupHashTree.add(javaSampler);        // save generated test plan to JMeter's .jmx file format        SaveService.saveTree(testPlanTree, new FileOutputStream("test.jmx"));        //add Summarizer output to get test progress in stdout like:        // summary =      2 in   1.3s =    1.5/s Avg:   631 Min:   290 Max:   973 Err:     0 (0.00%)        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 = "test.jtl";        ResultCollector logger = new ResultCollector(summer);        logger.setFilename(logFile);        testPlanTree.add(testPlanTree.getArray()[0], logger);        // Run Test Plan        jmeter.configure(testPlanTree);        jmeter.run();        System.out.println("Test completed. See test.jtl file for results");        System.out.println("JMeter .jmx script is available at test.jmx");        System.exit(0);    }}

有关运行JMeter测试的不同方式的全面信息,请参见不使用JMeter
GUI来启动JMeter测试的五种方法



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

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

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