Jmeter自动化测试实施方案

news/2024/10/18 16:49:11/

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快

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内容展示目前和邮件基本保持一致不再展开详述,如下图所示:

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

2024花15天学完自动化测试全套教程,简单易上手,允许白嫖,拿走不谢!


http://www.ppmy.cn/news/1434222.html

相关文章

对于地理空间数据,PostGIS扩展如何在PostgreSQL中存储和查询地理信息?

文章目录 一、PostGIS扩展简介二、PostGIS存储地理空间数据1. 创建空间数据表2. 插入空间数据 三、PostGIS查询地理空间数据1. 查询指定范围内的地理空间数据2. 计算地理空间数据之间的距离3. 对地理空间数据进行缓冲区分析 四、总结 地理空间数据是指描述地球表面物体位置、形…

算法课程笔记——STL键值对map

map当下标无限的数组 重点是对应关系&#xff0c;一般不修改compare 类比set 没有lowerbound&#xff0c;因为遍历是无序的 ; map不能用sort函数排序 但可用vector转化为map使用 std::set<std::pair<TKEY, mutable TVAL> > ≈ std::map<TKEY, TVAL>

【C++初识继承】

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 本篇文章主要讲解 继承 的相关内容 目录 1. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义 1.2.1 继承定义格式 1.2.2 继承方式与访问修饰限定符 2. 基类和派生类对象赋值转换 3. 继承中的作用域 …

[2021最新]大数据平台CDH存储组件kudu之启用HA高可用(添加多个master)

今天在做kudu高可用的时候没有参考官网&#xff0c;直接按照常规方式&#xff08;添加角色—>编辑属性—>启动&#xff09;结果发现报错&#xff1f;然后参考了一下文档之后发现这玩意儿还有点玄学&#xff0c;做一下记录。 1.添加两个master。kudu master有leader和foll…

Linux命令超详细介绍

目录 安装 Linux的目录结构&#xff1a; Linux命令入门&#xff1a; Linux命令的基础格式&#xff1a; 例子&#xff1a; ls 参数 选项 注意&#xff1a; 目录切换命令&#xff1a;cd/pwd cd: pwd: 相对路径和绝对路径&#xff1a; mkdir 不用参数&#xff1a; …

使用Spring 完成转账业务添加日志功能

(完整的代码在文章附带文件中 , 文章里的代码仅作展示 , 可能有部分不完善 代码地址 :下载:https://javazhang.lanzn.com/i5oLI1vyiile 密码:1234 ) 任务目标 具体实现方法和心得 步骤1. 导入依赖项Spring依赖 , aop依赖,德鲁伊依赖,mybatis依赖 , mysql驱动 , mybatis-sprin…

如何避免用户并发请求以避免权限冲突问题,有数据库事务,乐观锁,悲观锁,分布式锁,队列化请求等

处理并发请求以避免权限冲突问题是一个重要的挑战&#xff0c;特别是在构建多用户、多线程或多进程的应用时。下面是一些策略和建议&#xff0c;帮助你处理并发请求并减少权限冲突的可能性&#xff1a; 数据库事务&#xff1a; 使用数据库事务来确保一组操作的原子性。这样&a…

应收数据可视化分析驾驶舱按这个来,不亏!

今天我们来看一张每个企业都要做&#xff0c;也都十分重视的驾驶舱报表——应收数据分析驾驶舱。这也是一张BI数据可视化驾驶舱&#xff0c;主打的就是分析快、易理解、能随时按需自助分析。接下来就来看看这张应收数据可视化分析驾驶舱的实现效果。 驾驶舱就是一个供运营管理者…