Jenkins(二)Jenkins+Jmeter+Ant自动化集成环境搭建

测试需求:
想用一套自动化测试的框架实现开发的代码完成后自动运行接口测试脚本并呈现。

测试设计:

Jenkins(持续集成工具)流程一般分为以下几步:

  1. 获取到被编译的代码(可以通过各种版本控制工具SVN或者Git等等)
  2. 构建整个项目,可以用到Marven也可以是Ant,甚至直接执行windows脚本来
    调用自动化测试脚本(可以是某种语言实现的(比如Python),也可以是依托于某种测试框架(比如RF)的,也可以是某种工具(比如Jmeter)实现的)
  3. 得到测试报告

环境配置
性能测试工具:
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


ANT出错.png

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

  1. 选择一个Freestyle的项目(可以取名 吴亦凡,我们低调点儿,这次)
  2. 配置Job
  • Source Code Management
    可选择获取代码的方式(如果要选Git,前提是要装Git的插件)
General.png
  • Build 构建
    选择windows命令执行的方式(还有其它的方式,个人感觉这个是比较好用的一种)


    Build.png

此处的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

Post-build Actions.png

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。

(以下是这个实验的构建历史,说多了都是泪)

自古红蓝出CP.png

Finally,我们就可以看到一个最终的报告啦。

default Html.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容