我的套路(windows):Jenkins+Jmeter+Ant持续集成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的套路(windows):Jenkins+Jmeter+Ant持续集成相关的知识,希望对你有一定的参考价值。

一、Jenkins下载安装

      到官网下载jenkins.war包:http://jenkins-ci.org/。把下载下来的jenkins.war包放到文件夹下,如C:\\jenkins,然后打开命令行窗口并进到该目录下,执行java -jar jenkins.war命令,当提示:“Jenkins is     fully up and running”时,表示启动成功,这时在浏览器窗口输入:http://localhost:8080/ 就可到jenkins的首页

 

二、修改Jenkins的根目录

  默认地在C:\\user\\.jenkins ,可以通过设置环境变量来修改,将JENKINS_HOME设为D:\\jenkins,然后重新启动jenkins

 

三、安装Jenkins插件

      系统管理-->管理插件-->可选插件:html Publisher plugin、Performance plugin

 

四、配置JOB

      1. 在Jenkins首页点击【新建】任务的,选择【构建一个自由风格的软件项目】,输入名字后点击【OK】

      2. 增加构建步骤的说明:

         ① Execute Windows batch commnd:这个就是windows命令行参数(默认当前路径是job的workspace,如果命令很多可以写成批处理文件放在job的工作目录下,在这引用就好)

     ② Execute shell:运行shell、python,perl,ruby等脚本

     ③ Invoke Ant:支持Ant构建

技术分享

 

      3. 增加构建后操作步骤:可以根据自己的需要选择,常用的是发送邮件,也可以安装jenkins的插件,安装插件后这里会有相应的选项

技术分享

技术分享

 

此处有坑:

HTML Publisher Plugin 插件在新的Jenkins版本中会导致打开的网页中无法加载CSS以及无法点击按钮的情况,由于CSP导致,可在Jenkins的系统管理—>脚步命令行中执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") 以解决此问题。其他由于CSP原因导致的html插件也可用此方法解决

 

 

四、保存,构建job

 

五、build.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     
 9      <property environment="env"/>
10      <property name="ReportName" value="TestReport" />
11  
12     <!-- 需要改成自己本地的 Jmeter 目录-->  
13     <property name="jmeter.home" value="D:\\Jmeter-3.0" />
14     <!-- jmeter生成jtl格式的结果报告的路径--> 
15     <property name="jmeter.result.jtl.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
16     <!-- jmeter生成html格式的结果报告的路径-->
17     <property name="jmeter.result.html.dir" value="D:\\Jmeter-3.0\\demo\\report\\html" />
18     <!-- 生成的报告的前缀-->  
19     <property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
20     <property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />
21     
22     <target name="run">
23          <echo message="start..."/>
24          <antcall target="clean" />
25          <antcall target="test" />
26         <antcall target="report" />
27     </target>
28     
29     <target name="clean">
30          <mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
31     </target>
32 
33     
34     <target name="test">
35         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
36         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
37             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
38             <testplans dir="D:\\Jmeter-3.0\\demo" includes="*.jmx" />
39 
40               <property name="jmeter.save.saveservice.output_format" value="xml"/>
41 
42         </jmeter>
43     </target>
44     
45     
46     <path id="xslt.classpath">
47             <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
48             <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
49     </path>
50 
51 
52     <target name="report">
53         <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
54       <xslt
55           classpathref="xslt.classpath"
56                         force="true"
57                         in="${jmeter.result.jtlName}"
58                         out="${jmeter.result.htmlName}"
59                         style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
60          <!--param name="showData" expression="${show-data}" /-->
61           <param name="dateReport" expression="${report.datestamp}"/>
62       </xslt>
63          <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
64                 <copy todir="${jmeter.result.html.dir}">
65                     <fileset dir="${jmeter.home}/extras">
66                         <include name="collapse.png" />
67                         <include name="expand.png" />
68                     </fileset>
69                 </copy>
70     </target>
71     
72     
73 </project>

 

 

以上是关于我的套路(windows):Jenkins+Jmeter+Ant持续集成的主要内容,如果未能解决你的问题,请参考以下文章

JME3 引擎和 nullPointerException

Mac上部署JDK/Ant/Jmeter/Jenkins

在哪里保存在 Windows 上运行的 Jenkins 的 GPG 密钥?

计算机2

chromedriver 在前台运行的 windows jenkins slave 上失败

JEE、J2EE、JSE、JME 和 JDK 有啥区别? [复制]