从 0 到 1开展性能测试:JMeter 揭秘 Spring 项目《抽奖系统》接口性能真相

本篇会加入个人的所谓鱼式疯言

❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言

而是理解过并总结出来通俗易懂的大白话,

小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.

🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

欢迎小伙伴访问小编的个人Web项目:《抽奖系统》
在这里插入图片描述

🍟 🍟 🍟 🍟 抽奖系统URL 🍕 🍕 🍕 🍕

在这里插入图片描述

引言

在个人搭建的 Spring Web 《抽奖系统》背后,隐藏着怎样的性能秘密?当 Jmeter 这一强大工具介入,是助力系统腾飞,还是揪出潜藏漏洞?跟我一起开启这场刺激的性能探索之旅,见证抽奖系统接口的真实实力。

目录

  1. Jmeter工具安装与配置

  2. 用户模块接口性能测试

  3. 奖品模块接口性能测试

  4. 活动模块接口性能测试

  5. 抽奖模块接口性能测试

  6. 所有接口的性能测试报告

一. Jmeter工具安装与配置

1. 安装和配置

在上篇文章中,小编详细介绍了《抽奖系统》的 描述,功能,架构,实现

但是开发实现完成了是一方面, 有没有 BUG 又是另外一方面,所以小编这次专门推出 接口性能测试篇,和小伙伴们一道学习使用 Jmeter 测试接口。

首先,使用 Jmeter 之前,先安装好 Jmeter

安装 Jmeter 的前提, 是电脑上已经有 JDK8以上的版本才可使用!
JDK下载官网URL
小伙伴们在官网下载JDK即可 (如果没有的小伙伴),这里就不赘述了!

Jmeter下载官网URL

在这里插入图片描述

下载好之后zip文件之后进行 解压 ,得到下面的文件内容

点击 bin目录

在这里插入图片描述

进入 bin目录 之后,点击 jmeter.bat 文件
在这里插入图片描述

修改配置,将 字体修改成中文 ,将 编码方式 修改成 utf-8

修改编码方式
在这里插入图片描述

修改字体为中文
在这里插入图片描述

成功打开Jmeter页面

在这里插入图片描述

保存文件路径,进行测试

在这里插入图片描述

这里小编重命名为为 lottery.jmx
在这里插入图片描述

2. 添加插件

插件下载官网URL

在这里插入图片描述

将下载好的 jar 包,加入到 扩展页面

在这里插入图片描述

在这里插入图片描述

添加下面这个 jar 到这个 ext目录

在这里插入图片描述

打开JMeter下载插件

在这里插入图片描述

** 搜索 extra 下载下面两个插件**

在这里插入图片描述

搜索 thread 下载下面三个插件

在这里插入图片描述

basic 下载下面这个插件

在这里插入图片描述

二. 用户模块接口性能测试

在用户模块主要的接口有:

  • 注册接口

  • 登录接口

  • 获取用户列表接口

其余用户接口,小编这里不好做演示,留着小伙伴们自行探索哦~

小伙伴们如果想看 控制层源码 ,可以点击下方链接去取

在这里插入图片描述

博客系统的Controller层实现代码URL

1. 注册接口

<1>. 操作流程

  • 获取接口URL或请求参数信息

在这里插入图片描述

在这里插入图片描述

  • 创建Stepping Thread Group

在这里插入图片描述

  • 配置要性能测试需要的参数

在这里插入图片描述

在这里插入图片描述

鱼式疯言

这里小编的设置性能测试的线程启动过程为:

  1. 启动时:每间隔 两秒 启动 两个线程 ,在 两秒内完成线程的启动 ,循环往复,最终达到 十个线程为上线。
  1. 启动中,持续最大线程十秒钟
  1. 启动后,每间隔 两秒 终止两个线程,在 两秒 内完成终止。循环往复,最终线程全部终止结束
  • 配置相同的HTTP请求默认值

在这里插入图片描述

在这里插入图片描述

鱼式疯言

补充说明

  1. 配置 HTTP默认值 的作用,将相同的HTTP属性都先加入, 比如相同的IP地址,端口号,编码方式,这些在下面的接口请求都是相同的

    对于这些相同的属性, 我们就可以配置到HTTP请求默认值中, 那么在下面的HTTP请求中就不需要重复配置了!

  • 创建HTTP请求

在这里插入图片描述
在这里插入图片描述

  • 添加监听器观察

在这里插入图片描述

  • 添加请求参数并且请求的数据类型

在这里插入图片描述

  • 设置 body 的请求方式为 application/json 的格式
    在这里插入图片描述

查看结果树

在这里插入图片描述

响应

在这里插入图片描述

虽然请求和效应都成功得到登录, 但是由于 手机号只能注册一条,所以这里的用户注册模块,只能返回 “手机号已被注册”

注册模块不好给小伙伴们展示, 小伙伴们敬请期待~ 下面的模块性能测试会更加有效准确。

2. 登录接口

<1>. 操作流程

  • 带入请求参数
    在这里插入图片描述

  • 将返回结果的Token加入JSON提取器,最后带入到请求头中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 加入到请求头中

在这里插入图片描述

  • 请求头参数

在这里插入图片描述

3. 获取用户列表接口

<1>. 操作流程

在这里插入图片描述

4. 用户模块所有接口性能测试结果

查看结果树

在这里插入图片描述

鱼式疯言

  1. 如果 用户列表 左边为 绿灯代表请求成功 , 如果为 红灯代表请求异常 ~
  1. 请求结果树不仅可以查看响应数据, 还可以看 请求头请求正文响应头 等… 而且 还可以对请求的数据,进行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 目录下的报告:

在这里插入图片描述

报告图展示
在这里插入图片描述

小伙伴们以后要是想生成 性能测试报告 , 就可以使用上述命令进行 便捷生成 啦~

上述就是 性能测试全过程

如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正

希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖

在这里插入图片描述

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邂逅岁月

感谢干爹的超能力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值