测试需求:
想用一套自动化测试的框架实现开发的代码完成后自动运行接口测试脚本并呈现。
测试设计:
Jenkins(持续集成工具)流程一般分为以下几步:
- 获取到被编译的代码(可以通过各种版本控制工具SVN或者Git等等)
- 构建整个项目,可以用到Marven也可以是Ant,甚至直接执行windows脚本来
调用自动化测试脚本(可以是某种语言实现的(比如Python),也可以是依托于某种测试框架(比如RF)的,也可以是某种工具(比如Jmeter)实现的) - 得到测试报告
环境配置
性能测试工具:
Jmeter 3.2 下载地址:http://jmeter.apache.org/download_jmeter.cgi
搭建过程:Jmeter3.0(一) 搭建测试环境
持续集成平台:
Jenkins 2.68 下载地址:http://jenkins-ci.org/
Jenkins 插件 HTML Publisher pluginV1.14
Jenkins 插件 Ant1.7
打包工具:
Ant (随便搜一下,比如:http://www.cnblogs.com/yuzhongwusan/archive/2013/03/26/2982411.html)
注意事项:
1、拷贝tools.jar
部分jdk和公司标装的机器可能没有tools.jar , 从有该 jar 包的目录拷贝一个到对应的jdk 环境变量中,放到 JDK 的 lib 目录下
否则可能会遇到报错:
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.8/lib/tools.jar
2、拷贝 ant-jmeter-1.1.1.jar
为了能够在后续 ant 脚本中使用 jmeter task,必须要将 ant-jmeter-1.1.1.jar 拷贝到执行机 ant 的 classpath 中(即拷贝到 ant 的 lib 目录中),这个 jar 包一般可以在 jmeter 的目录 lib/extras 中找到
否则可能出现报错:
task class org.programmerplanet.ant.taskefs.jmeter.JMeterTask cannot be found
编写Jmeter脚本
可参照 Jmeter3.0(三) 来发个帖
这次我们使用的脚本是 Script_Guest_SearchMeeting.jmx
注意事项:
jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式
jmeter执行结果文件默认有很多执行数据是不保存的,而测试报告需要这些数据
在Jmeter的安装目录下查找\bin\user.properties文件,添加一行
jmeter.save.saveservice.output_format=xml
配置Jenkins Job
- 选择一个Freestyle的项目(可以取名 吴亦凡,我们低调点儿,这次)
- 配置Job
- Source Code Management
可选择获取代码的方式(如果要选Git,前提是要装Git的插件)
-
Build 构建
选择windows命令执行的方式(还有其它的方式,个人感觉这个是比较好用的一种)
此处的build.xml是Ant需要的配置文件(当目录有空格的时候,可以用Progra~1来替代Program Files)以下是 示例:
<project default="all">
<!-- ant-jmeter.jar comes with jmeter, be sure this is the release you have -->
<property name="jmeter-home" value="D:\Jmeter\apache-jmeter-3.2" />
<path id="ant.jmeter.classpath">
<pathelement
location="${jmeter-home}/extras/ant-jmeter-1.1.1.jar" />
</path>
<taskdef
name="jmeter"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"
classpathref="ant.jmeter.classpath" />
<target name="clean">
<delete dir="results"/>
<delete file="jmeter.log"/>
<mkdir dir="results/jtl"/>
<mkdir dir="results/html"/>
</target>
<target name="test" depends="clean">
<jmeter
jmeterhome="${jmeter-home}"
resultlogdir="results/jtl">
<testplans dir="D:\Jmeter" includes="Script_Guest_SearchMeeting.jmx"/>
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!-- This is not needed for the plugin, but it produces a nice html report
which can be saved usin jenkins's archive artifact feature -->
<target name="report" depends="test">
<xslt
basedir="results/jtl"
destdir="results/html"
includes="*.jtl"
style="${jmeter-home}/extras/jmeter-results-report_21.xsl"/>
</target>
<target name="all" depends="test, report"/>
</project>
注意点:
<property name="jmeter-home" value="D:\Jmeter\apache-jmeter-3.2" />
其中jmeter-home的目录是测试环境上安装jmeter的目录。
<testplans dir="D:\Jmeter" includes="Script_Guest_SearchMeeting.jmx"/>
其中testplans是指要运行的测试脚本。
Post-build Actions构建后的报告
选择 Publish HTML reports
Jmeter的报告模板是可以在Ant的build.xml中设置:
<target name="report" depends="test">
<xslt
basedir="results/jtl"
destdir="results/html"
includes="*.jtl"
style="${jmeter-home}/extras/jmeter-results-report_21.xsl"/>
完成后点击到Build Now。
(以下是这个实验的构建历史,说多了都是泪)
Finally,我们就可以看到一个最终的报告啦。