为了搭建jenkins+jmeter+ant的自动化测试环境,现在我们先讲一讲如何搭建Jmeter+Ant的环境。
一、环境准备:
1、Jdk1.6或以上:http://pan.baidu.com/s/1pKRCfMV 密码:2bvp
命令行输入:java -version,出现如下提示说明安装成功
2、ANT下载:http://pan.baidu.com/s/1pL4RHuN 密码:mlc3
设置ant环境变量
ANT_HOME=E:\apache-ant-***;
Path=%ANT_HOME%\bin;
命令行输入:ant -v,出现如下提示说明安装成功
3、将 JMeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中(这步很重要,不要忘记)
4、修改JMeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
5、任意新建一个脚本存放目录:E:\apache-jmeter-2.13\AutoTest,以及报告存放目录report,将Login_test.jmx(已经调试OK的脚本)拷贝此目录
二、构建脚本配置:
1、在E:\apache-jmeter-2.13\AutoTest目录下,新建一个build.xml文件(ant用来自动构建文件的)(build.xml文件是有许多模板的,下面的模板是我在网上找的模板,大体上都差不多,主要是理解里面的配置信息即可)注意查看我的注释信息。
<?xml version="1.0" encoding="GB2312"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<!-- 需要改成自己本地的 Jmeter 目录,这个很重要-->
<property name="jmeter.home" value="D:\Jmeter\apache-jmeter-3.1" />
<property name="report.title" value="DingDing_autoTest"/>
<!-- jmeter生成jtl格式的结果报告的路径,这个很重要-->
<property name="jmeter.result.jtl.dir" value="D:\Auto_Test\ant_build\report" />
<!-- jmeter生成html格式的结果报告的路径,这个很重要-->
<property name="jmeter.result.html.dir" value="D:\Auto_Test\ant_build\report" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="DINGDING" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<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:\Auto_Test\ant_build" includes="*.jmx" />
<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">
<param name="dateReport" expression="${report.datestamp}"/>
<param name="titleReport" expression="${report.title}:${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>
配置过程中的问题总结:
1.提示build.xml:2字节的UTF-8 序列的字节 2 无效,
解决方案:
1、将build.xml默认配置中的字符编码UTF-8改成GB2312即可解决,如果还是不能解决参照下面解决方式。
2、同样当你把build.txt改为build.xml的时候,里面的内容把乱码改为正常文字内容即可,字符集可以仍然为UTF-8。
3、测试报告中出现的指标为NaN(即无法显示的问题):需要从Jmeter的lib包里把xalan-2.7.2.jar和serializer-2.7.2.jar copy到Ant的lib包里。(这步同样重要,同学们要留意)
四、ant构建运行脚本:
1、cmd进入脚本目录:E:\apache-jmeter-2.13\AutoTest。(即build.xml所在的目录)
2、输入:ant 或 ant run(run为build.xml中的task名),执行结果:
3、测试报告目录:E:\apache-jmeter-2.13\AutoTest\report
其实这个报告和Jmeter的聚合报告有些类似,可以通过报告清楚的查看执行的脚本中,失败了多少个,响应时间等。但是无法看一些响应的信息以及请求头,下一篇我将给同学们说说如何通过安装第三方插件改变报告的显示方式,以利于我们更加方便的查看报告。