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

06-01 921阅读

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

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

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

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

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

欢迎小伙伴访问小编的个人Web项目:《抽奖系统》

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

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

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

引言

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

目录

  1. Jmeter工具安装与配置

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

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

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

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

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

一. Jmeter工具安装与配置

1. 安装和配置

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

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

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

安装 Jmeter 的前提, 是电脑上已经有 JDK8或以上的版本才可使用!

JDK下载官网URL

小伙伴们在官网下载JDK即可 (如果没有的小伙伴),这里就不赘述了!

Jmeter下载官网URL

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

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

点击 bin目录 ,

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

进入 bin目录 之后,点击 jmeter.bat 文件

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

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

修改编码方式

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

修改字体为中文

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

成功打开Jmeter页面

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

保存文件路径,进行测试

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

这里小编重命名为为 lottery.jmx

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

2. 添加插件

插件下载官网URL

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

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

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

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

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

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

打开JMeter下载插件

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

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

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

搜索 thread 下载下面三个插件

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

basic 下载下面这个插件

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

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

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

  • 注册接口

  • 登录接口

  • 获取用户列表接口

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

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

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

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

    1. 注册接口

    . 操作流程

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

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

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

      • 创建Stepping Thread Group

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

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

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

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

          鱼式疯言

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

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

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

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

            鱼式疯言

            补充说明:

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

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

            • 创建HTTP请求

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

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

              • 添加监听器观察

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

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

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

                  • 设置 body 的请求方式为 application/json 的格式

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

                    查看结果树

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

                    响应

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

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

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

                    2. 登录接口

                    . 操作流程

                    • 带入请求参数

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

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

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

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

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

                      • 加入到请求头中

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

                        • 请求头参数

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

                          3. 获取用户列表接口

                          . 操作流程

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

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

                          查看结果树

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

                          鱼式疯言

                          1. 如果 用户列表 左边为 绿灯代表请求成功 , 如果为 红灯代表请求异常 ~
                          1. 请求结果树不仅可以查看响应数据, 还可以看 请求头,请求正文,响应头 等… 而且 还可以对请求的数据,进行JSON的反序列化表示 以及使用 JSON表达式 对 响应结果进行筛选 。

                          汇总报告

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

                          聚合报告

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

                          每秒处理的事务数

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

                          响应时长

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

                          综上所得:

                          三个接口总体上:

                          注册接口的 汇总报告和聚合报告 的几个参数,都 普遍高于其他两个接口。但是都未发送接口异常。

                          但是在 处理的事务数 上面,三个接口变化程度,高低程度都是相差不大的,均属于稳步提升。

                          注册接口效应时长也比其他两个接口更长,但是 普通的变化幅度变化幅度不大~

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

                          对于奖品模块而言,由于传入的参数的原因,小编这里就只能测试:

                          • 奖品列表测试

                            1. 奖品列表测试

                            . 操作流程

                            HTTP请求

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

                            其他元件和上一个模块相同,小编这里就不赘述了~

                            2. 奖品模块所有接口性能测试结果

                            查看结果树

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

                            汇总报告

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

                            聚合报告

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

                            每秒处理的事务数

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

                            响应时长

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

                            综上所得:

                            聚合报告和 汇总报告 数据在可控范围内,接口无异常情况产生~

                            每秒处理的事务数,跟随着线程的变化而变化。 在正常范围内~

                            但是 响应的时长随着线程的变化的趋势较大, 性能不是特别稳定。

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

                            活动模块的可进行接口性能测试的主要有:

                            • 创建活动接口

                            • 展示活动列表接口

                            • 展示活动详情接口

                              1. 创建活动接口

                              . 操作流程

                              创建HTTP请求配置路径和请求方法

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

                              2. 展示活动列表接口

                              . 操作流程

                              创建HTTP请求配置路径和请求方法

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

                              3. 展示活动详情接口

                              . 操作流程

                              查找第一个活动id

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

                              将活动id保存到JSON提取器中

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

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

                              创建HTTP请求并且配置路径

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

                              4. 活动模块所有接口性能测试结果

                              查看结果树

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

                              汇总报告

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

                              聚合报告

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

                              == 每秒处理的事务数==

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

                              响应时长

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

                              综上所得:

                              从 汇总报告和聚合报告 中可以看出, 创建活动的平均数参数明显比其他两个接口更高。汇总报告出现异常部分异常。

                              事务数 随着线程的增多而增多,在正常的范围内浮动 ~

                              创建活动的响应时长比其他接口更长 , 并且创建活动的响应时长的变化幅度最大,其他接口变化不是很明显。

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

                              对于抽奖模块的主要的测试接口有:

                              • 抽取奖品接口
                              • 中奖记录接口

                                1. 抽取奖品接口

                                . 操作流程

                                建立HTTP请求,并配置好路径和请求数据

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

                                2. 中奖记录接口

                                . 操作流程

                                建立HTTP请求,并配置好路径和请求数据

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

                                3. 抽奖模块所有接口性能测试结果

                                查看结果树

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

                                汇总报告

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

                                聚合报告

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

                                每秒处理的事务数

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

                                响应时长

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

                                综上所得:

                                在汇总报告,聚合报告中, 抽取奖品接口大部分参数都高于中奖记录参数。但是都未出现异常~

                                处理的事务数 随着线程数的增多而增大,属于正常的范围之内~

                                抽取奖品接口比中奖记录的响应时长更长,并且变化幅度较大。

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

                                1. 测试报告

                                在保存的jmx文件目录下打开cmd

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

                                执行命令

                                jmeter -n -t xxx.jmx -l 日志文件.jtl -e -o 目录

                                目录需要提前创建一个用于保存 性能测试报告 的专属目录

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

                                得到一个 lottery.jtl 日志文件, 以及 ku 目录下的报告:

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

                                报告图展示

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

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

                                上述就是 性能测试全过程

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

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

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

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码