• 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、引言小屌丝: 鱼哥,你说爬虫或者登录网页,最烦的是那个操作?小鱼:图片验证码了。小屌丝:确实是的,那有没有什么办法,能破解这种繁琐的验证呢?小鱼:方法嘛,有啊,例如:cookie啊,或者利用第三方库啊小屌丝:真的有第三方库,可以解决这个问题?小鱼:对啊,很方便的,小屌丝:演示一下如何?小鱼:怎么突然点饿了 ~小屌丝:我懂我懂, 你分享完,咱们泡澡去~2、 ddddocr2.1 介绍验证码,复杂一点的有滑块验证码,点选文章和点选图片验证码。这些都是爬虫和WebUI自动化测试中中的老大难问题,今天介绍一款通用验证码识别 SDK 对他们彻底说拜拜,它的名字是 ddddocr 带带弟弟 OCR 通...
            0 0 1695
            分享
          • 做为功能测试人员来讲,从发展方向上可分两个方面:1、业务流程方向2、专业技能方向。 当确定好方向后,接下来就是如何达到了一、业务流程方向1、熟悉底层的业务作为功能测试工程师来讲,了解开发的框架、开发的业务设计流程以及数据库的底层结构,不管是对于我们熟悉业务还是在测试过程中遇到问题进行问题定位,都能给我们带来很大的帮助。所以在这个方面建议大家尽量去参加开的设计评审、数据库评审,另外在参加开发设计评审和数据库评审时还能提前发现问题。举个很简单的例子,之前我在工作中就真实的遇到过的,开发在设计数据库时,将一个URL字段设计成了64长度的字符串,这肯定是不合理的,为URL的长度很容易就超过64。当我们...
            0 0 1203
            分享
          •   线上流量  什么是录制线上流量回放  为什么需要录制线上流量回放  项目大迭代更新,容易漏测,或者有很多没用评估到的地方。  如果用线上流量做一次回归测试,可以进一步减少 bug 的风险。  大大节省构造测试数据,或者构造测试数据脚本的时间,提高效率。  线上流量回放的限制是什么  · 只回放 GET 请求  因为其他请求的回放,会对用户数据进行操作,有风险,需要排除。  除非构建多套备份数据库,但成本太高,不是很有必要。  · 需要对比回放前后的流量  不然回放就没有意义了,你都不知道回放前后对比的差异是什么。  · 需要去噪音  对比完了,对于一些类似时间戳的值,其实就是噪音,这些不一...
            11 11 909
            分享
          • 1 什么是接口测试?接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。1.1 什么是接口?接口是一种用来定义程序的协议,是一组规则的集合。它规定了实现本接口的类,或接口必须拥有的一组规则。1.1.1 为什么需要接口?接口的意义在于抽象,从而使同类事物在同一高度具有通用及可替代性。在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而...
            0 0 1261
            分享
          • 前言仅仅是针对CSDN账号密码登录这一小块的自动化测试;测试用例考虑的不是非常周全,仅图一乐因为用例比较少,所以没有用自己封装的seleniumAPI,这样看着比较方便一些python程序目录HTMLTestRunner需要下载,不能用pip安装。账号密码登录模块CSDN登录-账号密码登录的功能#!/usr/bin/python3 # _*_coding=utf-8 _*_ # @author junwei # @date 2021/2/28 21:21 # description 测试CSDN的账号密码...
            0 0 1839
            分享
      • 51testing软件测试圈微信