Jmeter接口测试实例分享
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jmeter接口测试实例分享--Yahoo翻译机项目
1、创建JavaSampler测试用例
a)新建测试工程,在classspath中引入%Jmeter%\lib\ext下的ApacheJMeter_core.jar和
ApacheJMeter_java.jar
b)创建测试类并继承抽象类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注入的方式获得一个实例
service = new YahooTranslateServiceImpl();
try {
//实例化翻译服务DAO对象,设置yahoo翻译机IP及端口数量
dao = new YahooTranslateDaoImpl("10.20.146.5:10");
} catch (InterruptedException e) {
e.printStackTrace();
}
service.setYahooTranslateDao(dao);
}
//设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
//定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值
params.addArgument("content", "apple"); //翻译内容
params.addArgument("sourceLan", "en"); //源语言
params.addArgument("destLan", "it"); //目标语言
return params;
}
//测试执行的循环体,根据线程数和循环次数的不同可执行多次,是最主要的脚本代码,
//就如同http请求里的发送请求的关键脚本,返回的SampleResult作为一次请求的结果
public SampleResult runTest(JavaSamplerContext arg0) {
//获取参数信息
content = arg0.getParameter("content", "apple");
sourceLan = SupportedLanguage.getLanguage(arg0.getParameter("sourceLan", "en"));
destLan = SupportedLanguage.getLanguage(arg0.getParameter("destLan", "it"));
results = new SampleResult();
results.sampleStart(); //开始采样
res = service.translate(content, sourceLan, destLan); //调用翻译接口
results.sampleEnd(); //采样结束
results.setDataEncoding("UTF-8");
if(res == null || res == "") {
results.setResponseMessage("res = null");
results.setSuccessful(false);
}else if(res == "error!!!") {
results.setResponseMessage("res = error!!!");
results.setSuccessful(false);
}else {
results.setResponseMessage(res);
results.setSuccessful(true);
}
return results;
}
}
c) 用例调试,创建main函数
Public static void main(String[] args) {
YahooTranslateServicePerfTest yahooperftest = new YahooTranslateServicePerfTest();
JavaSamplerContext con = new JavaSamplerContext(yahooperftest.getDefaultParameters());
yahooperftest.setupTest(con);
yahooperftest.runTest(con);
}
}
d) 将项目工程打成普通jar包,工程依赖的所有外部类库都打成runnable jar包
e) 把导出的jar包考到%jmeter%\lib\ext目录下,启动jmeter,添加线程组,添加JavaSampler请求
f) 设置好所需并发量,参数化参数值就可以开测了!!!