• 13
  • 15
分享
  • 不需要写代码的自动化测试框架——软件测试圈
  • 恬恬圈 2021-05-14 14:37:56 字数 6302 阅读 2716 收藏 15

这次讲到的自动化测试框架,主要会用到以下3款工具:Jenkins、Jmeter、Ant,首先说下这几款工具各自起什么作用

Jenkins:可对项目设置构建策略,如触发构建、定时构建等,项目构建完成后,可进行构建报告的查看、邮件发送等一系列操作,就是我们常说的持续集成,也叫CI

Jmeter:主要用来编写接口自动化用例

Ant:批量跑指定目录下的Jmeter脚本

了解了这几款工具的作用后,我们开始从头来搭建这套自动化框架,在搭建之前,我们的电脑必须先安装java,因为Jmeter这款工具,是有在java环境下才能运行,Java的安装,我这里就不再赘述了,网上资料也非常的多,笔者安装的是java version "1.8.0_151"版本的

一、Jmeter安装以及环境变量配置

1、下载地址:https://jmeter.apache.org/download_jmeter.cgi,按照下图中操作即可

1.jpg

2、Jmeter安装:安装过程非常简单,将步骤1中下载的压缩包直接解压到指定的目录即可

3、环境变量配置:安装完后,我们需要把Jmeter配置到环变量中,我的jmeter是安装在"D"盘的,那么需要将jmeter的bin目录追加到path中,这样在DOS命令中输入jmeter,就可以直接打开Jmeter,如下所示

2.jpg

这样,Jmeter就安装好了,接下来我们继续讲解Ant的安装

二、Ant安装以及环境变量配置

Ant的安装和Jmeter安装基本类似

1、下载地址:http://ant.apache.org/,按照下图中操作即可

3.jpg

2、Ant安装:将步骤1中下载的压缩包直接解压到指定的目录即可

3、环境变量配置:这里和Jmeter稍许不同,首先我们要新建一个ANT_HOME,然后再将bin目录追加到path中,以我的安装地址为例,我本机ant是安装在"D"盘的,那么在环境变量中先配置ANT-HOME,如下所示

4.png

完成后,同样将ant追加到 path变量中

5.png

4、检查Ant是否安装成功:进入DOS命令,在命令行中输入ant,如果提示:Buildfile: build.xml does not exist!,则说明安装成功

6.png

以下是重点操作步骤,敲重点、敲重点、敲重点

1、复制Jmeter安装路径中extras目录下的"ant-jmeter-1.1.1.jar"包到ant安装路径下的lib目录下,如图所示

7.jpg

如果不复制这个包到ant下,那么就无法成功触发Jmeter脚本,会报下面的错

8.jpg

2、修改Jmeter默认的文件保存格式:进入Jmeter的安装路径,找到bin目录下的"jmeter.properties"文件,打开该文件,搜索这行代码(jmeter.save.saveservice.output_format=csv)并修改为(jmeter.save.saveservice.output_format=XML),并去掉前面的"#"符号,如下图所示

9.png

3、在Jmeter的安装路径下创建以下3个目录build、report_project以及script_project,分别用来存放构建文件、测试报告和自动化测试脚本,目录的层级与bin保持一致,如下所示

10.jpg

在build目录下继续创建一个build.xml文件,该文件的内容可以复制以下代码并修改代码中对应本机的相对路径

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
      <tstamp>
           <format property="time" pattern="_yyyy_MMdd_HHmmss" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="D:\apache-jmeter-5.1.1" />
    <property name="report.title" value="接口测试"/>
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-5.1.1\report_project" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\apache-jmeter-5.1.1\report_project" />
    <property name="detail" value="_detail" />
    <!-- 生成的报告的前缀-->  
    <property name="ReportName" value="SmokeReport" />
    <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" />
 
    <property name="detail" value="_detail" />
    <property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.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:\apache-jmeter-5.1.1\script_project" 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}"/>
       </xslt>
       <xslt 
              classpathref="xslt.classpath"
              force="true"
              in="${jmeter.result.jtlNamedetail}"
              out="${jmeter.result.htmlNamedetail}"
              style="${jmeter.home}/extras/jmeter-results-shanhe-me.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>

build.xml文件创建好了,主要注意修改xml文件中的以下参数值

  1. 本地Jmeter的目录,绝对路径;

  2. jtl格式的结果报告路径;

  3. html格式的结果报告路径;

  4. 要运行的jmx文件路径;

  5. 使用的报告样式文件,这个我们后面会详解,这里先设置好。

如下图所示

11.jpg

OK,文章写到这里,我们这款接口自动化测试框架就已经完成80%了,已经可以实现ant批量执行Jmeter脚本以及测试报告的生成,现在我们可以运行ant命令来看下执行的效果

1、首先打开jmeter,随意编写几个脚本,脚本名称可以命名为test,将脚本存放在之前新建的script_project目录下

12.png

2、进入DOS,切换到Jmeter下的build目录,运行Ant命令:ant -f build_smoke_report.xml,最后显示BUILD SUCCESSFUL则表明脚本执行成功,如下所示

13.jpg

3、进入Jmeter下的report_project目录,此时就可以看见执行的报告结果,包含jtl和html两种格式

14.jpg

这时候,我们已经可以成功执行Jmeter脚本并能生成两种类型的测试报告,现在还差最后一步,就是怎么和Jenkins进行结合来执行我们的策略构建了

三、Jenkins的安装以及项目构建配置

1、Jenkins下载:https://www.jenkins.io/(这个地方要注意一下:最好下载最新版的Jenkins,因为笔者在这个地方踩了一个坑,之前太老的版本,插件更新都有问题,ant都没法配置,很浪费了一点时间)

2、Jenkins安装:将下载好的Jenkins包放在本地的任何一个目录(我是在本地D盘建了一个Jenkins目录),然后进入DOS,切换到Jenkins存包的目录,执行以下命令启动Jenkins:java -jar jenkins.war,当出现Jenkins is fully up and running提示时,说明Jenkins启动成功

3、登录Jenkins:登录http://localhost:8080/,就可以进入到Jenins主界面(第一次安装完Jenkins,会让您设置登录账号和密码,这些操作笔者就不详细赘述了)

4、Jenkins配置

(1)、插件配置:进入Jenkins首页面板,依次点击Manage Jenkins------->Manage Plugins--------->Avaiable,在搜索框中输入Ant Plugins、HTML Publisher plugin,查找出来后分别安装这两个插件,如下图步骤所示

15.jpg

16.jpg

17.png

18.jpg

插件安装完成后,建议重启Jenkins,让安装的插件生效

(2)、全局工具的配置:进入Jenkins首页面板,依次点击Manage Jenkins------->Global Tool Configuration,找到Ant配置的那一行,如下图所示进行配置

19.jpg

(3)、创建自动化项目:重新回到Jenkins首页面板,点击New Item,项目风格选择"自由风格(freestyle project)" ,如下所示

20.jpg

下面继续依次设置构建策略和构建步骤的操作

构建策略的配置如下所示,首先选择"Build periodically",我这边设置的值表示的意思是"周一至周五,每天的10:30进行定时构建",具体怎么设置,大家去看下Jenkins的相关教程,在此就不做讲解了

21.jpg

构建步骤的配置

A、在“build”中,点击"add build step",选择"Invoke Ant"

22.jpg

B、Ant Version选择"Default",然后点击"Advance"进行高级设置

23.jpg

C、高级设置中填写构建文件地址

24.jpg

好了,到此,我们整个接口自动化框架就全部搭建完成了,我们来试一下,看是否可以构建成功并生成对应的测试报告

1、回到Jenkins首页面板,选择刚才创建的自由风格项目,点击构建

25.jpg

2、查看对应项目的构建日志

26.jpg

3、构建日志中出现build success,说明我们的构建是成功的

27.jpg

4、再回到我们Jenkins日志存放的路径看下是否成功的生成了测试报告

28.jpg

如果你也执行到了这一步,恭喜你,整个接口自动化框架搭建完成,你可以开展你的自动化测试工作了,后面的内容,我们将继续对这款框架进行优化,优化的东西包含以下内容:

1、如何执行多个目录下的测试脚本

2、如何生成多种类型(概要和详细)的测试报告

3、测试报告如何与Jenkins进行集成

4、测试报告如何进行邮件发送

作者:测试萌萌

原文链接:https://blog.csdn.net/weixin_50829653/article/details/116210900

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言相信搞过Python的人绝大部分都会一点点爬虫技能,但是很多时候爬虫也不是万能的,这个时候就需要我们的自动化测试框架了,于是Selenium就应运而生了,它可以算的上是自动化测试框架中的佼佼者,因为它解决了大多数用来爬取页面的模块的一个永远的痛,那就是Ajax异步加载,今天小编就带大家来好好了解下这个Selenium 。一、安装与导入这里我们需要安装三个东西,一个是Selenium框架,还有一个浏览器,最后就是驱动。这里小编选择了谷歌浏览器,下载地址:https://u062.com/file/7715018-455263626。然后Selenium框架嘛,大家都会下的啦,PIP就搞定了,...
            15 17 3167
            分享
          • 3.你是如何进行项目级检查首先,我们需要知道项目级的角色有哪些,包括项目经理、需求、设计、开发、测试等,再针对每个角色工作过程和产品进行检查。项目经理角色:根据《过程检查单》对项目经理过程进行检查,包括监控、评审、度量过程监控:项目有偏差时,是否做了相应的措施,是否编写了变更需求矩阵评审:评审前、中、后期的工作,如前期(5w),中期记录,后期跟踪,评审是否按照计划进行,是否编写的评审报告度量:是否每个里程碑进行了度量分析,度量分析的数据是否一致性、及时性、准确性根据《产品检查单》对项目经理产品进行检查,《项目计划》是否按照模板编写,项目计划内容是否(包括组织的结构和职责、是否有软件规模估算、已...
            0 0 2253
            分享
          •   早在信息行业发展的初期,就有互联网公司意识到了保护软件产品安全的重要性,可时至今日,我们总能够从报道中瞥见某某公司遭黑客入侵导致信息泄露的新闻,其中甚至不乏Facebook这些以用户通讯、身份信息为支柱产业的大厂。  信息安全事件屡见不鲜,然而公司的软件安全测试效果总是不理想,以下卓码测评小编推荐的这些安全测试工具让你的测试工作效率更高。  一、软件安全测试的含义是什么?  软件安全测试是指测试人员在软件产品开发基本完成到发布这一阶段通过各种测试工具对产品进行检验以验证产品是否符合安全需求定义和产品质量标准的过程。  二、有哪些常见的软件安全问题?  (1)缓冲区溢出;  (2)SQL注入...
            0 0 400
            分享
          • 作者:优测团队测试专家杨余超 背景介绍       近日优测测试服务团队在进行某客户PC端产品整体测试的过程中,也涉及到PC性能测试部分。本文将结合该项目实际经验,总结如何应用本地监控性能的方案进行PC性能测试。本文内容主要为监控CPU、内存、网络以及GPU的性能使用状况等,重点介绍监控项目的定义及相关结果判定的准则。对于性能监控的实现方法也注明了实现步骤,方便测试同仁进行参照。    CPU 内存 网络1、Windows开始菜单→Windows管理工具→性能监视器。 2、点...
            0 0 2416
            分享
          • 1.1输入项边界清晰,类型明确,例如名称为“0-100”的“字符串”组成;属性明确,例如单价、数量为必填项,金额不可编辑,金额=单价*数量;来源清晰,例如机台为下拉框方式显示,选项值来源(基础数据-机台设置-新增的数据);容错处理,例如1.机台为字符串1-100,当输入大于100时输入无效;2.身份证未必填项,保存时,未填,提示“请填写身份证”;数值规范,例如开始日期初始化=当前日期-15天,结束日期初始化=当天日期。1.2界面产品原型布局合理清晰,包括菜单、按钮、查询输入框,列显示;事件触发约束:例如:1.默认:编辑、取消、保存置灰,退出按钮可用,选中某行后,编辑恢复可用;2.未选择数据,点...
            0 0 1009
            分享
      • 51testing软件测试圈微信