这篇文章介绍jenkis jmeter的持续集成,利用jenkins定时任务去批处理执行jmeter的jmx脚本文件,并且生成测试报告

1:jmeter的安装这里我就不在赘述了,如有问题可参考我的jmeter系列博文之-jmeter命令行运行-单节点和jmeter命令行运行-分布式测试

2:如果jmeter是单节点部署的,那么jenkins的安装只需安装在jmeter所在的单节点机器上即可;如果jmeter要进行分布式测试,那么将jenkins安装在jmeter的master所在机器上即可

这里我以分布式测试为例进行讲解,我的jmeter的master机器为134.64.14.95机器,jenkins安装只需要安装在该机器上即可

3:jenkins安装,下载tomcat和jenkins包,上传到master机器(134.64.14.95),这里给出我的云盘地址:http://pan.baidu.com/s/1nuCbopz 密码:dxez

解压缩tomcat包,然后将jenkins.war放到tomcat目录webapps文件夹下

4:修改tomcat的conf/server.xml配置文件(3处端口号和一处utf-8编码)

5:保存后,启动tomcat,日志打印会给出admin用户的密码以及密码存储文件的路径

5:启动tomcat后,在浏览器中打开网址:http://134.64.14.95:50002/jenkins

在密码栏输入之前日志中给出的密码或打开对应路径下的文件也可以找到密码内容:41a4494785314e62ae7c48bc9e292cce

输入密码后点击下一步,会让你选择是配置网络插件还是跳过,这里我们选择跳过

然后选择继续使用admin用户,完成jenkins启动的准备工作,点击start using jenkins

这样我们就进入了jenkins的页面:

6:在jenkins页面配置jdk,进入系统管理-Global Tool Configuration中,点击新增JDK按钮,去掉自动安装前面的勾选框,此时会显示别名和JAVA_HOME

7:新建job,构建一个自由风格的项目,名称为:jenkins_jmeter_test

8:配置job,上图点击ok后,会跳转到job的配置页面

  • job构建生存期配置

  • job构建工作空间配置,保证该工作空间地址存在后面jenkins运行的结果文件会存放在里面

  • job构建触发器,如下为15分钟执行一次,当然你也可以设置成你想要的定时器效果,这里的语法我会在后面附录中详细讲解

  • job构建脚本,在构建一栏,点击增加构建步骤:execute shell 利用shell命令来批处理执行jmeter脚本

这里我将我想要执行的jmx脚本都放在了自定义的工作空间中/home/tester/jenkins_jmx

在jenkins页面execute shell栏输入shell命令,注意这里根据需要修改路径和jmx以及jtl文件路径及名称:

cd /home/tester/apache-jmeter-3.0/bin

./jmeter -n -t /home/tester/jenkins_jmx/crm_test_20.jmx -r -l /home/tester/jenkins_jmx/crm_test_20.jtl && ./jmeter -n -t /home/tester/jenkins_jmx/crm_test_10.jmx -r -l /home/tester/jenkins_jmx/crm_test_10.jtl

  • job构建后操作,要想将jtl文件生成测试报告,需要安装一个插件performance,云盘地址为:http://pan.baidu.com/s/1kUCLocn 密码:dnp9

下载该插件,在jenkins界面中系统管理-管理插件下,在管理插件页面点击高级,在高级页面,找到上传插件栏,上传该插件

安装完成后重启tomcat,然后在首页中,进入刚刚保存的job中继续继续job构建后操作

添加构建后操作,选择publish performace test result report

选择后,页面会出现关于该项的一系列信息,选择performance report为jmeter

输入所有测试结果的存放地址: **/*.jtl,并勾选上展示 throughput 图标框

点击保存,这样一个定时15分钟批量处理jmx脚本的jenkins的job就配置好了。

8:验证job,配置完成后我们可以点击立即构建,看该任务是否能正常执行生成报告

观察build history栏下面会出现一个构建任务,并且闪烁和出现滚动条进度信息,待滚动条完成且任务不在闪烁,代表任务执行完成,点击该任务进入该次构建,点击console output可以看到该次构建控制台的日志信息

这样就实现/home/tester/jenkins_jmx路径下的脚本批量执行,我们可以去看生成的测试报告:性能趋势图中会展示每个jtl的趋势图包括吞吐量、响应时间、错误率

点击last report可以详细展示最后一次的结果详情信息:

点击右侧的response time trends for build 会详细展示该次构建每个请求方法的具体响应时间趋势图:

9:附录,构建触发器日程表语法解析

  • 日程表每行5个字段,以tab或者空格隔开帮助里写的5个字段为:MINUTE HOUR DOM MONTH DOW(分时日月星期几)

MINUTE:指分钟,范围为0-59

HOUR:指小时,范围为0-23

DOM:指day of month,日,范围为1-31

MONTH:指月,范围为1-12

DOW:指day of week,星期几,范围为0-7,0和7表示的都是sunday即周日

  • 如果想为一个字段指定多个值,可以用下面的操作符,以优先顺序来看:

*:指定所有有效的值

M-N:指定值的范围为M-N

M-N/X:指定值的范围为M-N,步长为X

*/X:指定按X步长来取值

A,B..Z:枚举多个值

  • 对于H的解释,我们要尽可能多使用H符号:

jenkins中周期性任务在系统中执行时发生负载,所以我们应尽可能的使用H符号('散列'),使得系统任务不会在同一时间同时发生,更好利用系统资源,举个例子来说, 0 0 * * *和H H * * *,0 0 * * *会使得任务每天在晚上12:00点同时都触发执行,而H H * * *为每天执行一次,但是不会让任务在同一时间同时触发执行,这样有利于系统空闲时的利用,避免大量任务在同一时刻触发发生负载。

H符号可以使用范围,如H H(0-7) * * *表示0点即每天晚上12:00到上午7:59之间触发一次任务

H符号可以使用步长,如H */2 * * * 表每两个小时触发一次任务

H符号可以使用步长+范围,如H H(0-7)/2 * * * 表示晚上12点到上午7:59之间的时间每2个小时触发一次任务如1:,3:,5:,这些间隔的时间取值均在0-7小时范围内

  • 空行和以#开头的行将被忽略,不被执行
  • @yearly, @annually, @monthly, @weekly, @daily, @midnight, and @hourly支持别名的方式

@hourly和H * * * *执行效果是一样的,都是每小时执行一次,意味着任务将在小时中的任意一个时间内被执行

@midnight指的是晚上12:00到2:59分这段时间

以下用不同的例子来说明cron的强大:

1:* * * * *

每分钟执行一次

2:5 * * * *

每小时第5分钟执行一次

3:H/15 * * * *

每15分钟执行一次

4:45 10 * * 1-5

每周一到周五10点45执行一次

5:H(0-29)/10 * * * *

每隔10分钟执行一次,但是间隔时间的值需要在0-29分钟范围内,如 :05,:15,:20这几种取值均在0-29分钟内

6:45 9-16/2 * * 1-5

周一到周五,9点45分到16点45之间每隔2小时执行一次

7:H H(9-16)/2 * * 1-5

周一到周五,每隔2小时执行一次,但是间隔时间的值需要在9-16小时内,如:9:35,11:35,13:35,15:35

8:H H 1,15 1-11 *

1月到11月里,每月的第一天和第15天执行一次

好了,以上就是jenkins+jmeter持续集成的全部内容了。

jenkins jmeter持续集成批处理jmx脚本的更多相关文章

  1. Jenkins+Jmeter持续集成笔记(二:ANT执行Jmeter脚本)

    Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告. Ant是一个功能强大的打包编译工具.我们使用他的目的是将xml ...

  2. Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)

    通过前几篇文章,jmeter+ant+jenkins自动化持续构建的测试平台基本成型.既然要自动化平台,最基本的肯定要实现不经过人工干预,平台会在特定的条件下自动运行测试脚本,并在脚本运行结束后,发送 ...

  3. Jenkins+Jmeter持续集成笔记(三:集成到Jenkins)

    上一篇笔记中已经实现了通过ant工具执行Jmeter测试脚本,并输出html格式测试报告到指定目录. 在本章中,将尝试把这个过程丢进jenkins去执行. 1.Jenkins全局工具配置 登录jenk ...

  4. Jenkins+Jmeter持续集成笔记(一:环境准备)

    整体思路: 通过Jmeter图形界面编写api测试脚本 ant 批量执行Jmeter脚本文件 将其集成到jenkins,设置执行频率与发送测试报告 运行环境 系统 配置 IP Centos7.1 1核 ...

  5. Jenkins+Jmeter持续集成笔记(五:问题优化)

    通过前面的一系列文章,我的API自动化测试平台已经搭建成型,但是要投入具体项目使用时,还有以下几个问题需要优化. 还是接着以上一篇笔记中的“test_token”项目为例: 1.邮件通知问题 (1)问 ...

  6. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  7. 用MSBuild和Jenkins搭建持续集成环境(2)

    http://www.infoq.com/cn/articles/MSBuild-2   作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意:  ...

  8. 使用jenkins实现持续集成

    一.jenkins 介绍 它是一个自动化的周期性的集成测试过程,从检出代码.编译构建.运行测试.结果记录.测试统计等都是自动完成的,无需人工干预: 它需要有专门的集成服务器来执行集成构建: 它需要有代 ...

  9. jenkins+github持续集成中的坑

    1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集 ...

随机推荐

  1. 企业架构研究总结(42)——企业架构与建模之ArchiMate详述(中)

    2.4 技术层模型元素 技术层模型元素包括了企业在信息基础设施方面(企业中基本的软硬件环境,包括物理设备.系统软件等为信息化提供基本支持的设施)的各种概念元素,以及他们之间的关系.与应用层模型元素相类 ...

  2. C语言变参函数的编写

    1. 引言 一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的实际参数.但在某些情况下我 们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数.典型的 ...

  3. opencv中的vs框架中的Blob Tracking Tests的中文注释。

    经过2天的努力终于算是大概弄清楚了opencv中的vs框架是大概是如何工作的了,下面贴一下我自己写的代码注释.非常详细.对初学者有帮助.尤其详细分析了RunBlobTrackingAuto()函数,在 ...

  4. 【C#】Smtp发送邮件

    class SmtpEmail { SmtpClient smtpclient; MailMessage msg; Attachment attachment; public void sendMai ...

  5. GC算法精解(五分钟让你彻底明白标记/清除算法)

    GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...

  6. JForum2.1.9 安装过程

    JForum2.1.9 安装过程 JForum2.1.9 安装过程 2013/08/10 0:48 1.第一次接触 2013/08/08 在开源中国看到一个国外开源的Java论坛,然后下载JForum ...

  7. 微信公众平台自定义菜单创建代码实现—java版

    搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知道你们什么感觉.  我知道是post一个带参数的 ...

  8. IE11仿真文档模式默认IE5 IE7的调整办法

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

  9. 解密:LL与LR解析 1(译)

    解密:LL与LR解析 1 作者:Josh Haberman 翻译:杨贵福 由于GFW,我无法联系到作者,所以没有授权,瞎翻译的.原文在这里[http://blog.reverberate.org/20 ...

  10. ADS的go to命令

    我们有时候在一个函数右键没有看到“go to”选项,这是因为没有Make,要先Make之后才能使用go to 命令