百度网盘地址更新: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. java(android)命名规范

    在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则. 标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写. ...

  2. 《Verilog数字系统设计教程(第2版).pdf》

    Verilog数字系统设计教程(第2版).pdf https://github.com/shigh1005/pdf_book <Linux设备驱动开发详解:基于最新的Linux 4.0内核.pd ...

  3. Winform重写键盘按键事件

    /// <summary> /// 重写键盘处理事件,处理退出和回车按钮 /// </summary> protected override bool ProcessCmdKe ...

  4. CF1204D Kirk and a Binary String

    题目链接 problem 给出一个长度为\(n(n\le 10^5)\)的只包含01的字符串.把尽可能多的1变为0,使得对于所有的\(l \in [1,n],r\in [l,n]\),区间\([l,r ...

  5. Web前端开发框架大全-详述

    可以说,前端技术的发展是互联网自身发展的一个缩影! 前端技术的发展经历了web1.0时代,即网页只能展示信息,几乎没有交互可言: web2.0时代,web2.0不再是单维的,逐渐发展为双向交流,另一特 ...

  6. [日常] 用vim的时候发现的不是很小的bug...

    前一天晚上的时候不知道搞啥了...第二天早上起来开 gnome-system-monitor 的时候发现CPU占用好像不太对头 (一直有个核是 \(100\%\)), 转到进程的时候发现使用最高的居然 ...

  7. 小米笔试题:无序数组中最小的k个数

    题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...

  8. 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!

    别告诉我你不知道 别告诉我你不知道可以使用键盘的 Shift 和 Ctrl 来多选表格行,因为这个在 Windows 文件资源管理器中的常用操作,此时的画风是这样的: 这个动图中进行了如下操作: 1. ...

  9. C# HTTP系列 HttpWebRequest 与 HttpWebResponse

    HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网 ...

  10. 【前端开发环境】前端使用GIT管理代码仓库需要掌握的几个必备技巧和知识点总结

    1. Git的三种状态 已提交 committed 已暂存 staged 已修改 modified 2. Git的三个区域 Git仓库 是 Git 用来保存项目的元数据和对象数据库的地方. 这是 Gi ...