本教程试图解释Jmeter的基本设计,功能和用法,Jmeter是用于在应用程序上执行负载测试的优秀工具。通过使用jmeter GUI,我们可以
根据我们的要求为请求创建测试样本并执行具有多个用户负载的样本。
由于jmeter工具是使用JAVA完全开发的,我们可以编写java代码来做同样的事情而不使用jmeter的GUI,不建议实现java代码进行负载测试,它只是一个概念证明来编写使用jmeter库通过java代码进行采样。
Jmeter作为非常好的文档/ API,在浏览了jmeter源代码和其他参考资源之后,编写了以下示例代码。
预先决条件:
在理解以下代码之前,我们必须具备jmeter如何工作的基本知识。
最初我们需要加载jmeter属性,这些属性将由jmeter类/库在代码的后期使用
//JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
//JMeter initialization (properties, log levels, locale, etc)
JMeterUtils.setJMeterHome(jmeterHome.getPath());
JMeterUtils.loadJMeterProperties(jmeterProperties.getPath());
JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
1.创建“测试计划”对象和JOrphan HashTree
//JMeter Test Plan, basically JOrphan HashTree
HashTree testPlanTree = new HashTree();
// 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());
2.采样器:添加“Http Sample”对象
采样器告诉JMeter将请求发送到服务器并等待响应。它们按照它们在树中出现的顺序进行处理。控制器可用于修改采样器的重复次数
// First HTTP Sampler - open uttesh.com
HTTPSamplerProxy examplecomSampler = new HTTPSamplerProxy();
examplecomSampler.setDomain("uttesh.com");
examplecomSampler.setPort(80);
examplecomSampler.setPath("/");
examplecomSampler.setMethod("GET");
examplecomSampler.setName("Open uttesh.com");
examplecomSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
examplecomSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
3.Loop控制器
循环控制器将执行循环迭代声明的样本数。
// Loop Controller
LoopContr