Jenkins+Ant+JMeter集成
Tomcat是jenkins运行的容器,jenkins实际上是依赖于Tomcat才能启动的。Jenkins可以调度ant的脚本。
Ant和maven类似,maven是执行pom文件,ant是执行build文件。
Jenkins强大之处就是有很多插件。
一.Jenkins安装
1.Tomcat下载,解压。D:\software\apache-tomcat-8.0.28\webapps目录下的东西无用可删除。
PS:这些文件是用来打开Tomcat控制台的。
2.官网(https://jenkins.io/download/)下载jenkins.war,并将其拷贝到D:\software\apache-tomcat-8.0.28\webapps目录下。
3.双击bin目录下的startup.bat启动Tomcat。
启动后在%TOMCAT_HOME%\webapps目录下可以看到war包已经自动解压。
同时在C:\Users\Administrator目录下多了一个.jenkins文件夹。
可以通过在浏览器输入:http://localhost(或者本机ip):8080/jenkins方式访问。
管理员初始密码在C:\Users\Administrator\.jenkins\secrets\initialAdminPassword中。
可以在管理员-配置中修改密码。
可以通过修改%TOMCAT_HOME%\conf\server.xml文件,修改默认端口。修改后需要重启Tomcat。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
安装Performance Plugin插件。
离线安装。先官网(http://updates.jenkins-ci.org/download/plugins/performance/)下载,再将其拷贝到%JENKINS_HOME%\plugin目录下,重启tomcat。没成功?!
在线安装。
系统管理-插件管理-Available-找到Performance-点击install without restart。
安装成功之后可在Installed中找到。
二.建立Slave节点(如果单机测试,此处可以忽略)
我们默认安装的Jenkins为master模式,当有大量任务时,分布式架构会提高效率。Slave节点即为分布式的节点。Jenkins的分布式任务不需要在Slave节点上也部署一套Jenkins环境,只需要建立master与slave之间的连接,由master发出指令让slave节点执行即可。
1.首页-系统管理-节点管理-新建节点-输入节点名称,确认。
2.填写节点的具体信息。
Jenkins新建节点,启动方式没有“通过Java Web启动代理”选项怎么办?
3.Slave连接Master。
如下图,小红叉代表节点没有连接上。
点击JmeterNode进入如下页面,告诉我们有2种连接方式。任选一种即可。下面我们选择第2种。
先点击下载agent.jar,再在命令行输入命令回车。
显示如下信息表示连接成功。
小红叉消失。
三.JMeter任务配置
上篇博客实例二我们已经集成了Ant+JMeter,运行Jmeter简化成了执行一个.bat的批处理文件,在此我们只需要用Jenkins调用这个批处理文件即可。
我们需要先把build.xml和run.bat做点小小的改动。
<?xml version="1.0"?>
<project name="ant-jmeter" default="all">
<description>
Jmeter+Ant+Jenkins <!--文件描述,可选择项-->
</description> <!--定义变量并赋值,能够减少配置工作量,后面会用到-->
<!--定义JMeter的工作目录,与%JMETER_HOME%指向同一个目录-->
<property name="jmeter.home" value="D:\software\apache-jmeter-5.1"/> <!--定义JMeter脚本存放目录-->
<property name="script.dir" value="D:\jmeterTest\script"/> <!--定义JMeter的测试结果存放目录-->
<property name="jmeter.result.dir" value="D:\jmeterTest\resultLog"/> <!--定义Jenkins的工作目录,将来用来存放测试结果-->
<property name="jmeter.jenkins" value="D:\jenkinsWorkshop\workspace\PerformanceTest"/> <!--定义测试报告Title-->
<property name="report.title" value="Performance Test Summary Report"/> <!--定义测试结果名称-->
<property name="jmeter.result.name" value="Test"/> <!--测试报告中是否显示失败事务,n为不显示-->
<property name="show-data" value="n"/> <!--定义样式版本,有更新时只需要修改此处即可,其他调用处不用更改-->
<property name="format" value="2.1"/> <condition property="style_version" value="">
<equals arg1="${format}" arg2="2.0"/>
</condition> <condition property="style_version" value="_21">
<equals arg1="${format}" arg2="2.1"/>
</condition> <condition property="funcMode">
<equals arg1="${show-data}" arg2="y"/>
</condition> <condition property="funcMode" value="false">
<not>
<equals arg1="${show-data}" arg2="y"/>
</not>
</condition> <!--定义依赖包目录-->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}\extras">
<include name="ant-jmeter*.jar"/>
</fileset>
</path> <!--定义任务,即测试活动,依赖于ant-jmeter.jar包-->
<taskdef
name="jmeter"
classpathref="jmeter.classpath"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/> <!--定义任务,run运行脚本,report生成报告,copy-report复制结果-->
<target name="all" depends="run,report,copy-report"/> <!--定义run任务-->
<target name="run">
<!--显示上面定义的${show-data}取值-->
<echo>funcMode = ${funcMode}</echo>
<!--删除前一次的测试报告,Html格式的,上面有定义${jmeter.result.name}变量的值-->
<!--delete file="${jmeter.result.dir}/${jmeter.result.name}.html"/-->
<!--删除前一次的测试报告,Html格式的,上面有定义${jmeter.result.name}变量的值-->
<!--delete file="${jmeter.result.dir}/${jmeter.result.name}.jtl"/--> <jmeter
jmeterhome="${jmeter.home}"
jmeterproperties="${jmeter.home}/bin/jmeter.properties"
resultlog="${jmeter.result.dir}/${jmeter.result.name}.jtl"> <!-- 指定测试脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="${script.dir}" includes="*.jmx" /> <!--指定测试结果输出格式,在此指定的是xml,也可以指定成文本格式及CSV格式-->
<!--先暂时指定成xml格式,后续会变换成文本格式-->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
<property name="jmeter.save.saveservice.samplerData" value="true"/>
<!--是否记录错误信息,上面已经定义了${funcMode}=n-->
<property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
</jmeter>
</target> <!--定义依赖包目录-->
<property name="lib.dir" value="${jmeter.home}/lib"/> <!-- Use xalan copy from JMeter lib directory to ensure consistent processing with Java 1.4+ -->
<path id="xslt.classpath">
<fileset dir="${lib.dir}" includes="xalan*.jar"/>
<fileset dir="${lib.dir}" includes="serializer*.jar"/>
</path> <!--定义report任务,此任务依赖于xslt-report,copy-html,copy-images这3个任务-->
<target name="report" depends="xslt-report,copy-html,copy-images">
<echo>Report generated at ${report.datestamp}</echo>
</target> <!--xslt-report是使用xslt来把xml文件转换成Html格式来显示-->
<!--_message_xalan 被xslt-report依赖,由它生成报告-->
<target name="xslt-report" depends="_message_xalan">
<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
<!--in:将测试结果作为输入-->
<!--style:xslt定义的模板文件地址-->
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.dir}/${jmeter.result.name}.jtl"
out="${jmeter.result.dir}/${jmeter.result.name}.html"
style="${jmeter.home}/extras/jmeter-results-detail-report${style_version}.xsl">
<param name="showData" expression="${show-data}"/>
<param name="titleReport" expression="${report.title}"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
</target> <!--copy-html复制结果到 目录,放在专门目录便于管理-->
<target name="copy-html">
<copy file="${jmeter.result.dir}/${jmeter.result.name}.html" tofile="${jmeter.jenkins}/${jmeter.result.name}.html"/>
<copy file="${jmeter.result.dir}/${jmeter.result.name}.jtl" tofile="${jmeter.jenkins}/${jmeter.result.name}.jtl"/>
</target> <!--copy-images用来cpoy图片,xslt模板中的图片由copy-images任务copy到报告目录-->
<target name="copy-images" depends="verify-images" unless="samepath">
<!--生成Html报告时需要Copy图标到报告目录,expand.png展开图标,collapse.png收起图标-->
<copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.dir}/expand.png"/>
<copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.dir}/collapse.png"/>
</target> <!--copy-report-->
<target name="copy-report">
<copydir dest="${jmeter.jenkins}" src="${jmeter.result.dir}">
<include name="*.png"/>
</copydir>
</target> <target name="verify-images">
<condition property="samepath">
<equals arg1="${jmeter.result.dir}" arg2="${jmeter.home}/extras/" />
</condition>
</target> <!--检查依赖-->
<condition property="xalan.present">
<and>
<!-- No need to check all jars; just check a few -->
<available classpathref="xslt.classpath" classname="org.apache.xalan.processor.TransformerFactoryImpl"/>
<available classpathref="xslt.classpath" classname="org.apache.xml.serializer.ExtendedContentHandler"/>
</and>
</condition> <target name="_message_xalan" unless="xalan.present">
<echo>Cannot find all xalan and/or serialiser jars</echo>
<echo>The XSLT formatting may not work correctly.</echo>
<echo>Check you have xalan and serializer jars in ${lib.dir}</echo>
</target> <!--仅仅打印前面定义的变量的值,检查是否如你所愿,在定义变量时做调试用,可以去掉-->
<echo>jmeter.home = ${jmeter.home}</echo>
</project>
build.xml
%ANT_HOME%\bin\ant -f D:\jmeterTest\build.xml
run.bat
1.新建任务。
2.配置任务。
3.构建测试。
上面的1-4步骤是构建任务使Jenkins能够通过Ant调度Jmeter来进行性能测试执行。
第5步骤“构建后操作”即为配置使Jenkins显示测试结果。
4.查看报告。
点击“立即构建”。
构建过程中可以看到进度条。构建失败可以点击Console Output查看日志。
构建成功可以点击performance report查看报告。
Jenkins+Ant+JMeter集成的更多相关文章
- Jenkins+Ant+JMeter报告自动化
1.参考Jenkins+Ant+JMeter集成,安装Jenkins(不需要安装Performance Plugin插件),建立Slave节点,连接Slave节点,创建任务等. 2.将Jenkins+ ...
- jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...
- jenkins+ant+jmeter实现自动化集成(详解)
jenkins+ant+jmeter实现自动化集成 for window 一.jmeter 1.jmeter安装 二.ant 1.ant安装 三.ant运行 jmeter脚本 1.配置 四.jenki ...
- jenkins+ant+jmeter自动化性能测试平台
jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...
- Jenkins+Ant+Jmeter自动化测试平台
持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动 ...
- Jenkins +Ant +Jmeter(apache-jmeter-5.1.1)自动化性能测试平台
1.安装配置好Jdk, 下载网址:https://www.cr173.com/soft/33894.html 2.Jmeter下载地址:http://jmeter.apache.org/downloa ...
- jenkins+ant+jmeter html报告文件作为附件发送(ant-jmeter支持javamail)
前言:由于ant-jmeter目前的版本不支持javamail,也就是说发送邮件时只能借助jenkins自带的发送邮件插件来发送报告. 但是jenkins发送邮件支持发送邮件内容(且有价值.有营养的内 ...
- 性能测试四十八:Jenkins+Ant+Jmeter系统部署
工作步骤: 1.开发提交代码SVN/Git 2.代码编译.打war包 3.上传war包到服务器 4.重启web服务器 5.开始测试/自动化测试 6.发测试结果 Jenkins工作: 1.开发提交代码G ...
- Jenkins+Ant+Jmeter接口自动化集成测试实例
Jenkins+Ant+Jmeter接口自动化集成测试实例 一.Jenkins安装配置 1.安装配置JDK1.6+环境变量: 2.下载jenkins.war,放入C:\jenkins目录下,目录位置随 ...
随机推荐
- ES6的模块暴露与模块引入
ES6的模块暴露和引入可以让我们实现模块化编程,以下列出ES6的几种模块暴露与引入的方式与区别. 1.ES6一共有三种模块暴露方法 多行暴露 模块1:module1.js //多行暴露 export ...
- Dangling meta character '' near index 0
1.replaceAll()方法报错 对字符串使用replaceAll()方法替换 * ? + / | 等字符的时候会报以下异常 Dangling meta character '*' near in ...
- git 学习 3
远程仓库 添加远程库 GitHub 注册账号并建立 repository,Clone with SSH 1 $ ssh-keygen -t rsa -C "youremail@example ...
- flutter 白板工具Twitter IconFacebook Icon
flutter 白板工具 Categories: flutter 平常桌面上都放着一些草稿纸,因为经常要整理思路.画画草图啥的.这不是电子时代嘛,就觉得在手机.pad上也可以这样写写画画,我看了有很多 ...
- 写在APIO2016之前
时间过得真快.仿佛前天的我还在为联赛的MLE悲伤,昨天的我还在为省选看错题而崩溃,今天就到了APIO的前夜了.虽然明天不是正赛,但我的学弟们都是明天离开.也就是说,我只能为在遥远帝都的他们默默地祈祷了 ...
- MyEclipse下Spring+Hibernate整合
目前,SSH(Struts+Spring+Hibernate)是Web开发的一种常用框架组合,Struts实现了MVC,Hibernate实现了关系对象映射,Spring实现了基于Bean的配置管理. ...
- ansible使用指北(二)
前言在上一篇文章里我们了解了ansible的常用模块,今天我们来了解下ansible-playbook,ansbile-playbook是一系统ansible命令的集合,其利用yaml 语言编写,an ...
- scss入门学习(一)
sass的文件后缀名 sass是目前流行的css预处理语言.sass有两种后缀文件,一种是.sass,不允许使用大括号和分号:另一种是.SCSS,允许使用大括号和分号,类似于我们平时写css的语法习惯 ...
- SpringBoot(七)-SpringBoot JPA-Hibernate
步骤 1.在pom.xml添加mysql,spring-data-jpa依赖2.在application.properties文件中配置mysql连接配置文件3.在application.proper ...
- 达拉草201771010105《面向对象程序设计(java)》第二周学习总结
达拉草201771010105<面向对象程序设计(java)>第二周学习总结 一.理论知识学习部分 这一周我们学习的是书上第三章java的基本程序设计结构的内容,在这一章 ...