搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)

上一篇 / 下一篇  2016-03-22 13:44:35 / 个人分类:jemter

一、环境准备:

1、JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、Jmeterhttp://jmeter.apache.org/download_jmeter.cgi

3、Ant:http://ant.apache.org/bindownload.cgi

4、Jenkins:http://jenkins-ci.org/

具体可参见我另一篇博客:http://www.cnblogs.com/puresoul/p/4808416.html

  

二、Jemter脚本准备:

1、脚本目录:D:\B_TOOLS\apache-jmeter-2.13\demo

2、脚本内容:都是简单的访问百度或google首页

baidu.jmx                      google.jmx

 

 

三、ANT的build.xml代码准备:

build3.xml 

复制代码
1<?xml version="1.0" encoding="UTF-8"?>23<projectname="ant-jmeter-test"default="run"basedir=".">4<tstamp>5<formatproperty="time"pattern="yyyyMMddhhmm"/>6</tstamp>78<propertyenvironment="env"/>9<propertyname="ReportName"value="TestReport"/>10<!--需要改成自己本地的 Jmeter 目录-->11<propertyname="jmeter.home"value="D:\B_TOOLS\apache-jmeter-2.13"/>12<!--jmeter生成jtl、html格式的结果报告的路径-->13<propertyname="jmeter.result.dir"value="${env.WORKSPACE}/results/${env.BUILD_ID}"/>14<!--生成的报告的前缀-->15<propertyname="jmeter.result.jtlName"value="${jmeter.result.dir}/${ReportName}.jtl"/>16<propertyname="jmeter.result.htmlName"value="${jmeter.result.dir}/${ReportName}.html"/>1718<targetname="run">19<echomessage="start..."/>20<antcalltarget="clean"/>21<antcalltarget="test"/>22<antcalltarget="report"/>23</target>2425<targetname="clean">26<mkdirdir="${env.WORKSPACE}/results/${env.BUILD_ID}"/>27</target>2829<targetname="test">30<taskdefname="jmeter"classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>31<jmeterjmeterhome="${jmeter.home}"resultlog="${jmeter.result.jtlName}">32<!--声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->33<testplansdir="D:\B_TOOLS\apache-jmeter-2.13\demo"includes="*.jmx"/>3435<propertyname="jmeter.save.saveservice.output_format"value="xml"/>36</jmeter>37</target>3839<targetname="report">40<xsltin="${jmeter.result.jtlName}"41out="${jmeter.result.htmlName}"42style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>43<!--因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝-->44<copytodir="${jmeter.result.dir}">45<filesetdir="${jmeter.home}/extras">46<includename="collapse.png"/>47<includename="expand.png"/>48</fileset>49</copy>50</target>51</project>
复制代码

  

四、配置Jenkins Job并运行:

1、job配置如下:

2、job运行结果: 

复制代码
1Started by user anonymous2Building in workspace D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace3[demo] $ cmd.exe /C '"ant.bat -file build3.xml run && exit %%ERRORLEVEL%%"'4Buildfile: build3.xml56run:7[echo] start...89clean:10[mkdir] Created dir: D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\151112test:13[jmeter] Executing test plan: D:\B_TOOLS\apache-jmeter-2.13\demo\baidu.jmx ==> D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15\TestReport.jtl14[jmeter] Creating summariser <summary>15[jmeter] Created the tree successfully using D:\B_TOOLS\apache-jmeter-2.13\demo\baidu.jmx16[jmeter] Starting the test @ Tue Sep 22 15:50:33 CST 2015 (1442908233010)17[jmeter] Waitingforpossible shutdown message on port 444518[jmeter] summary +      1 in     1s =    2.0/s Avg:   254 Min:   254 Max:   254 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 019[jmeter] summary +      5 in     1s =    7.3/s Avg:   131 Min:    96 Max:   196 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 120[jmeter] summary =      6 in   1.2s =    5.0/s Avg:   151 Min:    96 Max:   254 Err:     0 (0.00%)21[jmeter] Tidying up ...    @ Tue Sep 22 15:50:34 CST 2015 (1442908234310)22[jmeter] ... end of run23[jmeter] Executing test plan: D:\B_TOOLS\apache-jmeter-2.13\demo\google.jmx ==> D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15\TestReport.jtl24[jmeter] Creating summariser <summary>25[jmeter] Created the tree successfully using D:\B_TOOLS\apache-jmeter-2.13\demo\google.jmx26[jmeter] Starting the test @ Tue Sep 22 15:50:35 CST 2015 (1442908235240)27[jmeter] Waitingforpossible shutdown message on port 444528[jmeter] summary +      1 in     1s =    1.9/s Avg:   253 Min:   253 Max:   253 Err:     1 (100.00%) Active: 1 Started: 1 Finished: 029[jmeter] summary +      5 in   1.1s =    4.4/s Avg:   209 Min:    97 Max:   420 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 130[jmeter] summary =      6 in     2s =    3.6/s Avg:   216 Min:    97 Max:   420 Err:     1 (16.67%)31[jmeter] Tidying up ...    @ Tue Sep 22 15:50:36 CST 2015 (1442908236992)32[jmeter] ... end of run3334report:35[xslt] Processing D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15\TestReport.jtl to D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15\TestReport.html36[xslt] Loading stylesheet D:\B_TOOLS\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl37[copy] Copying 2 files to D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\153839BUILD SUCCESSFUL40Total time: 5seconds41[workspace] $ cmd /c call D:\Users\heman793\AppData\Local\Temp\hudson4765606743104861298.bat4243D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>echo D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace44D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace4546D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>echo 1547154849D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>cd results5051D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results>cd 155253D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15>exit 054Finished: SUCCESS
复制代码

3、在job的workspace目录下会生成结果报告:

4、TestReport.html:

 

五、配置发送邮件功能

 1、网上下载sendmail.jar包,放在job的workspace目录中

 2、jenkins增加构建步骤

  a)进入到测试报告的目录

  b) 调用sendmail.jar命令发送邮件

 说明:

  1、由build3.xml的第12、13行可知,报告文件生成目录为:${env.WORKSPACE}/results/${env.BUILD_ID},所以这里我要先cd到具体执行的那个build_id目录下。

   2、我们也可以把上面的两行命令写在成一个批处理文件,例如我第1步有个sendmail.bat文件就是的,然后调用时直接写sendmail.bat就好了。

 

另外,我本文所有脚本都在我本地,其实更好的办法是使用SVN统一管理,这里就不介绍了,感觉的可以自己研究下。


TAG: 接口

 

评分:0

我来说两句

Open Toolbar