jmeter接口自动化测试框架

news2024/10/7 4:25:23

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

一是线上接口(生产环境)自动化测试,需要自动定时执行,每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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易点易动助力企业固定资产信息化管理

对于生产制造或者互联网企业而言,固定资产比重较高,是企业资产的大头,一些办公设备、生产设备数量和金额都比较大。提升企业固定资产管理水平,是企业实现信息化建设的必要条件。 目前,国内的很多企业在固定资产管理中…

零售航母沃尔玛公布业绩:喜忧参半

2月21日美股盘前,零售巨无霸沃尔玛公布了截至1月的2023财年第四季度业绩报告。财报中不乏可圈可点之处,但是利润迎来六年首降,新财年的利润指引要也比预期低很多,可以说喜忧参半。 一、Q4业绩可圈可点 营收方面:在本…

漏斗分析法

一什么是漏斗分析? 漏斗分析是数据领域最常见的一种“程式化”数据分析方法,它能够科学地评估一种业务过程,从起点到终点,各个阶段的转化情况。通过可以量化的数据分析,帮助业务找到有问题的业务环节,并进…

插画网课平台排名

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

使用 xshell 远程连接(使用 xftp 远程传输)

xshell 和 xftp的使用都基于ssh协议,我们需要先在远程服务端或者虚拟机上安装ssh服务,然后才能远程连接。 目录 1、什么是ssh协议? 2、安装 openssh (1) 安装 openssh 服务器 (2) 关闭服务器防火墙(或者开放端口22&#xff09…

四个步骤在CRM系统中设置游戏化机制

长期高强度的单一工作会让销售人员逐渐失去对工作的兴趣,导致销售状态缺少动力和激情,工作开展愈加困难。不少企业通过CRM销售管理系统设置游戏化竞赛,调动销售人员的工作积极性。那么,如何在CRM系统中设置游戏化机制?…

深入浅出 MySQL 索引(一)

MySQL 索引(基础篇) 你好,我是悟空。 本文目录如下: 一、前言 最近在梳理 MySQL 核心知识,刚好梳理到了 MySQL 索引相关的知识,我的文章风格很多都是原理 实战的方式带你去了解知识点,所以…

Spring+MVC+MYbatis注解开发

Spring常见注解 注解一:Configuration 用在类上面,加上这个注解的类可以成为一个spring的xml配置文件,使用的是java代码的配置 注解二:ComponentScan 用在类上,加上注解可以指定扫描路径 注解三:创建对…

Uni-app使用vant和uview组件

目录 1.安装vant组件 1.1安装前需知 1.2.安装 1.3.创建uni-app项目 2.安装uview-ui组件 2.1官网 2.2安装 2.3安装成功 1.安装vant组件 1.1安装前需知 小程序能使用vant-weapp组件,且官网的安装是直接导入小程序中,不能直接导入uni-app框架中 V…

Python的标准模块介绍:sys、os、random和time

Python内置了许多标准模块,例如sys、os、random和time模块等,下面为大家介绍几个常用的标准模块。 1.sys模块 sys模块中提供了一系列与Python解释器交互的函数和变量,用于操控Python的运行时环境。sys模块中常用变量与函数如表1所示。 表1…

Apifox = Postman + Swagger + Mock + JMeter

目录 可视化API设计 高效 & 零学习成本 可复用的“数据模型” 遵循 OpenAPI(Swagger) 规范 可导入 Swagger 等 20 数据格式 具体使用尝鲜 多项目管理 支持多环境切换 支持IDEA、浏览器、桌面应用 Idea插件 公共API hub库 如题:一款非常好用的API管理测…

二叉树——最大二叉树

最大二叉树 链接 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…

浅谈面向过程和面向对象的区别

面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。 伴随着每个开发人员的职业生涯,或多或少都会接触到这两种软件设计思想。不仅是软件开发人员,其实这两种思想在我们平时的生活中也处处可见&a…

uniapp 超过2m无法上传代码!uni-module太大了,小程序无法上传怎么办?

问题描述: 虽然分包了。但是主包里还有很多uniui的组件,占了2m多,之前一直是点击运行,然后再上传代码。提示的超过2m无法上传。 解决办法: 点击发行,然后上传就可以了。 优化建议: 1、组件按…

面向对象的一点小想法

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

MongoDB安装和使用过程常见问题

文章目录一、安装过程显示没有相应的权限二、pymongo无法使用,报错一、安装过程显示没有相应的权限 oh我的天,找了网上很多种方法都不行哈哈 不同的电脑对应不同的问题吧~ 我的这个问题是这样解决滴 先直接简述操作路径,不明白的可以看如下图…

程序员生产力工具大全,软件开发者常用的工具有哪些?

有哪些神器,可以帮助程序员提高工作效率? 每一位程序员,都希望能在编程世界中实现自己的梦想。程序员是一个要不断向上攀爬的职业,需要学习新的知识,掌握新的工具,才能跟上时代的步伐。 工欲善其事&#…

Linux PWM 开发指南

Linux PWM 开发指南 1 概述 1.1 编写目的 介绍 PWM 模块的详细设计方便相关人员进行 PWM 模块的代码设计开发。 1.2 使用范围 适用于 Linux-3.10,linux-4.4 和 Linux-4.9 内核,Linux-5.4 内核。 1.3 相关人员 PWM 驱动的开发人员/维护人员等 2 术…

2022 赣育杯 CTF --- Crypto Lost_N wp

文章目录前言题目解题过程解题代码前言 这是去年江西省赛一道有点小坑的密码题,当时没做出来,今天回想起来重新做一下并且记录一下。 题目 Lost_N.py import gmpy2 from Crypto.Util.number import * # part1 flag bSangFor{} d getPrime(435) cou…

一篇文章弄清楚啥是数组和集合

数组和集合多语言都有,数组是集合的一种,是一种有序的集合,不面向对象,面向过程的也有。1.数组逻辑结构:线性的物理结构:顺序的存储结构申请内存:一次申请一大段连续的空间,一旦申请…