设为首页 收藏本站
查看: 1462|回复: 0

[经验分享] jenkins jmeter持续集成批处理jmx脚本

[复制链接]

尚未签到

发表于 2018-1-6 22:30:47 | 显示全部楼层 |阅读模式
  这篇文章介绍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持续集成的全部内容了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432403-1-1.html 上篇帖子: jenkins集成python的单元测试 下篇帖子: 【过程改进】 windows下jenkins常见问题填坑
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表