背景:

目前测试组项目多,手头任务紧,且回归测试任务量较大,经过组内讨论采用相对快速高效的方式(自动化接口测试类型),在迭代任务中把主要精力集中在新需求测试;而回归测试时,主要采用自动化测试,提高测试效率。

前期准备:

  1、Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html

    命令行输入:java -version,出现如下提示说明安装成功

  Jenkins + jmeter + ant + git 自动化集成

  2、ANT下载:http://ant.apache.org/bindownload.cgi。配置环境变量

    命令行输入:ant -v,出现如下提示说明安装成功

  Jenkins + jmeter + ant + git 自动化集成

  3、Jmeter下载:http://jmeter.apache.org/download_jmeter.cgi

  4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中

  5、修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml 

 

一、Jenkins下载安装

      ①到官网下载jenkins.war包:http://jenkins-ci.org/。把下载下来的jenkins.war包放到文件夹下,如C:\jenkins,然后打开命令行窗口并进到该目录下,执行java -jar jenkins.war命令;

      ②我个人喜欢下载Tomcat ,然后把Jenkins.war 包放在 apache-tomcat-7.0.78\webapps 目录下,启动Tomcat 即可

      当提示:“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 、git plugin

 

四、配置JOB

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

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

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

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

         ③ 通过git 拉取最新代码

   ④ Invoke Ant:支持Ant构建

Jenkins + jmeter + ant + git 自动化集成

      3. 配置git ,分别在 系统管理-->Global Tool Configuration  和 项目-->配置 里面 ,如果在遇到Jenkins 与 Git 集成出现问题,可查看上篇文章,希望能够帮助到你【点击查看】

Jenkins + jmeter + ant + git 自动化集成

Jenkins + jmeter + ant + git 自动化集成

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

Jenkins + jmeter + ant + git 自动化集成

Jenkins + jmeter + ant + git 自动化集成

此处有坑:

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

 

四、保存,构建job

 

五、build.xml  

5.1 简单的sample 模板

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="reporttime" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="C:\AutoTest\server\apache-jmeter-3.3" />
    <property name="ComputerName" value="dell-PC"/>
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="C:\AutoTest\AutoTestAPI\jmeterReport\rrct" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="C:\AutoTest\AutoTestAPI\jmeterReport\rrct" />
    <!-- 生成的报告的前缀-->
    <property name="ReportName" value="rrct" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${reporttime}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${reporttime}.html" />
    <target name="run">

        <antcall target="test" />
        <antcall target="report" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="C:\Users\Administrator\.jenkins\workspace\rrct" includes="神华*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>

  
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>

    <target name="report">
        <tstamp>
            <format property="report.datestamp" pattern="yyyy-MM-dd HH:mm:ss" />
        </tstamp>
        <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
            <param name="dateReport" expression="${report.datestamp}"/>
        </xslt>
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>
View Code

相关文章: