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

一、自动化脚本架构搭建

1、添加setUp线程组,测试标签新增功能;添加tearDown线程组,测试标签删除功能

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

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

(1)添加登录http请求

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

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

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

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

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

3、添加标签新增http请求

添加响应断言:

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

4、添加标签删除http请求

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

5、添加改、查线程组

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

6、添加改、查的http请求

二、增删改查接口测试

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

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

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

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

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

步骤:

(1)添加mysql库包

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

(3)添加JDBC Request

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

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

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

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

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

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

在改http请求中:

在查http请求中:

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

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

添加响应断言:

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

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

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

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

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

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

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

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

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

运行,查看聚合报告

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

20QPS:每秒访问20次

添加常数吞吐量定时器

运行,查看聚合报告

四、生成可视化测试报告

1、将jmx文件复制到jmeter安装目录的bin目录下

2、执行命令

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

-n 无图形化运行

-t 被运行的脚本

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

-e 生成测试报告

-o 指定报告输出目录

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

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

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
驭渊的小故事9 小时前
LeetCode 算法题解:滑动窗口与数组合并的实战应用
算法·leetcode·职场和发展
八月的雨季 最後的冰吻11 小时前
音视频面试--延迟优化
面试·职场和发展·音视频
Pniubi11 小时前
力扣42接雨水(动态规划法)
算法·leetcode·职场和发展
weixin_3077791311 小时前
RAG 级联失效分析——面试中的错误归因艺术
人工智能·python·面试·职场和发展
Pniubi12 小时前
力扣46全排列(回溯(递归))
算法·leetcode·职场和发展
Da Da 泓1 天前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
Pniubi1 天前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
梧桐1681 天前
14天、31个缺陷、28个测试脚本—用 Claude Code 完成第三方软件测试
人工智能·测试工具
frjc1 天前
分布式服务拆分实战指南:从底层逻辑到面试话术
微服务·面试·职场和发展
会开车的鸟哥1 天前
自动创建测试用例与组件测试向导
测试用例·simuinktest