Jmeter接口测试实例分享--Yahoo翻译机项目
1、创建JavaSampler测试用例
a) b)
新建测试工程,在classspath中引入%Jmeter%\\lib\\ext下的ApacheJMeter_core.jar和ApacheJMeter_java.jar
创建测试类并继承抽象类AbstractJavaSamplerClient
public class YahooTranslateServicePerfTest extends AbstractJavaSamplerClient{
private SampleResult results; private String content;
private SupportedLanguage sourceLan; private SupportedLanguage destLan; private YahooTranslateServiceImpl service; private String res = null; private YahooTranslateDao dao;
//初始化方法,每个线程仅执行一次,在测试方法运行前执行 public void setupTest(JavaSamplerContext arg0) {
//实例化yahoo翻译服务,也可以通过spring注入的方式获得一个实例 }
//设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中 public Arguments getDefaultParameters() { }
//测试执行的循环体,根据线程数和循环次数的不同可执行多次,是最主要的脚本代码, //就如同http请求里的发送请求的关键脚本,返回的SampleResult作为一次请求的结果 public SampleResult runTest(JavaSamplerContext arg0) {
//获取参数信息
content = arg0.getParameter(\
sourceLan = SupportedLanguage.getLanguage(arg0.getParameter(\destLan = SupportedLanguage.getLanguage(arg0.getParameter(\results = new SampleResult();
Arguments params = new Arguments();
//定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,params.addArgument(\//翻译内容 params.addArgument(\//源语言 params.addArgument(\ //目标语言 return params;
service = new YahooTranslateServiceImpl(); try {
//实例化翻译服务DAO对象,设置yahoo翻译机IP及端口数量 }
service.setYahooTranslateDao(dao);
dao = new YahooTranslateDaoImpl(\e.printStackTrace(); } catch (InterruptedException e) {
第二个参数为默认值
}
}
results.sampleStart(); //开始采样
res = service.translate(content, sourceLan, destLan); //调用翻译接口 results.sampleEnd(); //采样结束 results.setDataEncoding(\if(res == null || res == \ }
return results;
results.setResponseMessage(\results.setSuccessful(false);
results.setResponseMessage(\results.setSuccessful(false); results.setResponseMessage(res); results.setSuccessful(true);
}else if(res == \
}else {
c) 用例调试,创建main函数
Public static void main(String[] args) { }
d) 将项目工程打成普通jar包,工程依赖的所有外部类库都打成runnable jar包
e) 把导出的jar包考到%jmeter%\\lib\\ext目录下,启动jmeter,添加线程组,添加JavaSampler请求
}
YahooTranslateServicePerfTest yahooperftest = new YahooTranslateServicePerfTest(); JavaSamplerContext con = new JavaSamplerContext(yahooperftest.getDefaultParameters()); yahooperftest.setupTest(con); yahooperftest.runTest(con);
f) 设置好所需并发量,参数化参数值就可以开测了!!!