Jenkins ant jmeter搭建及问题解决

一直想搞接口自动化,却有点无处下手,看到很多人提及到Jenkins,网上搜了一下,发现不够全面,零零碎碎。那就写下来为了以后参照。

一、工具版本:

JDK:jdk1.7.0_79

Ant:apache-ant-1.9.7

Jmeter: apache-jmeter-2.13

Jenkins: jenkins-1.651.1

以上安装包以及相关工具,jmeter常用插件下载地址:

http://pan.baidu.com/s/1pKWPi5d

安装前,请先确认各工具支持的jdk版本,否则会造成影响。

二、jmeter安装

解压apache-jmeter-2.13.zip到D:\Progrom Files目录下。

Jmeter插件的安装。解压JMeterPlugins-Extras-1.3.0.zip、JMeterPlugins-Standard-1.3.0.zip,将对应ext目录下的文件拷贝到D:\ProgromFiles\apache-jmeter-2.13\lib\ext目录下;

配置jmeter环境变量:

1) 设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入:D:\Progrom Files\apache-jmeter-2.13,点击确定即可。

2) 在环境变量CLASSPATH中添加

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

在环境变量Path中添加%JMETER_HOME%\bin
3) 检验是否配置成功 运行cmd 输入 jmeter -v (jmeter和 -v 之间有空格)

若如图所示显示版本信息 则说明安装和配置成功。

三、ant安装

解压apache-ant-1.9.7-bin.zip到D:\Progrom Files目录下;

配置Ant环境变量

新建以下环境变量:

ANT_HOME:D:\ProgromFiles\apache-ant-1.9.7,此为你的ANT安装路径;

设置完成后,点击"确认"来保存。

在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。

进入cmd命令窗口,在CMD窗口中输入ant -version,敲击回城键,会显示出你安装的ANT版本,如果成功显示,说明你的配置应该是成功了.

本地调试使用ant构建运行Jmeter,并且生成jtl、Html报告;

jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件jmeter.save.saveservice.output_format=xml;

将apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.7\lib目录下;

在\apache-jmeter-2.13\extras目录下打开CMD,运行"ant.bat -file build.xml-Dtest=Test" . 查看\apache-jmeter-2.13\extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功。注意:Test.jmx是默认存在的Sample脚本文件。

若构建失败,请分析cmd打印的日志消息,定位问题;

遇到的问题:以为apache-jmeter-2.13\extras\build.xml为需要构建的build.xml,其实与需要构建的build.xml没有关系。需要构建的build.xml存放路径没有要求,Jenkins配置invoke ant时会填入该路径。

build.xml文件内容:

<?xml version="1.0"encoding="UTF-8"?>

 

<projectname="ant-jmeter-test" default="run"basedir=".">

   <tstamp>

        <format property="time"pattern="yyyyMMddhhmm" />

   </tstamp>

   <!-- 需要改成自己本地的jmeter目录--> 

   <property name="jmeter.home"value="C:\auto\apache-jmeter-2.13" />

   <!-- jmeter生成的jtl格式的结果报告的路径-->

   <property name="jmeter.result.jtl.dir"value="C:\auto\jmeterTest\resultLog\jtl" />

   <!-- jmeter生成的html格式的结果报告的路径-->

   <property name="jmeter.result.html.dir"value="C:\auto\jmeterTest\resultLog\html" />

   <!-- ʺ生成的报告的前缀--> 

   <property name="ReportName" value="TestReport"/>

   <property name="jmeter.result.jtlName"value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />

   <property name="jmeter.result.htmlName"value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

 

   <target name="run">

        <antcall target="test"/>

        <antcall target="report"/>

   </target>

 

   <target name="test">

        <taskdef name="jmeter"classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />

        <jmeterjmeterhome="${jmeter.home}"resultlog="${jmeter.result.jtlName}">

             <!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->

            <testplansdir="C:\auto\jmeterTest\script" includes="*.jmx" />

 

           <propertyname="jmeter.save.saveservice.output_format"value="xml"/>

 

        </jmeter>

   </target>

   <path id="xslt.classpath">

            <filesetdir="${jmeter.home}/lib" includes="xalan*.jar"/>

            <filesetdir="${jmeter.home}/lib" includes="serializer*.jar"/>

   </path>

 

   <target name="report">

        <tstamp>

                <formatproperty="report.datestamp" pattern="yyyy/MM/dd HH:mm"/>

        </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>

        <!-- 拷贝报告所需的图片资源至目标目录 -->

        <copytodir="${jmeter.result.html.dir}">

            <filesetdir="${jmeter.home}/extras">

                <includename="collapse.png" />

                <includename="expand.png" />

            </fileset>

        </copy>

   </target>

</project>

四、安装Jenkins

1. 双击执行安装,jenkins服务默认端口为8080,如与其他服务冲突,可在..\Jenkins\jenkins.xml中修改默认端口,如我这里修改为--httpPort=7033;

2. 安装performance plugin系统设置->管理插件->可选插件,搜索Performance plugin(Jmeter报告需要),安装此插件


3.Jenkins设置Ant的环境变量:系统设置->Global ToolConfiguration,找到ant,新增Ant,输入Ant的Name,安装路径;

 

Jenkins设置邮件:

系统管理->系统管理->E-mail Notification



邮件通知下的用户名要与Jenkins Location下的“系统管理员邮件地址”配置相同,否则test configuration时报错

 

五、Jenkins上配置测试项目

      1. 新建测试项目(接口测试) :

        在Jenkins首页左边 点击新建 -> 选择"构建一个自由风格的软件项目",输入Item名称(中英文不限,建议使用英文) –> 点击OK,进入你新建的测试项目的配置页面;

      2. 项目配置步骤1:

        a、描述:用于编写该项目的介绍(请忽略);

        b、丢弃旧的构建:这里勾选上,为了避免多余的构建日志、临时文件占磁盘空间,需要定期的清除过期文件。例如这里选择保存3天之内的构建文件,最大保存N个构建项目的文件;

        具体设置如下图所示:

      3. 项目配置步骤2:

        1. 配置工作空间:

          点击高级项目选项右侧的高级 -> 勾选使用自定义的工作空间;

      4. 项目配置步骤3:
        1. 源码管理,这里不涉及,选择none;
        2. 构建触发器:选择此项目构建的触发条件,例如本项目的是为了实现接口的定时监控,于是选择Build periodically(定期构建)。

          注意:关于定期构建参数的说明:"* * * * *",总共有5个参数,分别代表分(0~59)、时(0~23)、天(1~31)、月(1~12)、周(0~7,0和7表示星期天);

        3. 构建 -> 增加构建操作 -> Execute Windows batch command ;

          此处编写删除jtl文件的命令(因为Jmeter运行jmx脚本文件,生成jtl报告文件。如果存在同名的jtl文件,并不会覆盖,而是追加,所以每次构建运行jmeter脚本文件之前需要删除jtl文件):

        4. del "C:\auto\jmeterTest\resultLog\jtl"\***.jtl

         

      5. 项目配置步骤4:

        Invoke Ant配置

        1. Ant Version 选择之前在jenkins设置的ant;
        2. Properties 填写test=***,此处***为你的jmeter 文件名字(不带.jmx)。

          说明:此处test=***的原因,可以查看工作目录extrasC:\auto\jmeterTest就下的buildtest.xml文件中有这样的一段代码:<property name="test" value="Test"/>,test变量的默认值是Test,我们Properties就是为了给buildtest.xml文件的变量重新赋值的。建议自行了解buildtest.xml文件的结构;

      6. 项目配置步骤5:
        1. 新增构建后操作Archive the artifacts,add a New report(JMeter),

          填写用于存档的文件"**/*.html",这里*也可用你的jmx文件名代替;

          填写Report files: **/*.jtl,这里*可以为你的具体jmx文件名; 


        1. 新增构建后操作E-mail Notification(构建情况推送给指定email)

 

问题:点击job的"立即构建"却构建失败


原因:jmx文件有问题,在构建前,需要在非GUI模式下执行下jmx文件,看是否正常执行脚本。

参考:https://blog.csdn.net/qi_lin7/article/details/52045713



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值