接口测试 从 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
接口测试 从 0 到 1,用 Jmeter 搭建 HTTP 接口自动化引擎 1.0 版本的更多相关文章
- Jenkins+Ant+Jmeter搭建轻量级接口自动化
软件准备 本文所用软件版本如下: Jenkins2.176.1 Tomcat9.0.21 Ant1.9.14 Jmeter5.1.1 我已经把相应的软件上传到我的网盘中,下载地址如下: 下载链接:ht ...
- Jmeter+ant+Jenkins接口自动化框架搭建
摘自:https://testerhome.com/topics/13389 一.背景 上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...
- Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)
一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...
- Win10系统Jmeter+maven+Jenkins接口自动化环境搭建(一)
Jmeter+maven+Jenkins实现接口自动化,需要使用idea或eclipse配置maven项目,这里我使用的是idea.具体步骤如下: 1.安装jmeter+jdk jmeter安装之前需 ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
- Jmeter+Ant+Jenkins接口自动化框架
最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...
- jenkins / ant / jmeter 持续集成接口自动化
1. 将 jmeter 脚本放在/var/lib/jenkins/workspace/Jmeter_auto/jmxpath路径下 2. 点击http://jk.facebank.net.cn/job ...
- python学习笔记(接口自动化框架 V2.0)
这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...
- ython学习笔记(接口自动化框架 V2.0)
这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...
随机推荐
- Spring Boot 自定义Filter
一.Filter功能 它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servle ...
- 使用Python对ElasticSearch获取数据及操作
#!/usr/bin/env python# -*- coding: utf-8 -*-""" @Time : 2018/7/4 @Author : LiuXueWen ...
- 短信控制的 智能插头(sim900a arduino uno)
https://www.arduino.cn/thread-19432-1-2.html 1.所需工具:(1)arduino UNO,(2)sim900a模块,(3)单路继电器,(4)220v ac转 ...
- Fink| CEP
什么是复杂事件CEP? 一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据,满足规则的复杂事件. 特征: 目标:从有序的简单事件流中发现一些高阶特征 输入:一个或多个由简单事 ...
- 使用mybatis动态where字句方法
上篇文章介绍了如何使用mybatis-generator生成实体类.Mapper接口代码,其中生成的Mapper接口代码是不带ByExample方法的.本篇文章将介绍如何使用mybatis-gener ...
- VBA基础 - 函数和模块
概要 对于一般的 VBA 程序来说, 可能一个或几个函数就行了. 毕竟, VBA 只是作为 excel 的辅助工具来用的. 但是, 随着 VBA 写的越来越多, 用个工程来管理就有必要了, 而一个代码 ...
- (二十二)golang--时间和日期相关函数
时间的常量,可以获得指定时间单位 Unix和UnixNano 小例子:统计函数运行的时间:
- LeetCode 160: 相交链表 Intersection of Two Linked Lists
爱写Bug(ID:iCodeBugs) 编写一个程序,找到两个单链表相交的起始节点. Write a program to find the node at which the intersectio ...
- pixijs shader贴图扫光效果
pixijs shader贴图扫光效果 直接贴代码 const app = new PIXI.Application({ transparent: true }); document.body.app ...
- k8s服务器内核参数调整
1. net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1net.bridge.bridge-nf ...