JMETER+ANT+JENKINS接口自动化持续集成
一、在win10环境下安装jdk、jmeter、ant、jenkins
- jdk安装参考:https://www.cnblogs.com/lc-blogs/p/17005044.html
- jmeter安装参考:https://www.cnblogs.com/lc-blogs/p/16996075.html
- ant安装参考:https://www.cnblogs.com/lc-blogs/p/17000821.html
- jenkins安装参考:https://www.cnblogs.com/lc-blogs/p/17005446.html
二、配置ant
-
将 jmeter 所在目录下 extras 子目录里的 ant-JMeter-1.1.1.jar 复制到 Ant 所在目录 lib 子目录之下,这样 Ant 运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发 JMeter 脚本
-
jmeter 默认保存的是.csv 格式的文件,所以我们先要设置一下 bin/jmeter.properties 文件内容,保存jmeter.save.saveservice.output_format=xml
-
创建一个文件夹(此处命名为demo),demo下创建一个report文件夹用来存放测试报告html和jtl文件的目录(创建的目录在生成测试报告需要用到)
D:\acan\demo\report\html
D:\acan\demo\report\jtl -
新建build.xml文件存放在demo的文件夹下,并修改文档里内容
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddHHmm" />
</tstamp>
<!-- 需要改成自己本地的Jmeter目录-->
<property name="jmeter.home" value="D:\apache-jmeter-5.3" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\acan\demo\report\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\acan\demo\report\html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<!-- 输出生成的报告名称和存放路径-->
<echo message="${jmeter.result.jtlName}"/>
<echo message="${jmeter.result.htmlName}"/>
<echo message="${jmeter.result.html.dir}"/>
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 指定ant-jmeter-1.1.1.jar 的位置 -->
<path id="jmeter.classpath">
<fileset dir="${jmeter.home}/extras">
<include name="ant-jmeter-1.1.1.jar"/>
</fileset>
</path>
<!--加载jar包,解决显示时间问题-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本,比如test*.jmx表示以test开头的所有.jmx文件-->
<testplans dir="D:\acan\demo" includes="*.jmx" />
<!-- 声明ant执行jmeter时,传入jmeter的属性值,可以自定义必须是xml格式 -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<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-detail-report_21.xsl">
<!--jmeter-results-detail-report_21.xsl这里的文件名可以换成你想要的报告效果-->
<!--显示dateReport的时间-->
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
5. 标记的地方修改为自己的路径,其余不需要修改
- 验证配置的结果是否成功,把jmeter编写的jmx文件放到demo文件夹下,在demo文件下打开cmd窗口,输入ant,生成结果如下则表示配置成功,BUILD SUCCESSFUL
在D:\acan\demo\report\html的文件夹中生成了html测试报告
三、配置jenkins
- 安装插件 HTML Publisher Plugin、email extension plugin(可选)、performance plugin
搜索插件,安装
2. 全局配置中创建ant 1)进入Manage Jenkins全局设置
2)Ant安装点击新增Ant
3)输入自定义的ant名称,ANT_HOME输入在本机中ant的安装路径,点击保存
3. 新建job 1)创建一个任务
2)输入任务的名称,选择Freestyle project,点击确定
3)勾选构建环境Add timestamps to the Console Output,将时间在控制台输出
构建下的选项Ant Version填写配置ant定义的ant名称,Targets填写build.xml中定义的run
build.xml中定义的target为run,所以上方Targets填写的run
高级中配置build.xml的路径
Build File填写build.xml在本机中存放路径
4)增加构建后的步骤Publish HTML reports,生成测试报告
点击新增按钮
填写本机创建的html报告存放地址
配置完成之后点击保存
5)点击按钮进行构建
在构建历史中查看构建结果
控制台结果中看到BUILD SUCCESSFUL表示生成测试报告成功
6)查看生成的测试报告