• Jmeter 接口测试知识梳理——持续集成篇


    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习!

    Jmeter + Ant + Jenkins 实现持续集成

    1、Jmeter 安装

      安装教程参看:Jmeter 接口测试知识梳理——环境搭建篇

    2、Ant 安装

      2.1、下载 地址:https://ant.apache.org/bindownload.cgi

    2.2、解压到指定目录下即可

     

    2.3、配置环境变量

    ANT_HOME

    D:SProgramAnt

    Path

    %ANT_HOME%in;

    2.4、添加jar包

    将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,

    这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本 

    2.5、修改配置文件

    jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存

        jmeter.save.saveservice.output_format=xml

     2.6、设置Jmeter工作空间

     目录结构如下

    结合下面build.xml文件,其实script 是存放将要执行的jmeter脚本文件的,即.jmx 文件的

    ResultLog 即是存放测试报告的。

     2.7、修改build.xml 文件

      将如下代码复制到新建build.xml文件保存即可

    <?xml version="1.0" encoding="utf-8"?>
    <project name="JmeterTest" default="all" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddhhmm" />
        </tstamp>
        <!-- 需要改成自己本地的 Jmeter 目录-->
        <property name="jmeter.home" value="D:SProgramjmeter" />
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="D:JmeterSpaceResultLogjtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:JmeterSpaceResultLoghtml" />
        <!-- 生成的报告的前缀 -->
        <property name="ReportName" value="TestReport" />
        <!-- 设置生成的.jtl文件名称,名称包含时间,防止覆盖 -->
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
        <!-- 设置生成的.html文件名称,不包含时间,只保留最新报告,方便邮件获取唯一的报告 -->
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
        <!-- 接收测试报告的邮箱 -->
         <!-- 该功能暂时没有成功应用 -->
        <property name="mail_to" value="Your_mail" />
        <!-- 电脑地址 -->
        <property name="ComputerName" value="Yyj" />
        <target name="all">
            <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="D:JmeterSpaceScript" includes="*.jmx" />
            </jmeter>
        </target>
        <target name="report">
            <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" />
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>
        <!-- 发送邮件 -->
         <!-- 发送邮件功能暂未成功使用 -->
     <target name="sendEmail">    
     <mail from="Your_mail@163.com" tolist="Your_mail@163.com"  mailhost="smtp.163.com"  mailport="25" user="Your_mail@163.com" password="Your_password"  subject="${ReportName}${time}">   
     <message>接口测试报告</message>     
     <attachments>              
     <fileset dir="${JMeter.home}/extras/">
     <include name="${ReportName}${time}.html"/> 
    </fileset>   
     </attachments>        
     </mail> 
     </target> 
    
    </project>

    其实至此,打开命令行,cd 切换到build.xml文件路径下,执行ant命令,即可得到如下图

     

    以及得到如下测试报告

     

     但是此时的测试报告还不完善,需要如下修改

    2.8、修改Jmeter 测试报告模板

    文件位置在 ${jmeter.home}/extras/目录下

     查找 expand.png,以及collapse.png 修改路径如下。这里根据自己实际情况修改。问题在于,如果测试报告不是本地打开,会出现图标不显示。

     

    注意:jmeter-results-detail-report_90Line.xsl 文件,代码行比较多,就不放在这里了,此文件已经放到了QQ群:193056556中 文件Jmeter目录下,有需要的可以进群自取。

     下载后放到指定目录下,即可直接使用无需修改!

     2.9、解决报告显示NaN的问题

      

      解决方案,要下载一个xalan.jar,serializer.jar包,将这两个jar包入ant的lib包中,输入ant查看运行结果,使用浏览器查看,OK,显示了!

       jar包已经放到群里文件中,见上面提示!

    3、Jenkins 安装

       3.1、下载

      下载地址:https://jenkins.io/download/

     

    3.2、安装 

    点击安装,选择安装路径,一路下一步即可。

    安装成功后会自动打开网页
    需要输入管理员密码:密码参见如下图文件

    3.3、新建任务

     

     3.4、配置参数

     

    高级中设置工作空间,这里是测试报告的地址,设置后,发送测试报告时,不需要再写绝对路径了,直接写报告名称即可。

     


    旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数。
      注意:三个设置必须同时设置,否则无效


    3.5、设置定时运行间隔

    这里,设置间隔时间为15分钟运行一次

     

    日程表介绍

       【  * * * * * 】 这五个 “*”  分别的定义为:分 时 天 月 星期

    Minutes within the hour (0–59)

    HOUR       Thehour of the day (0–23)

    DOM         Theday of the month (1–31)

    MONTH   Themonth (1–12)

    DOW         Theday of the week (0–7) where 0 and 7 are Sunday.

    *表示全部

    即 下图表示 每天 23点某时构建一次。

    如果天写了值表示某月的某天构建一次,同理 年和星期也是一样。

     3.6、设置构建

    添加 invoke ant,完成后点击保存

     

     构建设置build file, build 主要是为了生成测试报告。

    3.7、设置邮件发送

       这里使用一个sendmail.jar文件

       注意:该文件已经放入到群文件中,参考上面注意提示信息!

      

       使用WinRAR打开该文件,  修改如下文件


    根据实际需要 修改该配置文件

     

    修改完自己的配置文件后,可以将自己的配置文件放到jar包中,通过RAR打开jar 然后复制粘贴自己的配置文件到 jar 中,然后将sendmail.jar 存放到指定路径。

     设置 邮件发送命令,如图,sendmail.jar放到了lib 下。其实放哪里都行,这里用的时候全路径引用即可!


    命令:
    java -jar D:SProgram oolssendmail.jar -s "XX测试服接口测试报告,请查收。" -t yangyaojun@tenez.cn -b "test接口测试报告,请查看附件。" -a "TestReport.html"

    -a "测试报告路径+测试报告名称"

    对于 要设置 多个收件人时, 收件人邮箱之间用英文逗号隔开即可

    最后保存配置即可。构建任务,即可自动执行测试任务,并发送邮件到指定邮箱!

  • 相关阅读:
    分享我设计的iOS项目目录结构
    swift语言之多线程操作和操作队列(下)———坚持51天吃掉大象(写技术文章)
    swift语言之多线程操作和操作队列(上)———坚持51天吃掉大象
    获取UIColor中的RGB值(本人亲测多个获取RGB值的方法,这个最有效)
    swift语言开发的一个游戏------熊猫跑酷(KongfuPanda)
    ios上传应用后,审核流程完成前(reveiw)修改了程序内容,如何上传替换
    上架app 到app store 的出现: “The IPA is invalid. It does not inlude a Payload directory.”错误处理
    ios 8+ (xcode 6.0 +)应用程序Ad Hoc 发布前多设备测试流程详解
    Swift 实现iOS Animation动画教程
    新浪微博项目---首页技术点三.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现)
  • 原文地址:https://www.cnblogs.com/BlueSkyyj/p/8569106.html
Copyright © 2020-2023  润新知