Jmeter+Ant+Jenkins持续集成方案改进
关于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然后重新生成就行,后续有时间单开一篇文章;)
效果图




Jmeter+Ant+Jenkins持续集成方案改进的更多相关文章
- 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路
本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...
- Jmeter接口测试自动化(jmeter+ant+jenkins持续集成)
Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境. 1. ...
- jmeter+ant+jenkins持续集成
邮件.报告插件和jenkins的war包下载地址:链接:https://pan.baidu.com/s/1gZJ53x50bxVyEsQFjdCkog 密码:1jtz 1.下载ant 网盘地址:链接 ...
- Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Window 环境准备 安装 ant: ...
- Jenkins+Jmeter+Ant接口持续集成
修改时间 修改内容 修改人 2016.5.22 创建 刘永志 2016.6.15 完成 刘永志 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做C ...
- Jenkins+Jmeter+Ant 接口持续集成(转)
来源:https://testerhome.com/topics/5186 为什么要用Jmeter做接口测试 当选择这套方案的时候,很多人会问,为什么选择Jmeter做Case管理?为什么不自己写框架 ...
- Jenkins+JMeter+Ant 接口持续集成
JMeter安装 JMeter安装包: 下载地址:https://jmeter.apache.org/download_jmeter.cgi 依赖JDK环境 JDK环境配置: JAVA_HOME ...
- jmeter + ant + jenkins 自动化集成环境搭建
所需工具 一.jmeter 工具下载 https://jmeter.apache.org/ 配置环境JDK等及各种插件 二.Ant安装(http://ant.apache.org/) 安装Ant是为 ...
- Jenkins+Jmeter+Ant自动化持续集成环境搭建
[前言] 今天让我们先把准备工作做好 >> 搭建环境! [正文] JDK+Jmeter安装教程: 参考博客:https://www.cnblogs.com/baoziluo/p/79056 ...
随机推荐
- 魅力python------if - else 语句
引入:if-else的作用,满足一个条件做什么,否则做什么. if-else语句语法结构 if 判断条件: 要执行的代码 else: 要执行的代码 判断条件:一般为关系表达式或bool类型的值 执行过 ...
- win命令行环境编码设置为utf-8
win命令行环境编码默认为gbk,有时运行文件编码为utf-8,会导致编码错误,可以修改注册表进行设置环境编码. win+r =>regedit 找到 计算机\HKEY_CURRENT_USER ...
- Oracle 数据库创建(图形界面操作)
Oracle 创建数据库图文分解: 1. 选择所有程序->Oracle-OraDb11g_home1->Configuration and Migration Tools -> Da ...
- IKVM.NET入门(1)
IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序.本文将比较详细的介绍这个工具的原理.使用入门(如何java应用转换为.NET应用.如何 ...
- python第十四课--排序及自定义函数之案例一:选择排序
案例一:选择排序使用选择排序的思想实现列表数据的升序排序 lt=[45,12,56,-32,-3,44,75,-22,100] length=len(lt) # print('排序前:'+str(lt ...
- 【洛谷】【线段树】P3353 在你窗外闪耀的星星
[题目描述:] /* 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀 ...
- verilog实现VGA显示方块屏幕保护
verilog实现VGA显示方块屏幕保护 输入和输出 时钟信号 clk 复位信号 reset rgb三颜色输出 [2:0] r,g, [1:0] b 行信号输出 hs 列信号输出 vs 参数设定 设定 ...
- mac 安装npm
npm是什么 NPM的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准. 如何安装 一:如果你安装了Homebrew ...
- 《Java程序设计》第12周课堂实践总结
<Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...
- grep, sed 与 awk 补补课,到底怎么用!
grep, sed 与 awk 相当有用 ! gerp 查找, sed 编辑, awk 根据内容分析并处理. awk(关键字:分析&处理) 一行一行的分析处理 awk '条件类型1{动作1}条 ...