百度网盘地址更新: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

接口测试 从 0 到 1,用 Jmeter 搭建 HTTP 接口自动化引擎 1.0 版本的更多相关文章

  1. Jenkins+Ant+Jmeter搭建轻量级接口自动化

    软件准备 本文所用软件版本如下: Jenkins2.176.1 Tomcat9.0.21 Ant1.9.14 Jmeter5.1.1 我已经把相应的软件上传到我的网盘中,下载地址如下: 下载链接:ht ...

  2. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  3. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  4. Win10系统Jmeter+maven+Jenkins接口自动化环境搭建(一)

    Jmeter+maven+Jenkins实现接口自动化,需要使用idea或eclipse配置maven项目,这里我使用的是idea.具体步骤如下: 1.安装jmeter+jdk jmeter安装之前需 ...

  5. jmeter beanshell断言接口自动化实例

    一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...

  6. Jmeter+Ant+Jenkins接口自动化框架

    最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...

  7. jenkins / ant / jmeter 持续集成接口自动化

    1. 将 jmeter 脚本放在/var/lib/jenkins/workspace/Jmeter_auto/jmxpath路径下 2. 点击http://jk.facebank.net.cn/job ...

  8. python学习笔记(接口自动化框架 V2.0)

    这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...

  9. ython学习笔记(接口自动化框架 V2.0)

    这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...

随机推荐

  1. Html学习之十五(盒模型)

    Web页面中的每一个元素都是一个盒模型,CSS中使用盒模型来描述一个元素.CSS盒子模型又称框模型,它包含四个边界,分别是外边距边界(Margin).边框边界(border).内边距边界(paddin ...

  2. 201871010111-刘佳华《面向对象程序设计(java)》第八周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第八周学习总结 实验七 接口的定义与使用 实验时间 2019-10-18 第一部分:知识总结 接口的概念: ①java为了克 ...

  3. day54_9_18视图层某内部原理(fbv和cbv)与模板层

    一.render内部原理. 在render中往往需要返回三个参数,request,模板和一些键值对. 键值对中存储的是需要对模板渲染的值. 如果手动实现可以如下: from django.templa ...

  4. (day49)Django框架简介

    目录 一.Web框架 (一)本质 (1)动静态网页 (2)wsgiref模块 (3)jinja2模块 (4)手动实现思路 (二)python主流框架 (1)Django (2)flask (3)tor ...

  5. A1063 Set Similarity (25 分)

    一.技术总结 这个题目是属于set容器的内容,使用可以减少很多代码量 开始试过在同一个for循环中定义两个auto,结果编译通不过,有时候构思很重要,就比如这一题,开始我是一个一个去加,而代码中是,先 ...

  6. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) E. Rock Is Push dp

    E. Rock Is Push You are at the top left cell (1,1) of an n×m labyrinth. Your goal is to get to the b ...

  7. 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理

    1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...

  8. 《Web前端开发》等级考试样题~以国家“1+X”职业技能证书为标准,厚溥推出Web前端开发人才培养方案

    1+x证书Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ 1+x证书Web前端开发初级实操考试样题2019 http ...

  9. vue项目打包之后样式错乱问题,如何处理

    最近公司做的这个项目,要大量修改element里面的css样式,所以项目打包之后 会出现样式和本地开发的时候样式有很多不一样,原因可能是css加载顺序有问题,样式被覆改了. 所以在mian.js里面这 ...

  10. Vue.js 源码分析(四) 基础篇 响应式原理 data属性

    官网对data属性的介绍如下: 意思就是:data保存着Vue实例里用到的数据,Vue会修改data里的每个属性的访问控制器属性,当访问每个属性时会访问对应的get方法,修改属性时会执行对应的set方 ...