接口测试 从 0 到 1,用 Jmeter 搭建 HTTP 接口自动化引擎 1.0 版本

百度网盘地址更新:https://pan.baidu.com/s/13S0WStZpwlbL15IBp_Q-bg

1、已实现功能描述

1.1 框架包含:Jenkins、Ant、Jmeter

1.2 测试用例来源:.csv文件

如图:

 

1.3 报警邮件

  • 失败用例内容:详细说明失败用例的所有信息
     
  • 失败用例组统计及附件:
     
  • 附件内容包括
  • 测试用例执行摘要:
     
  • 测试用例详细信息:
     

1.4 自动化测试执行需要修改内容

  • 编写测试用例

     
  • 修改用例文件地址

     
  • 修改报告附件地址

     

2、接口自动化引擎逻辑详解

2.1 引擎框架

 

2.2 引擎逻辑描述

2.2.1 全局变量设计

 

2.2.2 测试用例文件导入

 

2.2.3 http头信息管理

 

2.2.4 http cookie信息管理

 

2.2.5 判断用例文件中用例是否需要测试

 

2.2.6 判断http请求是post还是get

  • 如果http请求是post
     

2.2.7 post请求配置逻辑

  • 获取post请求数据
     
  • BeanShell断言内容
     
    断言内容解析:
int errcount = Integer.parseInt(vars.get("errcount").trim());    //统计失败用例数
int allcount = Integer.parseInt(vars.get("respcount").trim()); //统计用例组的用例数
if(SampleResult.getResponseCode().equals("200") && SampleResult.getResponseDataAsString().contains("${ResponseData}")){ //判断 状态码和断言内容
SampleResult.setSuccessful(true); //如果状态码和断言都匹配成功,标记该用例通过
vars.put("sendemail","no"); //标记不需要发送报警邮件
allcount++; //用例数+1
vars.put("respcount",allcount.toString()); //把当前已执行用例数保存到全局变量中
}else { //如果状态码或断言,有一个不匹配
errcount++; //失败用例数+1
allcount++; //用例数+1
SampleResult.setSuccessful(false); /标记该用例执行失败
String code = SampleResult.getResponseCode(); //获取状态码
String msg = SampleResult.getResponseMessage(); //获取响应信息
String data = SampleResult.getResponseDataAsString(); //获取响应Body
vars.put("Reqstauts","requestNook"); //标记该用例状态为 requestNook
vars.put("respcode",code); //保存状态码到全局变量
vars.put("respmsg",msg); // 保存响应信息到全局变量
vars.put("respdata",data); //保存响应body到全局变量
vars.put("errcount",errcount.toString()); // 保存失败用例数到全局变量
vars.put("respcount",allcount.toString()); //保存统计用例数到全局拜纳凉
vars.put("sendemail","yes"); //修改全局变量sendemail为yes,发送报警邮件
}
  • 判断是否发送邮件
     
  • 利用SMTP Sampler发送邮件
     

2.2.8 get请求配置逻辑

 

2.2.9 所有用例执行完毕,发送报警邮件

 
  • 邮件内容如下:

     
  • 至此,Jmeter HTTP接口自动化引擎搭建完毕
    还可以利用jenkins定时执行Jmeter引擎,从而实现对线上接口的监控

     

资料参考:
(1)Jmeter build.xml文件:http://pan.baidu.com/s/1i46tMlR
(2)Jmeter生成报告格式(参考heman贺满博客http://www.cnblogs.com/puresoul/http://pan.baidu.com/s/1kVssMzl):
(3)jmeter.properties(修改jmeter生成.jtl文件内容配置):http://pan.baidu.com/s/1cyaNlc
(4)测试用例模版:http://pan.baidu.com/s/1hselPlU
(5)Jmeter接口自动化引擎内容:http://pan.baidu.com/s/1geC34pt

原文地址:https://www.cnblogs.com/wsy0202/p/11278845.html