一、环境准备
jdk,jmeter,jenkins,ant
Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
Jenkins下载地址:https://www.jenkins.io/download
ant下载地址:http://ant.apache.org/bindownload.cgi
JDK下载地址:htps://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
jmeter的环境变量配置
1.新增系统变量JMETER_HOME,值为安装路径
2.新增系统变量JAVA_HOME,值为安装路径
3.新增系统变量ANT_HOME,值为安装路径
4.编辑系统变量CLASSPATH,值中新增%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib
5.编辑PATH,值中新增%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANT_HOME%\bin
二、jmeter+ant集成
1.下载安装ant并配置其系统变量
在命令行窗口输入ant -v检查是否安装成功
2.文件配置
2.1、配置库文件
将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中
2.2、配置ant的编译文件build.xml(新建build.xml文件)
任意新建一个脚本存放目录:E:\jmeter\AutoTest,以及报告存放目录report
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\apache-jmeter-5.4" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\jenkins\workspace\report\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\jenkins\workspace\report\html" />
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<!-- 接收测试报告的邮箱 -->
<property name="mail_to" value="[email protected]" />
<!-- 电脑地址 -->
<property name="ComputerName" value="jkqsh-l0285" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="D:\jenkins\workspace\接口测试" includes="*.jmx" />
</jmeter>
</target>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${
jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
</project>
2.3、配置jmeter.propertise文档
进入jmeter安装目录下/bin目录,打开jmeter.propertise文档并编辑,修改jmeter报告输出格式为xml
修改jmeter.save.saveservice.output_format=xml
3、完成配置,执行构建测试
将之前的jmeter的脚本保存,并将build.xml配置文件放在与测试脚本相同的目录下
cmd进入脚本目录:E:\apache-jmeter-2.13\AutoTest。(即build.xml所在的目录)
输入ant
在第一次构建时构建失败并报错
此报错解决:原因是因为ant的两个jar包未在指定的路径进行path配置,需在build.xml中添加如下代码
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
3.1、优化测试报告
下载模板:http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl
3.1.1 拷贝到jmeter的extras目录中
3.1.2 设置测试输出报告要输出的内容:在jmeter的bin目录下jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#
3.1.3 设置build文件的报告模板为优化后的模板jmeter-results-shanhe-me.xsl
3.1.4 再次用ant构建测试,查看优化后的测试报告
三、jmeter+ant+Jenkins持续集成
1.官网下载地址:https://www.jenkins.io/download/
一键安装后访问本地地址:http://localhost:8080/
增加一个用户,并在用户页点击设置,修改密码后才能生效
安装插件HTML Publisher、Ant In Workspace、Email Extension Template
2.新建视图,点击确定后保存
3.在视图中新建任务
输入任务名称并选择自由风格的软件项目,点击ok
4.配置构建
5.配置报告
这个插件不会帮你产生任何的html文件,只是把你workspace下对应项目产生的文件复制到对应的jobs目录下
HTML directory to archive :采用的是相对路径,这个对应的是当前jenkins的对应jobs目录下
Index pages:集成在jenkins中测试报告的名称
Report title:显示在Jenkins下的名称
要想直接在Jenkins中查看报告,则需要每次生成一个固定的报告名称,新的覆盖旧的,即不要在html报告中加时间戳,在build.xml中将时间戳去掉
生成测试报告
6.开始构建
ant构建项目,默认执行的是Jenkins中workspace下的脚本,如果workspace下没有脚本则构建会报错
6.1通过Jenkins-系统管理-系统设置-主目录查看Jenkins目录
6.2修改workspace路径
6.2.1.找到Jenkins安装根目录,寻找config.xml文件
6.2.2在config.xml文件内,查找 workspaceDir 关键字,将你的自定义 工作空间根目录 地址替换默认的地址
6.2.3重启使配置文件生效
使用msi安装的Jenkins,需运行 Jenkins的命令来重新读取配置,在系统管理中点击读取设置重启Jenkins
6.3、构建时报’ant.bat’ 不是内部或外部命令,也不是可运行的程序
6.3.1进入系统管理-全局工具配置
6.3.2进入任务配置重新配置Invoke Ant
6.4在项目主页点击立即构建
6.5打开测试报告存放路径查看生成的报告
四、每次构建后发送报告至邮箱
1.进入系统管理-系统设置,配置Extended E-mail Notification–“高级”
通过发送测试邮件测试配置
2.进入项目配置-增加构建后操作
在邮件内容Default Content中附上邮件模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<h3>以下是Jenkins自动发送的邮件,请勿回复!</h3>
<div>
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<th><br />
<h2>构建信息</h2>
</th>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li><br />
<li>构建日志 :<a href="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a></li><br />
<li>触发原因: ${CAUSE}</li><br />
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li><br />
</ul>
</td>
</tr>
</table>
</div>
<div>
<table>
<tr>
<th><br />
<h2>测试报告</h2>
</th>
</tr>
<tr>
<td>
<li>测试报告: <a href="${PROJECT_URL}/HTML_20Report">${PROJECT_URL}/HTML_20Report</a></li>
</td>
</tr>
</table>
</div>
</body>
</html>