当前位置: 首页 > news >正文

jmeter接口自动化测试框架

接口测试可以分为两部分:

一是线上接口(生产环境)自动化测试,需要自动定时执行,每5分钟自动执行一次,相当于每5分钟就检查一遍线上的接口是否正常,有异常能够及时发现,不至于影响用户使用。

二是测试环境的接口自动化测试,测试时机可以是1、功能开发完成并提测,检查一边测试环境的所有接口是否正常,有异常则需要解决后再正式介入测试。2、测试完成上线发版前,检查一边测试环境的所有接口是否正常,有异常则需要解决后再上线发版。

jmeter是Apache的一个用java写成,用来做接口测试和压力测试的工具,有gui界面,因为是纯java的,所以可以跨平台使用(只要有java环境就可以),jmeter已经把做接口测试的各种方法封装的很完善稳定,所以我们可以直接用来做接口自动化测试,不需要自己再去封装各种请求、断言、结果处理等等方法。相当于把jmeter的脚本当作接口测试用例管理工具,在脚本里面把要测试的接口、断言都写好。

基于jmeter做接口自动化框架包括以下几个部分:

jmeter+jenkins+github+钉钉机器人+tomcat+shell脚本+java程序

包含了这些功能后,几乎大部分都可以自动化,手工需要做的事情就只有第三步:写接口用例并推送到github

步骤大致是这样:用jmeter写接口—推送到GitHub—jenkins定时自动执行测试(从GitHub拉取最新脚本—执行shell脚本—执行java代码,处理统计结果,发送报告)

以下是框架具体步骤:

一、多人协作就需要github来管理,在github新建仓库,用于存放jmx脚本

二、每个测试人员需要下载sourcetree,在本地新建本地仓库,并关联github远程仓库

三、将各自写好的jmx脚本放到本地仓库,提交并推送到github

四、在服务器上部署jenkins

1、配置git源代码管理,如果远程仓库是私有类型的,则需要配置证书或账号密码(每次构建测试时,jenkins都会检查远程仓库是否有更新脚本,有更新就拉最新的脚本来测试,这样也方便修改被测脚本)

2、设置定时自动构建,下面是每天的8点到23点,每5分钟构建一次

3、设置超时管理,为了不影响下一次构建

 

4、配置要执行的shell脚本

5、配置构建失败通知钉钉

五、在服务器配置tomcat环境(如果是win服务器,最好用服务的形式安装tomcat)

------linux配置tomcat环境-----

1、下载Core下的zip包,解压到linux的目录

2、到bin目录下给catalina.sh和startup.sh赋予chmod 777权限,或者给全部sh文件赋予最高权限chmod 777 *.sh

3、sh startup.sh启动,在浏览器中输入http://10.10.10.115:8080/出现tomcat页面表示启动成功

注意:如果访问不成功,如果我们想在本机中检测是否已经成功部署,那么我们必须关掉Linux中的防火墙或者开放8080端口,我在这里采用开放端口的方法。

4、用指令sh shutdown.sh停止tomcat的运行,继续进行后续操作

5、查看防火墙是否开启:systemctl status firewalld

未开启:Active: inactive (dead)

已开启:Active: active (running)

在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理:https://blog.csdn.net/ViJayThresh/article/details/81284007

开启防火墙:systemctl start firewalld

关闭防火墙:systemctl stop firewalld

执行开机禁用防火墙自启命令  : systemctl disable firewalld.service

开放端口号:firewall-cmd --permanent --zone=public --add-port=8080/tcp(只能在防火墙开启的情况下开放端口)

6、将要查看的文件放到webapps/ROOT/re.html这里,浏览器直接访问http://10.10.10.115:8080/re.html就可以看到了

------windows配置tomcat环境-----

1、下载安装程序

 

2、双击exe文件安装-选择jre目录-选择tomcat安装目录-选择端口(默认8080可修改)

在tomcat/bin目录双击startup.bat启动服务

或者

双击Tomcat9w.exe-start

3、不用配置环境变量,但是需要关闭win防火墙

https://jingyan.baidu.com/article/17bd8e52083ce685ab2bb839.html(win关闭防火墙的方法)

六、在服务器配置jmeter环境

需要两个jmeter环境,jmeter1用来收集jtl结果和生成报告,不需要改参数。jmeter2需要收集xml日志,把jmeter/bin/user.properties文件在结尾新增参数

jmeter.save.saveservice.output_format=xml

jmeter.save.saveservice.response_data=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.responseHeaders=true

七、shell脚本,包括以下几个步骤

删除上次的测试结果

在tomcat目录中新建index文件夹,用于存放本次测试结果

挨个执行jmx脚本(每个脚本需要执行两次,第一次收集jtl结果和生成报告,第二次收集xml日志,将报告、xml日志文件放到tomcat的目录下)

执行java程序

八、java程序(框架核心),把写好的java代码打成一个可执行jar包,让shell来调用,需要包含以下功能

1、用时间戳重命名index文件夹,保证每次的结果目录不会覆盖

2、把xml日志文件cope到index下面

3、统计fail接口数量

4、收集fail接口的信息

5、将信息写成html页面报告,并放到tomcat目录下,同时用同一个时间戳生成报告的url

相关文章:

jmeter接口自动化测试框架

接口测试可以分为两部分: 一是线上接口(生产环境)自动化测试,需要自动定时执行,每5分钟自动执行一次,相当于每5分钟就检查一遍线上的接口是否正常,有异常能够及时发现,不至于影响用…...

树莓派CM4基础设置

安装系统1.1 软件和硬件准备硬件:CM4(4GB DDR32GB EMMC 板载WIFI和蓝牙)CM4-to-Pi4-Adapter软件:Raspberry Pi或者 Win32DiskImagerRaspberry Pi下载链接:点击直接下载Win32DiskImager下载链接:链接&#x…...

JS 合并数组的三大方式

1. 数组的不可变合并 1.1使用扩展运算符进行合并 如果您想知道一种在JavaScript中合并数组的好方法,那么请记住使用扩展操作符进行合并。 在数组字面量中写入两个或更多带有扩展操作符…前缀的数组,JavaScript将创建一个合并所有这些数组的新数组: co…...

30岁测试开发年薪不足50万,被面试官嘲讽混得太差?

近日,有网友发帖称:“30岁去应聘测试开发,拿不到七八十万的年薪确实有点丢人了,还被面试官diss混得太差了”,网友们看完都炸了。 来看看网友们都是怎么说的。 有网友说: 扯淡 有网友气到: 那拿…...

【C语言】多线程

多线程线程线程的优点C语言多线程创建线程终止线程连接和分离线程开启一个线程最基本的多线程实现开启两个线程多线程进行协同运算无参数传递的线程并发编程实例简单参数传递的线程并发编程实例结构体参数传递的线程并发编程实例线程的连接编程实例信号量同步进行写入互斥信号量…...

CDGA|浅谈“以治促用,以用促治”的数据治理战略

数据治理夯实企业数字化转型基础。采取“以治促用,以用促治”的数据治理战略,可以充分释放了企业核心运行要素的活力。 “以治促用”是指通过建立在数据治理链路及用户多维评估系统的基础上,对数据资产重新进行价值识别,推进高价值…...

Apifox-比postman更优秀的接口自动化测试平台

一、Apifox介绍 Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman Swagger Mock JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、A…...

周期矩形波的傅里叶级数展开(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

前端预防XSS攻击全攻略

如何防止XSS攻击 一、是撒子 XSS攻击(跨站点脚本攻击),就是黑客恶意篡改你网页的前端代码,在里面注入一些恶意的 htmljavascript的脚本,并在你的浏览器内运行,获取你的信息,或者进行一些恶意操…...

JUC(一)

1.AQS原理 1.1.概述 1>.AQS全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架; 2>.特点: ①.用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁; getState: 获取state状态;setStata: 设置…...

API接口——睡眠带开放能力

本文介绍睡眠带相关接口。 API 列表 请求方法API描述GET/v1.0/devices/{device_id}/sleep/daily-reports获取日睡眠报告。GET/v1.0/devices/{device_id}/sleep/monthly-reports获取月睡眠报告。GET/v1.0/devices/{device_id}/sleep/24h-reports获取 24 小时睡眠报告。GET/v1.…...

面向对象的一点小想法

接口里的方法可以写也可以不写 如果写的话,那么得是默认方法,需要在前面加个default 对于默认方法,能够重写,或者直接继承(也就是直接用) 比如下面: 就直接调用了接口的默认函数nibuhao&#…...

数据仓库工作问题总结

1. ODS 层采用什么压缩方式和存储格式? 压缩采用 Snappy ,存储采用 orc ,压缩比是 100g 数据压缩完 10g 左右。 2. DWD 层做了哪些事? 1.、数据清洗 空值去除过滤核心字段无意义的数据,比如订单表中订单 id 为 nul…...

Java常用算法

关于时间复杂度: 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序。O(n1)) 排序, 是介于 0 和 1 之间的常数。希尔排序。线性阶 (O(n)) 排序 基数排序&#xff0c…...

插画网课平台排名

插画网课平台哪个好,插画网课排名靠前的有哪些,今天给大家梳理了国内5家专业的插画网课平台,各有优势和特色,给学插画的小伙伴提供选择,报插画网课一定要选择靠谱的,否则人钱两空泪两行! 一&am…...

雷达、定位、跟踪等信号处理邻域SCI期刊整理及推荐

雷达邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 定位/跟踪邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 估计/滤波/融合等信号处理邻域SCI期刊整理及推荐:题名、刊物信息、撰写…...

NDK C++ 指针常量 常量指针 常量指针常量

指针常量 常量指针 常量指针常量// 指针常量 常量指针 常量指针常量#include <iostream> #include <string.h> #include <string.h>using namespace std;int main() {// *strcpy (char *__restrict, const char *__restrict);// strcpy()int number 9;int n…...

常见前端基础面试题(HTML,CSS,JS)(一)

html语义化的理解 代码结构: 使页面在没有css的情况下,也能够呈现出好的内容结构 有利于SEO: 爬虫根据标签来分配关键字的权重,因此可以和搜索引擎建立良好的沟通,帮助爬虫抓取更多的有效信息 方便其他设备解析&#xff1a; 如屏幕阅读器、盲人阅读器、移动设备等&#xff0c…...

Delphi RSA加解密

感谢、感谢、感谢大佬的分享&#xff0c;https://github.com/ZYHPRO/RSAEncryptAndDecode 目录 1. 前言 2. 准备工作 3. Demo注意事项说明 3.1 公钥、私钥文本格式 3.2 回车键的影响 3.3 中文加解密说明 4. 结语 1. 前言 最近工作上安排了一个项目&#xff0c;与工商银行之…...

oracle基本操作

文章目录基本操作用户权限管理&#xff1a;权限传递&#xff1a;角色管理&#xff1a;数据导出&#xff1a;对于远程数据库查看表空间查看表空间路径查看被锁的对象基本操作 connect sys/zxm as sysdba-- 用 sys用户登录 create user jsdx identified by jsdx 创建用户 jsdx 密…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...