关于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持续集成方案改进的更多相关文章

  1. 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路

    本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...

  2. Jmeter接口测试自动化(jmeter+ant+jenkins持续集成)

    Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1. ...

  3. jmeter+ant+jenkins持续集成

    邮件.报告插件和jenkins的war包下载地址:链接:https://pan.baidu.com/s/1gZJ53x50bxVyEsQFjdCkog 密码:1jtz 1.下载ant  网盘地址:链接 ...

  4. Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Window 环境准备 安装 ant: ...

  5. Jenkins+Jmeter+Ant接口持续集成

    修改时间 修改内容 修改人 2016.5.22 创建 刘永志 2016.6.15 完成 刘永志 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做C ...

  6. Jenkins+Jmeter+Ant 接口持续集成(转)

    来源:https://testerhome.com/topics/5186 为什么要用Jmeter做接口测试 当选择这套方案的时候,很多人会问,为什么选择Jmeter做Case管理?为什么不自己写框架 ...

  7. Jenkins+JMeter+Ant 接口持续集成

    ​JMeter安装 JMeter安装包: 下载地址:https://jmeter.apache.org/download_jmeter.cgi 依赖JDK环境 JDK环境配置: JAVA_HOME   ...

  8. jmeter + ant + jenkins 自动化集成环境搭建

    所需工具 一.jmeter 工具下载 https://jmeter.apache.org/  配置环境JDK等及各种插件 二.Ant安装(http://ant.apache.org/) 安装Ant是为 ...

  9. Jenkins+Jmeter+Ant自动化持续集成环境搭建

    [前言] 今天让我们先把准备工作做好 >> 搭建环境! [正文] JDK+Jmeter安装教程: 参考博客:https://www.cnblogs.com/baoziluo/p/79056 ...

随机推荐

  1. MySQL知识总结(二)基本语句总结

    1. 数据库 查看数据库 show databases; 使用数据库 use [数据库名] 如:use mysql 创建数据库 CREATE DATABASE bruce DEFAULT CHARAC ...

  2. 标绘ol3版开源啦

    地址:git.oschina.net/ilocation/plot By 平凡的世界 plot4ol3 说明 基于OpenLayers3实现动态标绘API. 在线体验 :7xr2vb.com1.z0. ...

  3. java 扁平化输出json所有节点key/value

    本章主要介绍用java实现扁平化输出json所有节点key/value(包含所有内层子节点) 1.json结构 目的输出bill_list下的datalist里的子节点key/value 2.实现代码 ...

  4. Java基础加强之并发(一)基本概念介绍

    基本概念介绍 进程:它是内存中的一段独立的空间,可以负责当前应用程序的运行.当前这个进程负责调度当前程序中的所有运行细节. 线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间. 进程是负 ...

  5. ganache-cli

    安装: npm install -g ganache-cli@6.1.8 使用: userdeMacBook-Pro:~ user$ ganache-cli -m "success rifl ...

  6. 为什么会有object这么一个根基类

    先问一个问题,为什么需要有一个统一的基类:Object?甚至,我们在编程语言中也常常见到这种模式,比如Java中的object.C#的object,甚至一些纯对象的脚本语言(Ruby里连数字123都是 ...

  7. ZooKeeper(二)Java API使用

    ZooKeeper官网提供了Java和C的API. 本文使用Java API来实现ZooKeeper的基本操作. 前言 下图中的Replicated Database是包含完整数据树(entire d ...

  8. UVA - 11927 Games Are Important (SG)

    Description  Games Are Important  One of the primary hobbies (and research topics!) among Computing ...

  9. CATransform3D 使用

    struct CATransform3D { CGFloat m11(x轴缩放), m12(y轴切变), m13, m14(x轴拉伸); CGFloat m21(x轴切变), m22(y轴缩编), m ...

  10. mysql——leetcode问题记录

    问题: 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | ...