• 14
  • 17
分享

  1.ant简介

  1.1 什么是ant?

  JMeter: 编写测试脚本生成jmx脚本,运行接口测试。JMeter相当于篮球场,jmx脚本相当于篮球运行场。

  ant: 构建工具,通过调用JMeter来批量运行测试脚本,并生成测试报告。Ant是一个功能强大的打包编译工具。我们使用他的目的是将JTL(xml)格式文件转化为html格式的文件,相当于篮球教练的角色。

  1.2 什么是构建

  概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅于此,但是主要用来干这个。

  2. 构建ant环境

  1)去Apache官网上下载ant最新版,我下载的是apache-ant-1.9.15。

  2)下完之后解压,放到一个目录下面。我把它和jmeter都放在了D:\mysolution下。

  3)配置环境变量,与jmeter类似。   下面这些和你ant存放的路径有关。

  注:网上说需要设置ANT_HOME,CLASSPATH和Path,亲测可以只设置Path其他两项可以不进行设置。

  新建系统变量ANT_HOME,值D:\mysolution\apache-ant-1.9.15

  系统变量CLASSPATH,值后面添加D:\mysolution\apache-ant-1.9.15\lib

  系统变量Path,值后面添加D:\mysolution\apache-ant-1.9.15\bin

  4)进入命令提示符,输入ant,结果如下图所示,"build.xml does not exist "说明ant配置成功。

图片 1.png

  3.JMeter与Ant集成

  3.1 JMeter部分

  1)将D:\mysolution\apache-jmeter-5.3\extras文件夹下的ant-jmeter-1.1.1.jar这个jar包复制到D:\mysolution\apache-ant-1.9.15\lib文件夹下。

  2)用记事本打开jmeter\bin\jmeter.properties,将jmeter.save.saveservice.output_format=csv改成jmeter.save.saveservice.output_format=xml,记得去掉前面的“#”。

图片 2.png

  3)设置输出内容,修改jmeter.properties文件。

  注:可以尝试理解每行配置的含义,然后再进行你想要的个性化配置。

图片 3.png

  4)在JMeter脚本目录创建build.xml文件,请根据实际情况进行配置。

  注:不要去查找build.xml文件,直接创建一个文本文件并把以下内容复制过去。配置时修改注释相当的地方即可。

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="D:\mysolution\apache-jmeter-5.3" />
    <property name="report.title" value="JMeter接口测试报告"/>
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="D:\Jmeter\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\Jmeter\report\html" />
    <!-- 生成的报告的前缀-->  
    <property name="ReportName" value="APITestReport" />
<tstamp> <format property="time" pattern="YYYYMMDD HHmmss" /></tstamp>
    <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" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="D:\Jmeter\script" 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" /></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}"/>
              <param name="titleReport" expression="${report.title}:${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>

  3.2 ant部分

  运行ant,进入到build.xml所在目录,运行ant。注也可以使用ant -buildfile build.xml来运行ant。

图片 4.png

  运行结束后,如若出现SUCCESS信息,则表示运行成功可去对应目录查看结果。部分运行结果信息如下:

BUILD SUCCESSFUL
Total time: 9 seconds

  3.3 查看JMeter结果

图片 5.png

  此报告是\apache-jmeter-5.3\extras这个目录下jmeter-results-detail-report_21.xsl这个样式生成的报告。

  4. 报告优化

  ant默认报告并不好看,出错之后,很难从报告上去定位问题,定位问题在哪里,可进行优化。优化原理:其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用。

  1)下载style文件:jmeter.results.shanhe.me.xsl

  2)把下载的文件放到jmeter的extras目录下。

图片 6.png

  3)修改build.xml文件如下部分,修改xsl样式文件的文件名即可。

图片 7.png

  4)运行结果:

图片 8.png

  5.jenkins持续集成

  Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

  简而言之:Jenkins是实现持续集成平台脚本的定时运行、邮件发送、测试报告展示等。

  5.1 jenkins的安装配置

  jenkins下载地址:https://jenkins.io/zh/download/,下载windows版并安装jenkins,安装成功后会自动打开: http://localhost:8080 页面,等待进入jenkins的配置页面。

图片 9.png

  解锁jenkins完成配置。

图片 10.png

  关于插件的选择,还是老套路,省事用安装推荐的插件,高手自定义。

图片 11.png

  创建管理员用户。

图片 12.png

  实例配置。

图片 13.png

  5.2 jenkins的使用

  5.2.1 新建一个job

图片 14.png

  5.2.2  jenkin 配置中增加Ant插件

图片 15.png

  添加待构建的文件路径,即Ant执行的build.xml文件路径。

图片 16.png

  5.2.3 立即构建

图片 17.png

  5.2.4 构建触发器

图片 18.png

  日程说明:其中有5个参数

图片 19.png

  ·第一个是代表分钟 H 表示随机

  ·第二个是代表小时 9-15/4 9点到下午三点期间的每隔4个小时

  ·第三个是代表天 * 任意一天

  ·第四个是代表月份 1-11 表示1到11月份

  ·第五个是代表星期 1-5 表示工作日

  ·H(9-18) 9点到18点 中随机的一个点,没有用到 H 随机的话,不要加括号

  常见的日程配置表:

  * * * * * 表示任何一个时间段,同一个时间都可能会触发执行。不建议使用。

  H/30 * * * * 表示每天每隔 30分钟构建一次。

  H 4-19/3 * * * 表示,一天的凌晨点到下午7点,每隔3个小时构建一次。

  * * 3-5 * * 表示,每个月的3号,4号,5号 都会被构建,具体时间未知。

  * * * * 1-5 表示,工作日时会构建,具体时间未知。

  H/30 8-19/3 1-28 1-11 1-5 表示 在1月到11月中的1号-28号,每个工作日,早晨的8点到下午7点每隔3.5个小时会触发构建。

  5.3 jenkins其他配置

  5.3.1 丢弃旧的配置

  服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。

图片 20.png

  5.3.2 邮件通知设置

  1)回到最外面的主界面。找到manage jenkins,找到系统设置。

图片 21.png

  2)找到插件安装这里面的邮件插件。

图片 22.png

  3)查看已安装的邮箱插件。

图片 23.png

  4)返回到配置界面,然后点击系统配置,找到下图的地方:填写两个东西:

  第一个url:用默认这个url 尝试一下能访问到jenkins就可以了;第二个参数:邮箱发件箱的账户。

图片 24.png

  5)进入到最下面的邮箱配置,点开高级,然后按照要求填写内容。。请注意密码这个东西:是QQ邮箱的此处授权码,另外用户名不要跟后缀。然后勾选测试,成功后会收到邮件。

图片 25.png

  SMTP基础设置,见下图:

图片 26.png

  Extended E-mail Notification:

  这是使用第三方插件的邮箱功能,方法跟上面这个一样。

  5.4 构建结果说明

  5.4.1 构建状态

  Successful蓝色:构建完成,并且被认为是稳定的。

  Unstable黄色:构建完成,但被认为是不稳定的。

  Failed红色:构建失败。

  Disable灰色:构建已禁用。

  5.4.2 构建稳定性

  构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。

  5.4.3 构建历史界面

  console output: 输出构建的日志信息。


作者:佚名   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   优惠券冒烟测试  后台添加优惠券,前端领取,消费并成功扣除对应金额,如果冒烟测试不通过不进行下面的测试。  优惠券基本信息测试  (1)优惠券名称  (2)优惠券副标题  (3)优惠券类型,是满减,首单减,还是折扣类型  (4)优惠券数量  (5)优惠券使用说明  优惠券使用规则  (1)用户类型:新用户、老用户、不同等级用户、不限用户  (2)优惠券能够使用的商品类型  (3)每人限领张数  (4)优惠券有效期  优惠券类型  使用会员抵扣券跳转到购买会员界面,会员商品支付时抵扣相应金额。  使用方案抵扣券跳转到方案推荐的深度页面,选择方案支付时抵扣相应金额。  查看可用的优惠券,可选择...
            0 0 8129
            分享
          • 动态关联提取cookie业务场景:有时候下一个接口需要用到上一个接口的参数,我们必须按照业务逻辑进行动态关联。一般做接口测试时候,尤其碰到某个接口需要用到上一个接口的数据,那我们就需要用到提取器来提取我们需要的数据,然后为下一个接口所用,其实就是在动态关联的时候需要用到。一定要理清楚接口的业务逻辑搞清楚当前这个接口需要用到哪些接口的哪些数据?搞清楚你需要提取的数据,在哪里,是在body中,还是在响应头中?根据不同的返回格式,需要选择不同的提取器:json提取器边界提取器正则提取器Xpath提取器1.同一线程组里的请求之间进行动态关联多个http请求处于同一个线程组内,可以通过正则表达式提取数据...
            0 0 921
            分享
          • 我是从开发半道转去做测试的,当时刚从事测试这个行业的时候也是意气奋发,对未来充满无限憧憬,但是在这个行业摸爬滚打了十多年后,渐渐发现这个行业不像当初描绘的那么美好,特别是网上看了一篇文章,文中对软件测试前景和发展方向的分析,真是给我们泼了一盆冷水,但比起很多粉饰测试行业多么有前景,鼓吹自动化测试、性能测试多么有前途的文章,我更喜欢这些引人反思的内容,我现在把这篇文章的关键部分转出来(做了一些改动,加些自己的想法)。一、功能测试的现状和未来目前入门的门槛很低,不少人可能都不是计算机专业毕业的,对计算机一窍不通,或者不是大学毕业的,进入测试岗位,通过中介机构的几个月的培训,良莠不齐的基础,进入某些...
            15 15 1476
            分享
          • 7 月 22 日晚,Dify 主创团队和用户们临时性地组织了一场高质量的线上交流活动。交流会主要围绕 Dify 的产品规划、用户对于 LLM 的探索和理解、用户使用 Dify 过程中遇到的问题和困惑等方面展开讨论。相信对所有基于 LLM 或 Dify 创造应用的小伙伴们都能提供很好的思路和借鉴。错过的小伙伴看这里,我们整理总结了相关的问题和讨论要点,供大家阅读参考(Question 部分为不同用户提出的问题,Answer 部分为 Dify 团队的理解和答疑)。关于 Dify 产品规划Dify 产品上线以来受到很多开发者朋友的关注和喜爱,在平台上已经创建了 3 万多个应用(仅云端版),我们希望能...
            0 0 2225
            分享
          • 浏览器兼容性测试这是兼容性测试的子类型(如下所述),由测试团队执行。浏览器兼容性测试 针对 Web 应用程序执行,并确保软件可以在不同浏览器和操作系统的组合下运行。这种类型的测试还验证 Web 应用程序是否在所有浏览器的所有版本上运行。向后兼容性测试这是一种测试,用于验证新开发的软件或更新的软件是否适用于旧版本的环境。向后兼容性测试检查新版本的软件是否与旧版本软件创建的文件格式正常工作。它还适用于由该软件的旧版本创建的数据表、数据文件和数据结构。如果更新了任何软件,那么它应该可以在该软件的先前版本之上运行良好。黑盒测试此类测试不考虑内部系统设计。测试基于需求和功能。可以在此处找到有关...
            0 0 1602
            分享
      • 51testing软件测试圈微信