Jmeter接口测试实例分享 下载本文

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) 设置好所需并发量,参数化参数值就可以开测了!!!