采用maven项目进行自定义接口测试的jar包开发,开发工具使用idea。
1.1 创建maven工程在maven工程中,pom.xml添加相关依赖。
org.apache.jmeter ApacheJMeter_core5.0 org.apache.jmeter ApacheJMeter_java5.0
添加jar包输出插件
1.2 编写测试方法com.lazerycode.jmeter jmeter-maven-plugin2.8.0 jmeter-tests jmeter
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class JMeterTestDemo extends AbstractJavaSamplerClient {
private SampleResult results;
private String testStr;
// 准备测试
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
// 获取参数值
testStr = arg0.getParameter("Parameter1");
if(testStr!=null&&testStr.length()>0){
results.setSamplerData(testStr);
}
}
// 设置默认参数
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("Parameter1", "aaa");
return params;
}
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
int len = 0;
// 设置开始时间
results.sampleStart();
len = testStr.length();
// 设置结束时间
results.sampleEnd();
// 根据测试结果,设置测试结果信息
if(len<5){
System.out.println("String is "+testStr);
results.setSuccessful(false);
}else{
System.out.println("String is "+testStr);
results.setSuccessful(true);
}
// 返回结果信息
return results;
}
public void teardownTest(JavaSamplerContext arg0) {
}
}
其中setupTest方法,可以进行测试的准备,比如进行相关的初始化;
runTest方法用于执行实际的测试任务;
teardownTest方法用于测试结束时的处理;
将测试项目打包成jar包。
2. 将jar添加到jmeter的lib/ext目录下将前一步生成的jar包放到jmeter的lib/ext目录下,这样测试计划执行的时候,jmeter会自动加载lib/ext目录下的jar包,这样就可以调用自定义的接口了。
3. 编写测试计划编写测试计划一般通过jmeter提供的图形用户界面进行编写。
3.1 编写测试计划测试计划一般包括线程组和需要测试的接口对应的采样器(sampler -> http request)。
首先是添加线程组。
在线程组下面,添加采样器(Sampler),如果是测试http接口,可以选择http request.
如果需要获取接口返回的参数,可以添加提取器,如果返回数据格式为json,则可以选择json extractor。
查看结果树(View Result Tree)组件用于查看接口发送和返回信息;
聚合报告和汇总报告,用户生成测试数据;
调试采样器(Debug Sampler)用于显示调试输出;
采样器(Sampler)参考配置。
3.2 调试测试计划通过选择接口,点击执行按钮,进行单个接口的测试。通过查询结果树以及调试采样器,查看执行结果是否和预期一致。
程序中通过控制台打印输出的调试信息,可以通过黑窗口控制台进行查看。
如果性能要求不高,可以采用图形界面进行性能测试,设置好线程组的测试参数:
执行完成后,可以通过测试包括查看测试结果。
4. 执行测试计划对于并发性能要求高的场景,根据官方的建议,尽量使用命令行方式启动测试计划,这样可以提高执行效率。
如果程序中有调试输出,建议关闭调试输出。
jmeter -n -t TestPlan-v2-presstest.jmx -l test.jtl -e -o result
-n 表示不使用图形界面;
-t 指定测试脚本;
-l 指定测试输出文件;
-e -o 表示测试报告输出以及具体的目录位置。
测试完成后,在result目录中去查看测试结果。
5. 获取测试结果测试结果在输出目录下。
通过index.html文件可以查看测试结果。
通过链接查看各种具体的性能数据报表。



