用Jmeter搭建HTTP接口自动化引擎 1.0 版本
2017-10-24 17:15
399 查看
1、已实现功能描述
1.1 框架包含:Jenkins、Ant、Jmeter
1.2 测试用例来源:.csv文件
如图:
1.3 报警邮件
1.3.1 失败用例内容:详细说明失败用例的所有信息
1.3.2 失败用例组统计及附件:
附件内容包括
(1)测试用例执行摘要:
(2)测试用例详细信息:
1.4 自动化测试执行需要修改内容
1.4.1 编写测试用例
1.4.2 修改用例文件地址
1.4.3 修改报告附件地址
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请求数据
2.2.8 BeanShell断言内容
断言内容解析:
int errcount = Integer.parseInt(vars.get("errcount").trim());
int allcount = Integer.parseInt(vars.get("respcount").trim());
int equalscount=0;
int equalsokcount=0;
if("${HttpStatus}"!=""){
// log.info("==========================${HttpStatus}");
if(SampleResult.getResponseCode().equals("${HttpStatus}".trim())) {
equalscount++;
equalsokcount++;
// log.info("================equalscount: " + equalscount);
// log.info("================equalsokcount: " + equalsokcount);
}else {
String code = SampleResult.getResponseCode();
vars.put("respcode",code);
vars.put("AssertionNoOk","断言失败内容为:HttpStatus,实际请求返回的HttpStatus为: "+code+",断言内容的HttpStatus为: "+"${HttpStatus}");
equalscount++;
// log.info("================ERRORequalscount: " + equalscount);
// log.info("================ERRORequalsokcount: " + equalsokcount);
// log.info("====================ErrorHttpStatus is: " + code);
}
}
if("${ResponseMessage}"!=""){
if(SampleResult.getResponseMessage().equalsIgnoreCase("${ResponseMessage}".trim())) {
equalscount++;
equalsokcount++;
}else {
equalscount++;
String msg = SampleResult.getResponseMessage();
vars.put("respmsg",msg);
vars.put("AssertionNoOk","断言失败内容为:ResponseMessage,实际请求返回的ResponseMessage为: "+msg+",断言内容的ResponseMessage为: "+"${ResponseMessage}");
}
}
if("${ResponseData1}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData1}".trim())) {
equalscount++;
equalsokcount++;
}else {
equalscount++;
String data = SampleResult.getResponseDataAsString();
vars.put("respdata",data);
vars.put("AssertionNoOk","断言失败内容为:ResponseData1,实际请求返回的ResponseData1为: "+data+",断言内容的ResponseData1为: "+"${ResponseData1}");
}
}
//log.info("===================================ResponseData2=" + "${ResponseData2}".trim());
if("${ResponseData2}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData2}".trim())) {
equalscount++;
equalsokcount++;
}else {
equalscount++;
String data = SampleResult.getResponseDataAsString();
vars.put("respdata",data);
vars.put("AssertionNoOk","断言失败内容为:ResponseData2,实际请求返回的ResponseData2为: "+data+",断言内容的ResponseData2为: "+"${ResponseData2}");
}
}
if("${ResponseData3}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData3}".trim())) {
equalscount++;
equalsokcount++;
}else {
equalscount++;
String data = SampleResult.getResponseDataAsString();
vars.put("respdata",data);
vars.put("AssertionNoOk","断言失败内容为:ResponseData3,实际请求返回的ResponseData3为: "+data+",\n断言内容的ResponseData3为: "+"${ResponseData3}");
}
}
if(equalscount==equalsokcount) {
SampleResult.setSuccessful(true);
vars.put("sendemail","no");
allcount++;
vars.put("respcount",allcount.toString());
}else {
errcount++;
allcount++;
SampleResult.setSuccessful(false);
vars.put("errcount",errcount.toString());
vars.put("respcount",allcount.toString());
vars.put("sendemail","yes");
}
2.2.9 判断是否发送邮件
利用SMTP Sampler发送邮件
2.2.10 get请求配置逻辑
2.2.11 所有用例执行完毕,发送报警邮件
邮件内容如下:
至此,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/1kVegq6j
(5)Jmeter接口自动化引擎内容:http://pan.baidu.com/s/1kVop9n5
相关文章推荐
- linux+ant+jmeter+jenkins搭建接口自动化持续集成平台
- jmeter 接口自动化测试方案一 (EXCEL数据驱动版本)
- 接口自动化之httpclient发get请求、post请求
- 运用LoadRunner进行HTTP接口自动化测试
- 利用LoadRunner进行http接口功能自动化测试
- 使用Jmeter进行http接口测试
- Ant+Jmeter自动化接口测试
- 持续集成接口自动化-jmeter+ant+jenkins(一)
- Jmeter工具接口自动化使用
- Jmeter+Ant+Jenkins搭建持续集成的接口测试(推荐 Mark)
- Python搭建简易HTTP服务(3.x版本和2.x版本的)
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转)
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
- 再试接口自动化java---poi+httpclient+json
- 自动化测试开发实际应用系列(三)HTTP JSON协议接口测试自动化实例
- 基于jmeter和shell的接口性能自动化
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转)
- SVN版本控制系统搭建(结合http服务)
- python、Jmeter接口自动化框架、支付测试
- http接口测试——Jmeter接口测试实例讲解