本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!
欢迎小伙伴访问小编的个人Web项目:《抽奖系统》
🍟 🍟 🍟 🍟 抽奖系统URL 🍕 🍕 🍕 🍕
引言
在个人搭建的 Spring Web 《抽奖系统》背后,隐藏着怎样的性能秘密?当 Jmeter 这一强大工具介入,是助力系统腾飞,还是揪出潜藏漏洞?跟我一起开启这场刺激的性能探索之旅,见证抽奖系统接口的真实实力。
目录
-
Jmeter工具安装与配置
-
用户模块接口性能测试
-
奖品模块接口性能测试
-
活动模块接口性能测试
-
抽奖模块接口性能测试
-
所有接口的性能测试报告
一. Jmeter工具安装与配置
1. 安装和配置
在上篇文章中,小编详细介绍了《抽奖系统》的 描述,功能,架构,实现。
但是开发实现完成了是一方面, 有没有 BUG
又是另外一方面,所以小编这次专门推出 接口性能测试篇,和小伙伴们一道学习使用 Jmeter
测试接口。
首先,使用
Jmeter
之前,先安装好Jmeter
。
安装
Jmeter
的前提, 是电脑上已经有JDK8
或以上的版本才可使用!
JDK下载官网URL
小伙伴们在官网下载JDK即可(如果没有的小伙伴)
,这里就不赘述了!
下载好之后
zip文件
之后进行 解压 ,得到下面的文件内容
点击
bin目录
,
进入
bin目录
之后,点击jmeter.bat
文件
修改配置,将 字体修改成中文 ,将 编码方式 修改成
utf-8
修改编码方式
修改字体为中文
成功打开Jmeter页面
保存文件路径,进行测试
这里小编重命名为为
lottery.jmx
2. 添加插件
将下载好的
jar
包,加入到 扩展页面
添加下面这个 jar
到这个 ext目录
下
打开JMeter下载插件
** 搜索 extra 下载下面两个插件**
搜索 thread 下载下面三个插件
basic 下载下面这个插件
二. 用户模块接口性能测试
在用户模块主要的接口有:
-
注册接口
-
登录接口
-
获取用户列表接口
其余用户接口,小编这里不好做演示,留着小伙伴们自行探索哦~
小伙伴们如果想看 控制层源码 ,可以点击下方链接去取
1. 注册接口
<1>. 操作流程
- 获取接口URL或请求参数信息
- 创建Stepping Thread Group
- 配置要性能测试需要的参数
鱼式疯言
这里小编的设置性能测试的线程启动过程为:
- 启动时:每间隔
两秒
启动 两个线程 ,在 两秒内完成线程的启动 ,循环往复,最终达到十个线程
为上线。
- 启动中,持续最大线程
十秒钟
。
- 启动后,每间隔
两秒
终止两个线程,在两秒
内完成终止。循环往复,最终线程全部终止结束。
- 配置相同的HTTP请求默认值
鱼式疯言
补充说明:
-
配置
HTTP默认值
的作用,将相同的HTTP属性都先加入, 比如相同的IP地址,端口号,编码方式,这些在下面的接口请求都是相同的对于这些相同的属性, 我们就可以配置到HTTP请求默认值中, 那么在下面的HTTP请求中就不需要重复配置了!
- 创建HTTP请求
- 添加监听器观察
- 添加请求参数并且请求的数据类型
- 设置
body
的请求方式为application/json
的格式
查看结果树
响应
虽然请求和效应都成功得到登录, 但是由于 手机号只能注册一条,所以这里的用户注册模块,只能返回
“手机号已被注册”
。
注册模块不好给小伙伴们展示, 小伙伴们敬请期待~ 下面的模块性能测试会更加有效准确。
2. 登录接口
<1>. 操作流程
-
带入请求参数
-
将返回结果的Token加入JSON提取器,最后带入到请求头中
- 加入到请求头中
- 请求头参数
3. 获取用户列表接口
<1>. 操作流程
4. 用户模块所有接口性能测试结果
查看结果树
鱼式疯言
- 如果 用户列表 左边为 绿灯代表请求成功 , 如果为 红灯代表请求异常 ~
- 请求结果树不仅可以查看响应数据, 还可以看
请求头
,请求正文
,响应头
等… 而且 还可以对请求的数据,进行JSON的反序列化表示 以及使用JSON表达式
对 响应结果进行筛选 。
汇总报告
聚合报告
每秒处理的事务数
响应时长
综上所得:
三个接口总体上:
注册接口的 汇总报告和聚合报告 的几个参数,都 普遍高于其他两个接口。但是都未发送接口异常。
但是在
处理的事务数
上面,三个接口变化程度
,高低程度都是相差不大的,均属于稳步提升。
注册接口效应时长也比其他两个接口更长,但是 普通的变化幅度变化幅度不大~
三. 奖品模块接口性能测试
对于奖品模块而言,由于传入的参数的原因,小编这里就只能测试:
- 奖品列表测试
1. 奖品列表测试
<1>. 操作流程
HTTP请求
其他元件和上一个模块相同,小编这里就不赘述了~
2. 奖品模块所有接口性能测试结果
查看结果树
汇总报告
聚合报告
每秒处理的事务数
响应时长
综上所得:
聚合报告和 汇总报告 数据在可控范围内,接口无异常情况产生~
每秒处理的事务数,跟随着线程的变化而变化。 在正常范围内~
但是 响应的时长随着线程的变化的趋势较大, 性能不是特别稳定。
四. 活动模块接口性能测试
活动模块的可进行接口性能测试的主要有:
-
创建活动接口
-
展示活动列表接口
-
展示活动详情接口
1. 创建活动接口
<1>. 操作流程
创建HTTP请求配置路径和请求方法
2. 展示活动列表接口
<1>. 操作流程
创建HTTP请求配置路径和请求方法
3. 展示活动详情接口
<1>. 操作流程
查找第一个活动id
将活动id保存到JSON提取器中
创建HTTP请求并且配置路径
4. 活动模块所有接口性能测试结果
查看结果树
汇总报告
聚合报告
== 每秒处理的事务数==
响应时长
综上所得:
从 汇总报告和聚合报告 中可以看出, 创建活动的平均数参数明显比其他两个接口更高。汇总报告出现异常部分异常。
事务数 随着线程的增多而增多,在正常的范围内浮动 ~
创建活动的响应时长比其他接口更长 , 并且创建活动的响应时长的变化幅度最大,
其他接口变化不是很明显
。
五. 抽奖模块接口性能测试
对于抽奖模块的主要的测试接口有:
- 抽取奖品接口
- 中奖记录接口
1. 抽取奖品接口
<1>. 操作流程
建立HTTP请求,并配置好路径和请求数据
2. 中奖记录接口
<1>. 操作流程
建立HTTP请求,并配置好路径和请求数据
3. 抽奖模块所有接口性能测试结果
查看结果树
汇总报告
聚合报告
每秒处理的事务数
响应时长
综上所得:
在汇总报告,聚合报告中, 抽取奖品接口大部分参数都高于中奖记录参数。但是都
未出现异常
~
处理的事务数 随着线程数的增多而增大,属于正常的范围之内~
抽取奖品接口比中奖记录的响应时长更长,并且变化幅度较大。
六. 所有接口的性能测试报告
1. 测试报告
在保存的jmx文件目录下打开cmd
执行命令
jmeter -n -t xxx.jmx -l 日志文件.jtl -e -o 目录
目录需要提前创建一个用于保存 性能测试报告 的专属目录
得到一个 lottery.jtl
日志文件, 以及 ku
目录下的报告:
报告图展示
小伙伴们以后要是想生成 性能测试报告 , 就可以使用上述命令进行 便捷生成 啦~
上述就是
性能测试全过程
如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正
希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖