Jmeter实战——编写博客标签模块增删改查自动化脚本和压测

news2024/11/16 11:39:00
一、自动化脚本架构搭建
1、添加setUp线程组,测试标签新增功能;添加tearDown线程组,测试标签删除功能

image-20240330105016726

这里可以将标签的增删改查写到一个线程组,但是为了实践setUp和tearDown线程组的使用,将它们写到不同线程组中了。

2、添加登录http请求获取token

(1)添加登录http请求

image-20240330104303048

(2)添加查看结果树可以看到登录的响应数据有token

image-20240330104433788

(3)添加JSON提取器提取token

截图左边把还未添加的先注释掉了

image-20240330104609961

(4)利用函数工具生成字符串,添加BeanShell 后置处理程序设置token为全局变量

image-20240330103755799

image-20240330104803340

(5)利用函数工具生成字符串,在别的接口的请求头信息中引入token

image-20240330103954254

image-20240330104931575

3、添加标签新增http请求

image-20240330102213020

添加响应断言:

image-20240330124301806

新增的数据是json格式,需要在请求头中添加Content-Type

4、添加标签删除http请求

image-20240330102501166

对于重复的内容,我们可以添加请求默认值复用

image-20240330102627772

5、添加改、查线程组

勾选独立运行每个线程组保证先改后查

image-20240330105453794

6、添加改、查的http请求

image-20240330105938090

二、增删改查接口测试
1、将新增外的线程组都禁用,测试新增接口是否成功

image-20240330110640300

2、查询新增数据name对应的id

原打算将插入数据的id设置为全局变量,让其他改、查、删接口对该id的记录执行操作,这样保证了脚本运行完毕后不对原本数据产生影响。

但是我的博客系统的id采用自增id,无法自己设置id,插入数据。于是我想到先去数据库查询添加的数据name对应的id,然后再将id设为全局变量,对该记录进行改、查、删。

这样迂回的获取到id可能降低脚本的运行时间,可以在数据库给name字段增加索引,提高查询效率。

步骤:

(1)添加mysql库包

库包下载可参考我的另一篇文章(。・∀・)ノ゙嗨 (测试工具——Jmeter从入门到实践学习笔记)

image-20240330113100829

(2)添加JDBC Connection Configuration配置数据库的连接

image-20240330113410827

(3)添加JDBC Request

注意:这里为了方便将TagName作为参数使用,新增了用户定义的变量。此外,这里将TagName和TagRemark参数化,便于之后统一更改测试内容。

image-20240330122405554

image-20240330122538067

(4)添加调试取样器,禁用不相关的线程组,运行一下,查看参数名

可以看到id_1的值正是我们想要的值

image-20240330122931765

(5)添加BeanShell 后置处理程序,将id_1设置为全局变量

使用函数工具生成字符串复制到BeanShell 后置处理程序中

image-20240330115230040

(6)将全局变量取出使用

在改http请求中:

image-20240330123357542

在查http请求中:

image-20240330123213815

3、测试修改接口是否成功

image-20240330124728961

4、测试查询接口是否成功

添加响应断言:

这里同时也测试了修改接口是没问题的。

image-20240330124807734

5、测试删除接口是否成功

image-20240330125409063

将全部线程组启用,一键运行自动化测试脚本,查看结果树,全绿!!!

image-20240330125349707

三、对博客网站进行性能测试

如果网站的用户并发量很大,产品需求要求进行性能测试,则对程序进行性能测试。个人博客其实用户量没多大,这里进行的性能测试目的是熟悉jmeter的压测步骤。

image-20240330171005571

场景1:模拟半小时之内1000个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

半小时以内1000个用户访问,是弱压力测试,不是同一时刻进行访问

image-20240330164811390

场景2:模拟100个用户同时访问服务器资源,要求平均响应时间在3000ms内,且错误率为0

image-20240330165413434

添加同步定时器,100个用户为一组

image-20240330165427484

运行,查看聚合报告

image-20240330165529854

场景3:模拟2个用户以20QPS的频率访问服务器资源持续10秒,要求平均响应时间在3000ms内,错误率为0

image-20240330171429684

20QPS:每秒访问20次

添加常数吞吐量定时器

image-20240330171235792

运行,查看聚合报告

image-20240330171508626

四、生成可视化测试报告
1、将jmx文件复制到jmeter安装目录的bin目录下

image-20240330125650502

2、执行命令

jmeter -n -t 名.jmx -l 名.txt -e -o ./目录名

-n 无图形化运行

-t 被运行的脚本

-l 将运行信息写入日志文件

-e 生成测试报告

-o 指定报告输出目录

image-20240330130459543

3、点击index.html,用浏览器打开

image-20240330130447851

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

C/C++—有关日期类的OJ题

✨✨ 欢迎大家来到小伞的大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 小伞的主页:xiaosan_blog 1.计算日期到天数的转换(简单) 计算日期到天数转换__牛客网 (nowcoder.com)​​…

Qt-QTreeWidget多元素控件(38)

目录 描述 QTreeWidget 方法 QTreeWidget 信号 QTreeWidgetItem 属性 QTreeWidgetItem 方法 控制 使用 界面操作 代码操作 总结 描述 使⽤ QTreeWidget 表⽰⼀个树形控件.⾥⾯的每个元素,都是⼀个 QTreeWidgetItem ,每个 QTreeWidgetItem 可以包含多个⽂本和图标,每…

电脑系统重装系统盘文件还能恢复吗?

当我们的电脑出现中病毒、系统文件受损、系统变慢、无法启动或蓝屏等情况,大部分朋友都会选择重装系统。但重装系统后原来保存在系统盘的文件都会被删除。遇到这种情况,我们还有方法可以恢复之前保存在系统盘的文件吗? 一、从备份中恢复数据 …

智能优化算法-人工鱼群优化算法(ASFA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 人工鱼群优化算法 (Artificial Fish Swarm Algorithm, AFSA) 是一种基于群体智能的元启发式优化算法,它模拟了鱼群的觅食、聚群和避障行为,用于解决复杂的优化问题。 AFSA的工作机制主要…

Xilinx的JESD204B PHY层IP仿真及上板测试(JESD204B四)

本文配置JESD204B PHY的参数,分析其示例工程,并且对该IP进行仿真,由于该IP只是物理层,并没有上层协议,因此与GTX/H其实没有太大区别。 1、配置IP 如下图所示,在IP Catalog中搜索JESD204B的PHY,…

国产RISC-V案例分享,基于全志T113-i异构多核平台!

RISC-V核心优势 全志T113-i是一款双核Cortex-A7@1.2GHz国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面,并已适配OpenWRT系统、Docker容器技术。 而其中的RISC-V属于超高能效副核心,主频高达1008MHz,标配内存管理单元,可运…

python 魔法方法简记

简单记录python中的魔法方法 一、构造与析构 __init__(self[,...]) 需要初始化时可重写__init__方法 __new__(cls[,...]) 以类为参数,返回实例化对象 __del__(self) 前两个为构造器,此为析构器,用于销毁对象 二、算术运算 1、算术运算…

大文件想要传输成功,怎么把ZIP文件分卷压缩

不知道各位小伙伴有没有这样的烦恼,发送很大很大的压缩包会受到限制,为此,想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置? 方法一:使用7-Zip免费且强大的文件管理工具 7-Zip也是一…

MATLAB定位程序与讲解【专栏介绍】

AOA(到达角度)定位原理: 描述了基于到达角度进行定位的方法,适用于一维、二维或三维空间。 由动静压之比求马赫数的MATLAB函数: 提供了一个计算马赫数的函数,用于流体力学中速度的计算。 三边法定位与三点法…

【电子通识】案例:连接器接线顺序评估为什么新人总是评估不到位?

在一个IC卡切换的工装板(一切多)中,设计需求是一张PCB(充当活动卡片)插入读卡器,将卡片中的所有信号引出通过连接器连接到后级设备。 比如下图所示是一种IC卡压力测试设备,使用钢片卡片将压力信号通过连接器引入测试设备。 最后根据ISO/IEC 7816-2标准中我们看到…

hexo本地部署-图文教程

hexo本地部署-图文教程 最终效果前置条件安装使用配置主题创建页面标签页分类页友链页404页 个性化设置语言及网站信息设置导航栏,菜单目录头像及背景封面图美化特效 模板页的配置说明页面 Front-matter文章 Front-matter 最终效果 前置条件 你的电脑需要有git,node环境 安装使…

MySQL 中优化 COUNT()查询的实用指南

在 MySQL 数据库的使用中,我们经常会用到 COUNT()函数来统计行数或满足特定条件的行数。然而,在处理大规模数据时,COUNT()查询可能会变得非常缓慢,影响数据库的性能。那么,如何在 MySQL 中优化 COUNT()查询呢&#xff…

TRIZ理论在机器人性能优化中的应用

随着机器人应用场景的不断拓展,对机器人性能的要求也日益提高。如何在保证功能多样化的同时,提升机器人的性能稳定性、效率及智能化水平,成为了工程师和研发人员面临的重大挑战。TRIZ理论,即发明问题解决理论,以其系统…

Python和C++及MATLAB距离相关性生物医学样本统计量算法及数据科学

🎯要点 统计观测值之间距离计算代谢组学和脂质组学分析相关距离矩阵计算卡方检验偏差校正快速计算距离协方差算法大规模生物系统分析距离矩阵相关性测试石油勘探统计学关系 Python距离矩阵 在数学、计算机科学,尤其是图论中,距离矩阵是一…

02-Mybatis基础操作

1. Mybatis基础操作 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询条件查询 新增更新删除 根…

FreeRTOS(四)FreeRTOS列表与列表项

目录 列表 列表项 迷你列表项 列表和列表项的关系 列表相关API函数 列表初始化 列表项初始化 列表项插入 列表项末尾插入 列表项删除 列表遍历 在 FreeRTOS 中,列表(List)和列表项(ListItem)是核心数据结构&…

如何防止订单重复

如何防止订单重复 在整个下单流程中,哪里重复操作影响最大?确认订单只是修改订单状态从未支付改为待支付而已,不会对我们的主要业务产生影响,而在支付的时候,主要由第三方平台,我们也可以不用管&#xff0c…

记一次Windows状态栏不显示问题

文章目录 🪟解决方案☁️单次处理☁️有效处理 🪟现象🪟尝试的操作⭐END🌟跋🌟交流方式 🪟解决方案 ☁️单次处理 重启explorer.exe 命令行操作 注意,使用命令行操作的时候,出现…

Cocos 3.8.3 实现外描边效果(逃课玩法)

本来想着用Cocos 的Shader Graph照搬Unity的思路来加外描边,发现不行,然后我就想弄两个物体不就行了吗,一个是放大的版本,再放大的版本上加一个材质,这个材质面剔除选择前面的面剔除就行了,果不其然还真行。…

字幕制作软件有哪些?整理了适合新手的5个方法,快速导出srt字幕文件!

字幕制作软件有哪些?平时创作视频作品时,大部分会用到字幕。毕竟字幕是视频中不可或缺的一部分,字幕文件在传达视频内容上达到了重要的作用。 常见的字幕文件有srt、ass和sub格式。市面上比较常用的是srt字幕格式,这种格式几乎适用…