一、构建一个java项目,创建lib文件夹,导入jmeter相关的jar包;
二、编写脚本:
public class Test extends AbstractJavaSamplerClient {
private long startTime = 0;
private long endTime = 0;
private String URL="";
public Arguments getDefaultParameters() {
// 声明定义Arguments类,在params放入参数,同时该参数会显示在jmeter的参数列表中
Arguments params = new Arguments();
try {
params.addArgument("参数一", "data1");
params.addArgument("参数二", "data2");
} catch (Exception e) {
……;
}
return params;
}
// 初始化方法,用于初始化性能测试时的每个线程,实际运行时每个线程仅执行一次
//
// JavaSamplerContext类用于向JavaSamplerClient实现提供上下文信息
// 这当前由在GUI中指定的初始化参数组成,其他数据将来可以通过JavaSamplerContext访问
public void setupTest(JavaSamplerContext jsc) {
// 获取每个线程的开始时间
startTime = System.currentTimeMillis();
}
// 测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行
public void teardownTest(JavaSamplerContext arg0) {
endTime = System.currentTimeMillis();
// 每个线程的总体耗时
System.out.println("one thread cost time:" + (endTime - startTime) + "ms");
}
// 性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult results = new SampleResult();
// 设置label,在运行jmeter时,可在聚合报告中显示
results.setSampleLabel("label1");
// ----------报文发送开始------
// 根据实际情况获取params参数,并组成报文
String requestStr =arg0.getParameter("参数一");
// 该处设置后,可在查看结果树中查看请求报文内容;
results.setSamplerData(requestStr );
// 记录响应时间开始
results.sampleStart();
// 根据实际情况,发送报文
String respStr = http发送(requestStr);
// 记录响应时间结束
results.sampleEnd();
//--------报文发送结束-----------
// 根据实际情况判断该请求成功还是失败,在jmeter中查看结果树,成功为绿色,失败为红色
if (respStr!= null) {
results.setSuccessful(true);
} else {
results.setSuccessful(false);
}
// 该处设置后,可在查看结果树中查看响应报文内容;
results.setResponseData(result, "utf-8");
} catch (Exception e) {
e.printStackTrace();
results.setSuccessful(false); results.setResponseData(toStringStackTrace(e), "utf-8");
}
return results;
}
public static void main(String args[]) {
Test test = new Test();
Arguments args1 = test.getDefaultParameters();
JavaSamplerContext context = new JavaSamplerContext(args1);
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}
三、将java项目导出成runnable jar(eclipse步骤):
项目右键-export-Runable Jar file-launch configuration选择刚刚编写好的Test类,libary handling选择第二个,指定导出的位置;
四、jmeter
(1) 将上述导出的放在jmeter目录\lib\ext 下;
(2)在jmeter创建测试计划-线程组-添加java sample,选择Test类即可,页面会自动显示上述代码里params的参数;