Jmeter+Ant+Jenkins持续集成方案改进
2024-10-14 21:04:38
关于Jmeter+Ant+Jenkins如何搭建持续集成环境,网上资料一大把,就不多说了,本文主要谈一下期间的问题及扩展该持续集成方案。
其实核心的流程不复杂,Jenkins管理构建项目,Ant配置脚本路径、结果路径等,Jmeter执行脚本,然后根据模板从jtl文件生成html报告,Jenkins邮件插件发送邮件。
公司在研发cloud产品,由于负责该产品性能测试缘故,搭建了一套相对比较完善的性能测试CI流程,改进了流程中的某些步骤,本文说下思路,涉及到代码实现的不过多赘述。
最终效果:定期执行或手动点击执行—>自动预置脚本所需测试数据—>脚本执行—>自动清理测试数据—>自动分析jtl报告(统计各项结果,分析异常等)—>测试结果自动保存至数据库—>生成邮件正文及附件—>发送邮件。每次可以无需任何处理的情况下重复执行。
整体改进原则
- 尽量无需人工干预,完全自动化
- 测试前后,数据库数据保持不变(即测试数据的预置及清理自动完成)
- 脚本执行以外的耗时尽量少(如jtl生成html的时间)
- 每次测试结果自动保存至数据库,便于对比
改进思路
简单讲,就是自己实现部分测试微服务,可以是webapi或者webservice接口,放到Jmeter脚本中,选择合适的时机执行。
包括:
- sql执行接口:传入sql集合,用来预置脚本所需的测试数据及最终脚本执行完成后清理测试数据,即每个测试脚本的结构为数据预置-业务脚本-数据清理,保证执行前后,数据库的数据保持不变;
- jtl结果分析接口:由于原本的jtl生成html太慢且部分数据统计不到(如90%响应时间等),曾经改过计算模板,去掉明细时间及增加其他统计项,但是算法是读取文件遍历计算,还是太慢,因此就自己把原始jtl读到内存里再计算吧。包括统计各种指标及一些异常分析,如基线对比、与上次结果对比等,根据自己的需要可以有多种分析接口,生成固定格式的html文件;
- 结果保存接口:当前统计结果保存至数据库,目前我们为每次一张表,带时间戳后缀;
- 邮件发送接口:Jenkins的邮件不够灵活,因此自己实现,可以用参数自行组织正文及附件等,相对灵活。
(关于数据库存量数据预置,编写过一个小工具,就叫DataGenerator吧,可以通过图形化设置,自动生成insert sql并执行,支持关联等各种特性,后续有时间单开一篇文章;
关于Jmeter脚本,由于编写脚本实在是麻烦,也做了一个工具,叫JMXGenerator吧,可以从excel自动生成Jmeter脚本,所有的设置,包括url、body、参数、csv参数等所有能用到的都可以在excel中配置,这样脚本变动的话,只需要改excel然后重新生成就行,后续有时间单开一篇文章;)
效果图
最新文章
- 解决Win7旗舰版开机后无线网络识别非常慢的问题
- 设置让ASP.NET管道接收所有类型的请求
- c++ DISALLOW_COPY_AND_ASSIGN
- 04文件与IO
- ED/EP系列6《扩展应用》
- css3选择器二
- OpenJTAG+Eclipse 3.5+GDB+Mini2440图文教程
- sudo nopasswd
- Openjudge-计算概论(A)-短信计费
- Eclipse导入项目常见问题----乱码问题03
- js的for循环闭包问题
- android设置横竖屏
- Exp1:PC平台逆向破解 20164314 郭浏聿
- svn迁移后本地地址变更及externals无效的问题
- Android: Avoid passing null as the view root
- (原创)sqlite封装库SmartDB1.3发布
- URAL 1183 Brackets Sequence
- .net MVC4 来一个简单的分页代码
- Byedance AI Camp-笔试题目
- 【BZOJ4606】[Apio2008]DNA DP
热门文章
- September 13th 2017 Week 37th Wednesday
- npm install --save 和 --save-dev的区别
- PAT 1001A+B Format
- [T-ARA][Goodbye, OK]
- ubuntu安装pycharm并设置快捷方式
- impdp导入expdp导出数据库实例
- BZOJ1513:[POI2006]TET-Tetris 3D(线段树套线段树)
- P2278 [HNOI2003]操作系统
- 怎样批量提取JPG照片的文件名
- Xilinx实习一年总结