用Jmeter搭建HTTP接口自动化引擎 1.0 版本
来源:互联网 发布:js 数组 push pop 编辑:程序博客网 时间:2024/06/01 10:16
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
- 用Jmeter搭建HTTP接口自动化引擎 1.0 版本
- jmeter接口自动化测试之一:jmeter+maven+eclipse搭建
- 成功搭建 Jenkins+ant+jmeter 进行接口自动化测试分享
- linux+ant+jmeter+jenkins搭建接口自动化持续集成平台
- 基于Jmeter和Jenkins接口自动化测试框架搭建过程
- Jmeter工具接口自动化使用
- Ant+Jmeter自动化接口测试
- JMeter自动化接口测试思路
- jmeter测试http接口
- jmeter测试http接口
- Jmeter http接口测试
- 用Jmeter进行接口自动化测试工作流程
- Jmeter接口自动化第一课(测试用例)
- 基于Jmeter和Jenkins接口自动化测试框架搭建详细过程
- http的接口自动化
- http接口自动化测试
- 接口自动化环境搭建
- Jmeter接口测试之HTTP
- 在CentOS7中利用yum命令安装mysql
- Java Web学习总结(41)——Java EE 8 新功能展望
- A
- React Native 利用自定义button封装购物车计数器
- springboot怎么使用maven打包时将本地jar包一块打进去
- 用Jmeter搭建HTTP接口自动化引擎 1.0 版本
- 明星加持,资本涌入,爆火的教育行业随随便便年薪百万?
- UVA 1515 Pool construction
- AI大事件 | 人类理解行为数据集推出,Uber发布自家分布式深度学习框架
- 用公开语料推进NLP研究,孵化现象级产品 | 专访阿里AI Labs聂再清
- Java并发编程-同步辅助类之Phaser
- ThinkPHP根据时间显示不同的问候语
- 网络安全工程师的学习路线
- Intellij Idea Linux环境下 新建Maven(java)和Scala工程