掘金 后端 ( ) • 2024-03-30 18:07

一、自动化脚本架构搭建

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