Jmeter的自动化测试实施方案

news2024/9/20 16:24:46

前言:

Jmeter是目前最流行的一种测试工具,基于此工具我们搭建了一整套的自动化方案,包括了脚本添加配置、本地配置和运行、服务器配置等内容,完成了自动化测试闭环,通过这种快捷简便高效的方式,希望可以解决自动化测试上手难的痛点。下面闲言少叙,我们直接切入实战:

一、准备自动化测试物料

    1、开发运行工具Jmeter,(下载地址: Apache JMeter - Download Apache JMeter)

    2、开发环境为已发布ready;

    3、测试脚本已准备ready;

    4、脚本运行环境已准备(fat或者uat);

二、自动化测试通过标准

    1、成功Status 返回200 ;

    2、失败返回404、500等;

    3、每个脚本专用断言;

三、自动化脚本存储

    脚本全部存储在Gitlab仓库中,(脚本的存储规范请参考:GitLab Jmeter测试包通用设计1.0版)

项目根目录新建文件夹,前面文件夹名和项目名保持一致,后缀加“-test”,如下图文件夹:

    

四、自动化测试Script Rules

    1、脚本命名为接口名

    2、存储类型为后缀jmx的文件

    3、线程数设置为1(冒烟测试无需多线程并发)

    4、必须包含断言判断,状态检测设定为200

五、自动化测试Script Steps

    1、添加线程组,脚本命名为接口名,点击存储 为后缀jmx的文件

    2、将线程数设置为1,其他设置为默认(如下图)

    3、循环次数为不循环,调度器不设置,其他参数不设置(如下图)

            

 

   

    4、配置http协议选项:

        a、添加http请求,线程组右键“添加”,选择“Sampler”,再选择“HTTP请求”:

              

        b、请求为post or get(如下图,此处根据实际情况设置为POST)

        c、内容编码:UTF-8(如下图,此处根据实际情况设置为UTF-8)

        d、Request报文:填入Body Data(如下图,此处根据实际情况设置Request报文内容)

                

 

   

 5、配置断言选项,线程组右键“添加”,选择“断言”,此处选择“响应断言”。注意可以根据实际情况选择其他断言类型:

        a、添加响应断言,如下图所示;

            

        b、选择响应字段为响应代码,如下图所示;

        c、匹配规则选择为包括,如下图;

        d、测试模式填入200,如下图(此处为开发自定义返回码,请根据实际情况设置);

            

 

 6、添加“HTTP信息头管理器” ,在测试计划点击右键“添加”菜单,选择“配置元件”,再选择“HTTP信息头管理器” (即为HTTP Header Manager),如下图:

            

    可根据实际情况添加Content-Type等内容,例如此处value设置为:application/json,如下图范例:

 

7、添加“查看结果树”,在测试计划点击右键“添加”菜单,选择“监听器”,再选择“查看结果树”:

 

运行成功或失败,分别可以查看结果树详情,如下图所示,查看响应数据,可以看到response报文:

 

下图是一个运行失败结果的断言,断言失败的信息也会有详细说明:

 

8、添加"用表格查看结果",在测试计划点击右键“添加”菜单,选择“监听器”,选择“用表格查看结果”:

 

添加后每次测试计划运行结束,可以查看全部线程组的运行结果,如下图所示:

 

9、添加“聚合报告”,在测试计划点击右键“添加”菜单,选择“监听器”,选择“聚合报告”:

 

聚合报告主要用来收集本次测试计划运行的一些重要的性能指标数值,例如Average、90%Line等等,添加后每次测试计划运行结束可以查看到指标的有效数据,如下图范例:

 

六、本地执行

1、在当前测试计划中,根据上述范例逐一添加本次需要运行的自动化脚本,添加完成后的效果如下所示:

 

2、运行当前测试计划的全部用例,然后用查看全部运行结果如下:

 

3、同样在结果树,可以查看全部失败用例的详细报文:

 

七、服务器配置和运行(Jenkins/TFS)

由于job最底层调度由Jenkins实现,本小节重点介绍如何配置job参数等内容。TFS方面只需要通过接口或者命令行的方式,直接调度Jenkins即可。

1、Job命名规范,定义在Jenkins中job的命名规范,如下图所示,以“JMETER”开头后面是服务名:

 

2、添加构建配置,如图所示,其中devops是基于Python编写的打包脚本,/sso-support-test是Jmx脚本文件地址,report_server是邮件服务,mail是报告接收人的邮箱地址:

 

3、构建触发器配置:如图所示,这里配置每两分钟去轮循检查服务器是否有更新:

 

4、源码管理:添加并选择Git仓库,然后配置Repo地址,最后选择分支dev(非强制)

 

八、服务器生产自动化报告

自动化报告目前支持两种形式,邮件和Html报告查看。

1、邮件方式报告查看。服务器端配置响应接收人员的邮件地址后,每次自动化运行结束,会自动发送邮件报告到指定关注人,如下图所示:

 

邮件Report中主要包含以下内容:

Summary栏目:包含所有请求的总结,总数,失败数,成功率,平均时间,最小时间,最大时间等。

 

Pages栏目:主要包含了单个请求的详情内容:

 

Failure Detail:主要是错误详情相关内容:

 

2、Html报告查看。Html内容展示目前和邮件基本保持一致不再展开详述,如下图所示:

 

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

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

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

相关文章

【云原生之Docker实战】使用Docker部署flatnotes笔记工具

【云原生之Docker实战】使用Docker部署flatnotes笔记工具 一、flatnotes介绍1.1 flatnotes简介1.2 flatnotes特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载flatnotes…

Python“梦寻”京东商品详情数据接口(含代码示例)

要通过京东的API获取商品详情数据,您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过京东开放平台API获取商品详情数据: 首先,确保您已注册成为京东开放平台的开发者,并创…

SourceTree安装教程

PS:SourceTree是一款流行的免费Git和Mercurial版本控制工具,由Atlassian开发和维护。它提供了一个直观且功能强大的图形用户界面,方便开发人员管理和浏览代码仓库 说白了,他就是一个可视化的git界面,还是非常好用的&am…

10.Redis 渐进式遍历

Redis 渐进式遍历 渐进式遍历scan 渐进式遍历 keys 命令一次性的把整个redis中所有的key都获取到,keys *但这个操作比较危险,可能会一下子得到太多的key,阻塞 redis 服务器。 通过渐进式遍历,就可以做到,既可以获取到所有的 key&…

wireshark 流量抓包例题

一、题目一(1.pcap) 题目要求: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc) 4.第一个受害主机网站数据库的名字 看到题目SQL注入&#xff0c…

Python 案例实训教学,支持“教师-学生”双视角切换|ModelWhale 版本更新

学年伊始、辞旧迎新,金秋九月,ModelWhale 迎来新一轮的版本更新,持续优化你的使用体验。 本次更新中,ModelWhale 主要进行了以下功能迭代: • 新增 “教师-学生”双视角切换(团队版✓) • 新…

测试架构师必备技能 —— Nginx安装部署实战

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高并发访问的情况下,Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文…

从《孤注一掷》出发,聊聊 SSL 证书的重要性

你去看《孤注一掷》了吗?相信最近大家的朋友圈和抖音都被爆火电影《孤注一掷》成功刷屏。取材于上万真实案例的《孤注一掷》揭露了缅甸诈骗园区残暴的统治,以及电信诈骗中系统性极强的诈骗技巧,引发了大量讨论。 图片来源于电影《孤注一掷》…

PostgreSQL 查询语句大全

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

多应用模式下,忽略项目的入口文件,重写Apache规则

多应用模式下,忽略项目的入口文件,重写Apache规则 首先,我的项目是具有两个应用,admin和index,同时给它们绑定了域名,但是每次访问时都需要加入项目的入口文件地址 index.php ,为了忽略这个入口文件,只能通…

Windows ROS2使用教程01-基础环境配置

Windows ROS2使用教程01-基础环境配置 背景及初衷 windows下ros2相关的文章比较少,官方文档针对windows的相关描述也有很多不明确的地方,现结合ros2官方文档关键点实操记录,希望对大家有所帮助;共勉! ROS2环境配置 …

现代化畜牧业行业分析 - 商品猪养殖

改革开放以来,中国畜牧业生产基础条件不断改善、生产方式快速转变,畜牧业综合生产能力和保障市场有效供应能力不断加强。中国肉类、禽蛋产量均居世界第一位,奶类产量居世界第三位。随着产量的增长,中国人均畜产品占有量也持续上升…

手机电脑scoket通信 手机软件 APP inventor 服务端程序python

python scoket 通信 再帮助同学坐课题的时候接触到了scoket通信,了解到这应该是基层网络通信的原理,于是就导出搜索了一下相关的资料,简单来说scoket通信就是,可以让不同设备在同一个网络环境的条件下,可以实现相互通…

解读bl616的startup.S文件

startup.S是bl616的启动文件,以汇编格式存在。这就导致对需要看懂此文件的人要level高一些了,再加上汇编竟然是risc-v的,而不是arm的,导致本人还要恶补一下risc-v的汇编指令和risc-v的寄存器。 这里推荐一下比较的介绍risc-v架构…

百度云对象存储的图片转webp不展示图片的解决方案

前言 百度云对象存储的图片,加上图片处理的参数后(像这种转webp格式的请求https://xxxxxxxx.cn/xxxxxx.jpg?x-bce-processimage/format,f_webp),由于图片过大,导致请求超时了。提交了工单咨询后解决了,特…

python评分卡模型

信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级。人信用评级有一系列评级模型组成,常见是A卡(申请评分卡)、B卡(行为模型)、C卡(催收模型)和F卡(反…

百度抓取香港服务器抓取超时是什么情况?

​ 网络延迟导致抓取超时 网络延迟是指从发送请求到接收响应之间的时间延迟。如果网络延迟过高,服务器可能无法及时响应请求,导致超时。在香港服务器上抓取数据时,如果网络延迟过高,可能会出现抓取超时的情况。 服务器负载过高可能…

【Tkinter界面:练习-01】窗口-部件-布局

一、说明 python在用户界面开发中,其中有QT5,和Tkinter;对于实际项目,界面需要高大上,因此用QT5,对于开发人员的演示程序,或简单程序中,不建议QT5;用Tkinter已经足够。本…

高并发(水平扩展,垂直扩展)

高并发(水平扩展,垂直扩展) 一、什么是高并发 高并发(High Concurrency) 是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指, 通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有 响…

Cenos7安装小火车程序动画

一:替换安装源 #先安装一下 epel源,因为安装包在epel源中。 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [rootwww ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo --2023-09-01 18:5…