1、前言
在软件开发的生命周期中,API
文档的自动生成以及接口的性能测试是提升开发效率和确保产品质量的关键步骤。随着smart-doc
工具在3.0.1
版本后新增了生成JMeter
性能压测脚本的能力,开发者可以更加便捷地完成这两项任务。本文将介绍如何利用smart-doc
和JMeter
进行有效的性能压测。
2、Smart-doc生成JMeter
生成 JMeter 脚本
使用 Smart-doc
生成 JMeter
性能压测脚本,可以大大减少性能测试脚本的编写时间,提升测试效率。Smart-doc
自动生成的 JMeter
脚本,可以直接在 JMeter
中运行,无需经过复杂的配置和调试,让性能测试变得更加简单快捷。
首先,确保你的项目中已经包含了smart-doc
插件。然后,在项目的pom.xml
文件中配置smart-doc
插件的相关参数,例如:
xml
复制代码
<plugin> <groupId>com.ly.smart-doc</groupId> <artifactId>smart-doc-maven-plugin</artifactId> <version>3.0.3</version> <configuration> <configFile>./src/main/resources/smart-doc.json</configFile> <projectName>${project.description}</projectName> </configuration> <executions> <execution> <!--如果不需要在执行编译时启动smart-doc,则将phase注释掉--> <phase>compile</phase> <goals> <!--smart-doc提供了html、openapi、markdown等goal,可按需配置--> <goal>jmeter</goal> </goals> </execution> </executions> </plugin>
运行mvn -Dfile.encoding=UTF-8 smart-doc:jmeter
命令,smart-doc
将扫描项目源代码,提取注释信息,并自动创建相应的JMeter
性能压测脚本。
不熟悉使用可以查阅smart-doc
官方文档smart-doc-group.github.io/#/zh-cn/int…
导入JMeter 脚本
打开 JMeter
,点击 "File" -> "Open",选择第一步生成的 JMeter
脚本文件,点击 "Start" 按钮,JMeter
就会开始按照脚本进行性能压测。
配置prometheus监控
Prometheus
是一款开源的监控和警告工具,用于处理时间序列数据。通过结合这两款工具,我们可以实现对 JMeter
测试过程的实时监控,从而提高性能测试的可观测性。
以下是实现步骤:
1. 安装 JMeter Prometheus 插件
首先,你需要在 JMeter
的 lib/ext
目录下安装 Prometheus
插件。你可以从 JMeter Plugins Manager
或者官方网站 jmeter-plugins.org/ 下载插件。也可以从Github
下载,github.com/johrstrom/j… 。本次选择从Github下载最新的0.7.1
注意: JMeter
默认监听的IP地址是127.0.0.1
,默认会导致Prometheus
无法连接到 JMeter Prometheus
的监听端口,因此需要注意在jmeter.properties
里加个配置prometheus.ip=0.0.0.0
2. 在 JMeter 中配置 Prometheus 插件
打开 JMeter
,添加Prometheus Listener
到你的测试计划中。这可以通过右键点击"测试计划" -> "添加" -> "监听器"-> Prometheus Listener
来完成。
监听器的配置可以参考官方的配置,参考如下(smart-doc
支持配置添加生成Prometheus Listener
):
3. 配置 Prometheus
在 Prometheus
的配置文件(prometheus.yml
)中,添加一个新的 scrape_config
来从 JMeter Prometheus
插件中抓取数据。例如:
yaml
复制代码
scrape_configs: - job_name: 'jmeter' static_configs: - targets: ['<Your JMeter machine IP>:9270']
其中, 是运行 JMeter
测试的机器的 IP
地址,9270
是 JMeter Prometheus
插件的默认监听端口。
4. 启动JMeter
本文中为了方便验证,压测时线程组设置为“无限循环” ,可根据实际需求去调整。
启动成功后, JMeter Prometheus
会默认在本地创建一个端口为9270
的服务。 访问网址:http://localhost:9270/metrics 看到如下内容就说明成功了
5. 启动 Prometheus
启动 Prometheus
,Prometheus
将开始从 JMeter Prometheus
插件中抓取数据。如下图配置和启动成功后能在Prometheus
中看到设置的target
6. 配置Grafana
到Grafana
官网,查找官网提供的prometheus-jmeter
监控面板。这里选用ID
为14927
的模版导入到Grafana
中。
点击Load之后选择Promethues
数据源。
注意: 测试中发现14927
原始模版存在一些错误,本文编写过程中做了修复,需要的同学可以通过下面链接下载修复后的模版导入: github.com/smart-doc-g…
模版导入成功后我们就可以在Grafana
中看到整个性能压测的监控数据了。
为了大家可以快速的感受整个的压测流程,smart-doc
社区也整理提供一个采用docker-compose
一键启动体验的模版。如果想通过k8s
部署来体验,也可以借助一些国内大模型AI工具直接把docker-compose
的模版转化成k8s
部署模版。
体验项目中也包含使用说明
相关代码地址:github.com/smart-doc-g…
3、Smart-doc在性能压测实践中的优点
使用 Smart-doc
与 JMeter
的组合进行性能压测,有以下几个优点:
自动化: Smart-doc
可以自动从源码中提取 API
信息,自动生成 JMeter
性能压测脚本,无需手动编写,大大提高了效率。
精确: Smart-doc
自动生成的JMeter
性能压测脚本,与源码中的 API
定义完全保持一致,避免了手动编写脚本时可能出现的错误。
灵活: Smart-doc
支持多种配置选项,可以根据测试需求定制生成的 JMeter
脚本。
后续smart-doc也会持续完善对JMeter的支持优化。请持续关注smart-doc开源项目: github.com/TongchengOp…
4、总结
通过结合smart-doc
和JMeter
,我们不仅可以自动化生成API
文档,还能快速创建性能测试脚本并进行压测。这种集成的工作流程显著提高了开发和测试效率,同时帮助团队更容易地维护和优化软件系统的性能。希望本文为你提供了实用的参考,以便在日常工作中更加高效地应用这两个强大的工具。 我们也欢迎大家持续关注和支持smart-doc
开源社区,未来我们也在探索更多语言的支持,为更多开发者赋能提效。
总结
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面
自动化测试相关教程推荐:
2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili
2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili
测试开发相关教程推荐
2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili
postman/jmeter/fiddler测试工具类教程推荐
讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili
2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili
2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili
总结:
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!