Jmeter(二十六)Jmeter-Question之“集成Jenkins”
Jenkins,最初被称为Hudson,是一个Java语言编写的开源持续集成工具。Jenkins在持续集成领域的市场份额居于主导地位,其被各种规模的团队用于各种语言和技术的项目中,比如.net。ruby。Groovy。Java等。
Jenkins的用户界面非常简单、直观、增加了视觉上的吸引力,其次具有良好的扩展性,能够及其灵活和方便的迎合你的想法。它有数以百计的开源插件可供使用,而且每周都有更多的插件贡献进来。这些开源插件覆盖系统的版本控制、构建工具、代码质量度量、构建通知、外部系统集成、用户界面定制化、游戏等。 ---摘自<Jenkins权威指南>
Jenkins作为一款优秀的集成工具,是非常成功的。从单方面的简洁GUI、功能等优秀特点,更多的是迎合了现今软件的开发模式以及管理模式,本人有了解,在去年的一场Jenkins的技术分享会上,有提到Jenkins的插件已经达到1340多个,真是一个恐怖的数字。因此,称之它为一手插件堆起来的功能,一点也不为过。
当然,Jenkins优秀归优秀,那么它能帮我们来干什么呢?Jmeter又如何和Jenkins进行相互‘沟通’进行工作呢?
(具体Jenkins的安装方式便不在记了)
自3.0起Jmeter,已经有了丰富的图表展示,之前的话是用借用ant进行构建,ant生成图形报表,而3.0以后,可以直接显示自己的图表,便不必要(当然也是也可以的,后续记上)去加ant。
其具体的实现方式还是Jmeter的no GUI方式运行,使用Jenkins的插件将Jmeter生成的图表展现出来。OK,上例子。
使用GUI界面进行调试,线程10,10s内启动,循环10次,一个Sampler,有100次Sampler进行请求。
执行命令,如图,运行生成jtl、log文件
加上-e -o参数(及相应路径)生成Jmeter自带的html报告
OK、我这个是执行过的,报告也展现了出来。
那么Jenkins上是怎么玩的呢?直接上Demo。
直接新建一个自由风格的project。
源码管理、构建触发器暂且用不到(作为一个简单的demo)
直接构建、选用插件Execute Windows batch command;(因为我的tomcat在本地搭建,本地为windos环境,因此会选用该插件,如若为linux,先用Excute shell即可)
上方在终端命令行中运行的命令直接放入该插件。
首先先将本地的jmx文件以Jenkins进行运行一遍,并输出jtl、log的日志文件。
保存并点击“立即构建”
构建成功,红色即失败。
查看本次构建的日志信息。
可以看的出来,本地文件是构建成功的,再至本地日志存放目录,查看日志文件是否生成。
日志文件也是生成了。可使用Jmeter的监控器(结果树等)进行查看日志信息。
OK,再进行加入生成report的参数-e、-o进行生成可视化报告。
立即构建。
至本地查看该report文件是否生成。
截至此处,使用Jenkins进行构建Jmeter工程并生成各种日志文件已经完成。
肯定还是有困惑的,那就是直接在Jenkins查看它的日志报告,Jenkins是完全支持的。
很eazy,增加构建后操作:
插件Publish HTML reports进行查看。
OK,接着构建。
可以看到该结果是成功的,那么至Jenkins目录HTML Report进行查看该报告。
什么鬼,竟然什么信息都查看不到?
网上有相关问题的回答。不过此处也记录一下,这是由于Jenkins的安全机制,将css等页面渲染信息都进行了拦截,可以打开F12,开发者工具进行查看拦截的信息。
那么也是有解决方案的。
有暂时解决方案,也有一劳永逸的解决方案。
整理了一下方案,大致有三种:
1、如果Jenkins是在Tomcat下进行搭建的,那么可以直接修改Tomcat的启动文件参数(具体本人并未实现)
2、使用Jenkins的脚本命令行工具,加一段Groovy代码“System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")”
该方案为暂时性解决方案,本次构建可以进行生效,可是当重启一次Jenkins便会失效,重新加入该段代码。
3、在构建过程中加入一个步骤Execute system Groovy Script,输入“System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")”代码段,便可一劳永逸,即使重启,该段功能也不会失效。
在此,便使用第三种方案进行实现。
OK,再进行构建一次,查看HTML Report。
嗯哼、将数据展现了出来。
收工~~~看书。
对了、如果在windows的环境下,须将Jenkins的工作目录等移动至其他目录(尽量不要放在C盘下),C盘为系统盘,涉及各种权限,工作目录在C盘下进行构建的话,有时会出现,本地的日志文件等全部都生成了,但是Jenkins的构建结果就是失败,报一系列莫名其妙的错误~~
至于Jenkins移动工作目录,很eazy,添加环境变量、工作目录迁移即可,百度一下更精彩!
Jmeter(二十六)Jmeter-Question之“集成Jenkins”的更多相关文章
- Jmeter(二十六)_数据驱动测试
花了一点时间做了一个通用的执行引擎,好处就是我不用再关注测试脚本的内容,而是用测试用例的数据去驱动我们执行的方向.(这个只适合单个接口的测试,具体运用到接口自动化时,还是要靠手动去编写脚本!) 首先我 ...
- Jmeter(二十六) - 从入门到精通 - 搭建开源论坛JForum(详解教程)
1.简介 今天这篇文章主要是给大家讲解一下,如何部署测试环境,这里宏哥部署一个开源测论坛,后边的文章中会用到这个论坛,并且也看到童鞋们在群里讨论如何在开发将测试包发给你以后,你如何快速地部署测试环境. ...
- 二十六、Jcreator使用初步
摘自http://blog.csdn.net/liujun13579/article/details/7751464 二十六.Jcreator使用初步 Jcreator是一个小巧灵活的Java开发工具 ...
- Bootstrap <基础二十六>进度条
Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...
- Web 前端开发人员和设计师必读精华文章【系列二十六】
<Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- 二十六:Struts2 和 spring整合
二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]
原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇] 通过<实现篇>对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding ...
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇] 元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框 ...
- VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management
VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management 实验失败告终,启动VMware View Persona Management服务报10 ...
随机推荐
- 走进 AQS 瞧一瞧看一看
并发中有一块很重要的东西就是AQS.接下来一周的目标就是它. 看复杂源码时,一眼望过去,这是什么?不要慌,像剥洋葱一样,一层层剥开(哥,喜欢"扒开"这个词). 参考资源: http ...
- ArrayList 与 LinkedList的区别
今天查看源码,分析一下两者的异同.外加阐述内部类. 内部类参考官方文档,地址如下: https://docs.oracle.com/javase/tutorial/java/javaOO/nested ...
- zabbix入门之使用QQ邮箱接受报警信息
首先说明我使用的是3.2版本的zabbix 既然要发邮件到QQ邮箱报警,那么在centos7上就肯定需要安装发送邮件的软件了 安装应用yum install mailx sendmail -y接着修改 ...
- 几张简单的terraform flow 图——可以快速了解terraform的使用
以下是一个简单额terraform flow 我们快速的了解terraform 的使用,基于流程 参考图 参考架构 简单使用流程 说明 从上图我们可以看出terraform 的使用 tf 内容编写 定 ...
- Scalable MySQL Cluster with Master-Slave Replication, ProxySQL Load Balancing and Orchestrator
MySQL is one of the most popular open-source relational databases, used by lots of projects around t ...
- python之路---09 初始函数 参数
二十七.初始函数 1.函数: 对代码块和功能的封装和定义 2.格式及语法 def 函数名() # 定义 函数体 函数名() # 调用 3. r ...
- centos7上为什么不使用libcgroup进行资源限制
不使用libcgroup的原因 centos7上使用libcgroup进行资源限制可参考 https://blog.csdn.net/lanyang123456/article/details/814 ...
- 阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href
阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href 1.查找以<a>开头的所有文本,然后判断href是否在<a> ...
- 自动加载以及Composer的实现
类的自动加载 两个函数 __autoload()魔术方法.spl_autoload_register 当php文件中使用了new关键字实例化一个对象时,如果该类没有在本php文件中被定义,将会触发__ ...
- OEM、ODM、OBM、OPM概念,作用与区别
名词解释1:OEM是Original Equipment Manufacture(原始设备制造商)的缩写,它是指一种"代工生产"方式,其含义是生产者不直接生产产品,而是利用自己掌握 ...