jmeter interface test

一、创建工程、引包
1、创建JAVA工程
2、引入Jmeter中lib\ext基础包:ApacheJMeter_java.jar、ApacheJMeter_core.jar
3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar
4、引入httpclient-4.3.4.jar( 是基于httpcore的一套客户端)、httpcore-4.3.2.jar( 是一套http协议实现包
Jmeter用到的4个类:

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 类似于LR的Action

void

setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

执行的先后顺序为: getDefaultParameters () -->  setupTest (JavaSamplerContext context) -->  runTest (JavaSamplerContext context) -->  teardownTest (JavaSamplerContext context)

常用的方法:
①、addArgument("name", "value")    定义参数
②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码
③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction
④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。

二、用例
1、TestApiGetSearchSuggestion.java,该代码实现对Api接口的请求,对返回的数据进行判断,并写文件。
2、Jmeter_GetSearchSuggestion.java,为本节介绍的重点

  1. package com.test.jmeter;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import org.apache.http.client.ClientProtocolException;   
  6. import org.apache.jmeter.config.Arguments;   
  7. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;   
  8. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;   
  9. import org.apache.jmeter.samplers.SampleResult;   
  10.   
  11. public class Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient {   
  12.   
  13. private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗口   
  14. private String url;  
  15. private String data;  
  16.   
  17. public void setupTest(){  
  18. //定义测试初始值,setupTest只在测试开始前使用   
  19. System.out.println("setupTest");  
  20. }  
  21.   
  22. @Override  
  23. public SampleResult runTest(JavaSamplerContext arg0) {  
  24.   
  25. url = arg0.getParameter("url");  
  26. data = arg0.getParameter("data");  
  27. SampleResult sr;  
  28. sr = new SampleResult();  
  29. sr.setSampleLabel(label);  
  30.   
  31. TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();  
  32. sr.sampleStart();  
  33. try {  
  34. //调用被压测接口的方法   
  35. t.PostJson(url, data);  
  36. sr.setSuccessful(true);  
  37. catch (ClientProtocolException e) {  
  38. sr.setSuccessful(false);  
  39. e.printStackTrace();  
  40. catch (IOException e) {  
  41. sr.setSuccessful(false);  
  42. e.printStackTrace();  
  43. }  
  44.   
  45. sr.sampleEnd(); // jmeter 结束统计响应时间标记   
  46. return sr;  
  47. }  
  48.   
  49. public void teardownTest(JavaSamplerContext arg0){  
  50. super.teardownTest(arg0);  
  51. }  
  52.   
  53. public Arguments getDefaultParameters(){  
  54. //参数定义,显示在前台,也可以不定义   
  55. Arguments params = new Arguments();  
  56. params.addArgument("url""http://gapp.test.com/merchandise/GetSearchSuggestion");  
  57. params.addArgument("data""data={\"token\": \"aaaaaaaaaa\",\"body\": {\"keywords\": \"蓝月亮\"}}");  
  58. return params;  
  59. }  
  60.   
  61. }  
package com.test.jmeter; 

import java.io.IOException; 

import org.apache.http.client.ClientProtocolException; 
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 Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient { 

private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗口
private String url;
private String data;

public void setupTest(){
//定义测试初始值,setupTest只在测试开始前使用
System.out.println("setupTest");
}

@Override
public SampleResult runTest(JavaSamplerContext arg0) {

url = arg0.getParameter("url");
data = arg0.getParameter("data");
SampleResult sr;
sr = new SampleResult();
sr.setSampleLabel(label);

TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();
sr.sampleStart();
try {
//调用被压测接口的方法
t.PostJson(url, data);
sr.setSuccessful(true);
} catch (ClientProtocolException e) {
sr.setSuccessful(false);
e.printStackTrace();
} catch (IOException e) {
sr.setSuccessful(false);
e.printStackTrace();
}

sr.sampleEnd();	// jmeter 结束统计响应时间标记
return sr;
}

public void teardownTest(JavaSamplerContext arg0){
super.teardownTest(arg0);
}

public Arguments getDefaultParameters(){
//参数定义,显示在前台,也可以不定义
Arguments params = new Arguments();
params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");
params.addArgument("data", "data={\"token\": \"aaaaaaaaaa\",\"body\": {\"keywords\": \"蓝月亮\"}}");
return params;
}

}


3、main函数测试成功后,打成jar包,放到%Jmeter_Home%\lib\ext目录中即可


三、运行用例
1、运行%Jmeter_Home%\bin\jmeter.bat
2、添加线程组,Java请求、查看结果树、聚合报告
3、执行后的结果为

Tips:
快捷键
Ctrl+R运行用例、Ctrl+E清除运行结果


参考资料:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值