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

news/2024/11/16 17:44:32/

一、环境准备:
1、JDK:Java Downloads | Oracle

2、Jmeter:Apache JMeter - Download Apache JMeter

3、Ant:Apache Ant - Binary Distributions

4、Jenkins:Jenkins

  

二、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"?>2 3 <project name="ant-jmeter-test" default="run" basedir=".">4     <tstamp>5         <format property="time" pattern="yyyyMMddhhmm" />6     </tstamp>7 8     <property environment="env"/>9     <property name="ReportName" value="TestReport" />
10     <!-- 需要改成自己本地的 Jmeter 目录--> 
11     <property name="jmeter.home" value="D:\B_TOOLS\apache-jmeter-2.13" />
12     <!-- jmeter生成jtl、html格式的结果报告的路径--> 
13     <property name="jmeter.result.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
14     <!-- 生成的报告的前缀-->  
15     <property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
16     <property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />
17     
18     <target name="run">
19         <echo message="start..."/>
20         <antcall target="clean" />
21         <antcall target="test" />
22         <antcall target="report" />
23     </target>
24     
25     <target name="clean">
26         <mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
27     </target>
28         
29     <target name="test">
30         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
31         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
32             <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
33             <testplans dir="D:\B_TOOLS\apache-jmeter-2.13\demo" includes="*.jmx" />
34             
35             <property name="jmeter.save.saveservice.output_format" value="xml"/>
36         </jmeter>
37     </target>
38         
39     <target name="report">
40         <xslt in="${jmeter.result.jtlName}"
41               out="${jmeter.result.htmlName}"
42               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
43         <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
44         <copy todir="${jmeter.result.dir}">
45             <fileset dir="${jmeter.home}/extras">
46                 <include name="collapse.png" />
47                 <include name="expand.png" />
48             </fileset>
49         </copy>
50     </target>
51 </project>

四、配置Jenkins Job并运行:

1、job配置如下:

 2、job运行结果: 

 1 Started by user anonymous2 Building in workspace D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace3 [demo] $ cmd.exe /C '"ant.bat -file build3.xml run && exit %%ERRORLEVEL%%"'4 Buildfile: build3.xml5 6 run:7      [echo] start...8 9 clean:
10     [mkdir] Created dir: D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15
11 
12 test:
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.jtl
14    [jmeter] Creating summariser <summary>
15    [jmeter] Created the tree successfully using D:\B_TOOLS\apache-jmeter-2.13\demo\baidu.jmx
16    [jmeter] Starting the test @ Tue Sep 22 15:50:33 CST 2015 (1442908233010)
17    [jmeter] Waiting for possible shutdown message on port 4445
18    [jmeter] summary +      1 in     1s =    2.0/s Avg:   254 Min:   254 Max:   254 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0
19    [jmeter] summary +      5 in     1s =    7.3/s Avg:   131 Min:    96 Max:   196 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
20    [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 run
23    [jmeter] Executing test plan: D:\B_TOOLS\apache-jmeter-2.13\demo\google.jmx ==> D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15\TestReport.jtl
24    [jmeter] Creating summariser <summary>
25    [jmeter] Created the tree successfully using D:\B_TOOLS\apache-jmeter-2.13\demo\google.jmx
26    [jmeter] Starting the test @ Tue Sep 22 15:50:35 CST 2015 (1442908235240)
27    [jmeter] Waiting for possible shutdown message on port 4445
28    [jmeter] summary +      1 in     1s =    1.9/s Avg:   253 Min:   253 Max:   253 Err:     1 (100.00%) Active: 1 Started: 1 Finished: 0
29    [jmeter] summary +      5 in   1.1s =    4.4/s Avg:   209 Min:    97 Max:   420 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
30    [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 run
33 
34 report:
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.html
36      [xslt] Loading stylesheet D:\B_TOOLS\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl
37      [copy] Copying 2 files to D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15
38 
39 BUILD SUCCESSFUL
40 Total time: 5 seconds
41 [workspace] $ cmd /c call D:\Users\heman793\AppData\Local\Temp\hudson4765606743104861298.bat
42 
43 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>echo D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace 
44 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace
45 
46 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>echo 15 
47 15
48 
49 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace>cd results 
50 
51 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results>cd 15 
52 
53 D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace\results\15>exit 0 
54 Finished: SUCCESS

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

 4、TestReport.html:

更新补充:

  上面生成的报告有如下两个问题,解决办法自行搜索Jmeter自带报告优化:

  1、Date report这里的时间没有正确显示出来

  2、Summary里的字段Min Time和Max Time显示的是NaN,没有显示正确的时间。

五、配置发送邮件功能
 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统一管理,这里就不介绍了,感觉的可以自己研究下。


http://www.ppmy.cn/news/191237.html

相关文章

数字对讲机

数字对讲机功能方块图

宝峰对讲机16频率表_宝峰888S对讲机的16个信道频率是多少?

1、宝峰888S对讲机&#xff0c;16个工作频率范围为&#xff1a;400-470MHZ&#xff0c;16个信道&#xff0c;频率范围内&#xff0c;任意频道任意频率&#xff1b;内 2、一般对讲机没容有固定频点&#xff0c;出厂都是空频机器&#xff0c;每个信道的频率都可以写成机器频率范围…

【对讲机的那点事】如何给4G全网通对讲机写号?

公网集群对讲机现在已经普及&#xff0c;各种公网集群对讲机的平台也渐渐进入大众视野&#xff0c;逐渐让大家认可&#xff0c;但是有些公网对讲机是需要经过写号软件操作&#xff08;类似于对讲机的写频操作&#xff09;&#xff0c;估计大多数人不会操作&#xff0c;今天小编…

苹果x与苹果xs的区别_苹果x跟xs的区别

去年的iPhone XS发布会&#xff0c;很多人都有所耳闻&#xff0c;新版iPhone一上市就遭到来自四方的抨击。iPhone XS首发金色、银色、深空灰三种配色。5.8英寸全面屏&#xff0c;刘海屏设计。iPhone Xs 机身特点&#xff1a;防溅、抗水、防尘&#xff1a;效果在IEC 60529标准下…

苹果x与苹果xs的区别_x和XS的区别到底在哪里,我来告诉你

苹果x与xs这两款手机属于新老经典旗舰的对比&#xff0c;在处理器上A12超过A11是大家有目共睹的&#xff0c;那么除了处理器&#xff0c;x与xs还有哪些区别呢&#xff1f; 在外观方面&#xff0c;xs与x在设计风格上非常的类似&#xff0c;在刘海平&#xff0c;玻璃材质等&#…

科立捷默认频率_科立捷对讲机频率

济南华安达通信器材有限公司为您详细解读HAsPTl科立捷对讲机频率的相关知识与详情,本机操纵查询透过触摸屏幕及按键,即可间接正在本机上搜索记载、拨放灌音、删去、标示记载等等。PC端打点软件智能查询所需要的灌音记载,可以根据来电或去电号码的一部门、分机号码、姓名、通…

30.275MHz 调频无线对讲机原理、制作与调试

一、主要技术指标&#xff1a; 1&#xff0e;频率&#xff1a; 30.275MHz 2&#xff0e;调制方式&#xff1a;调频 3 频偏&#xff1a; 5KHz 5&#xff0e;通信方式&#xff1a;同频单工 6&#xff0e;电源电压&#xff1a;9.6V 10%(镍镉充电电池8节&#xff0c;负极接地…

关于对讲机写频软件的选择

现在对讲机众多&#xff0c;尤其是国产对讲机&#xff0c;小品牌多&#xff0c;又经常停止生产。 对讲话写频时&#xff0c;首先要确定对讲机的频率带宽是否在写入范围之内。 第二是有合适的写入线缆&#xff0c;现在一般都是USB口的&#xff0c;故需要USB驱动程序。而古老的…