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 ...
随机推荐
- Ubuntu 配置Mysql远程连接
首先安装mysql.mysqlclient sudo apt-get install mysql-server mysql-clientsudo apt-get install libmysqlcli ...
- Zepto的SwipeUp 在 android 和微信 的解决方案
Zepto的SwipeUp 在 android 和微信 的解决方案 时间:2016-04-19 22:20:09 作者:zhongxia 问题解决方案: Q:为什么swipeUp和swipeDown在 ...
- 第一次项目冲刺(Alpha版本)2017/11/14
一.站立式会议 在宿舍进行了第一次会议 会议内容: 1.做了简单的分工 2.提出个人对任务是否有困难 3.规定完成时间在第三天之前 4.商量初步的代码规范 二.分工 三.任务分解图 四.燃尽图 五.数 ...
- U-Mail如何实现邮件营销自动化?
对于很多企业来说,人力成本可能就是最大的成本支出了,如果能节省这方面成本支出,也就意味着公司增收了,因此很多公司在做营销工作时,都希望营销能够高效率.有系统.有规划.循序渐进的开展,同时还要减轻营销人 ...
- MySQL复制(一)复制原理探讨
1 复制概述 1.1.复制解决的问题 数据复制技术有以下一些特点: (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availabilit ...
- 唯品会RPC服务框架与容器化演进--转
原文地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=405781868&idx=1&sn=cbb10d37e25 ...
- HTML5的新标签-整体布局
过去:<div class="header"> <div class="hgroup"> <h1>....</h1&g ...
- 在CentOS7上部署 Kubernetes集群
yum -y install etcd docker flannel kubenetes 一般会遇到没有k8s源的问题,先 yum update -y 看是否有效,如果还是没用就创建yum 源,再 ...
- P4197 Peaks
题目描述 在Bytemountains有N座山峰,每座山峰有他的高度\(h_i\).有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点 ...
- 使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹,而且div的id命名为id=content,这个和已有id重复 ...