基于Robot Framework自动化测试技术

基于Robot Framework自动化测试技术

  

自动化测试介绍

  定义

  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

  通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

 

 前提条件

  自动化的收益=使用次数*全手动执行成本-首次自动化成本-维护次数*维护成本

  观察其是否适合使用自动化测试。通常需要同时满足以下条件:

  1.自动化脚本编译成本低

  (业务逻辑相对简单、需求变动不频繁、项目周期长)

  2.自动化测试脚本可以重复使用

  (可以用于多个相似项目平台,回归测试,版本迭代测试)

  

自动化在测试系统中的定位

基于Robot Framework自动化测试技术

  性能测试:主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。

  功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,代替部分的手工测试。但一般只有大的项目才需要进行自动化,中小型项目不推荐使用自动化测试。

 

 技术方案

  基于robot framework 框架

  Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发

  RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源。当我们针对一个系统编写好一套脚本后,每当我们对系统做一些更改的时候,便可以把已经写好的脚本拿出来稍作修改,通过执行这些脚本就可以检测系统的功能是否依旧完好。系统需要一个不断完善的过程,而RIDE用例也将随着系统的变更做着相应的修改。

 

 1、特点:

  a.测试用例使用文本文件(txt)保存;

  b.测试用例支持变量的使用,也可使用if语句和for循环,测试人员可根据自身情况创建自己需要的测试库;

  c.测试执行报告和日志是html格式的,容易阅读;

  d.支持关键字驱动、数据驱动和行为驱动等等

 

 2、架构图:

基于Robot Framework自动化测试技术



  1.最底层的Keyword和Data,组成了测试用例脚本,一般都文件夹下面的txt文档编写保存。

  2.Robot Framework框架通过解析txt文档内容,按着里面的配置信息来执行测试用例脚本,也就是执行自动化测试用例

  3. Library是执行Python脚本的所要用到的方法库,编写底层keyword时常常会用到这些方法

 

 3、基本概念:

  • 测试用例集

    Test Suite

  • 测试用例

    Test Case

  • 关键字库

    Library

  • 关键字

    Keyword

  • 变量

    Variable

  • 资源

    Resource

  •   1、测试用例集 表示具有相同模块或者功能的测试用例的组合,一般是文件夹或者文本文件

      2、测试用例 表示可执行测试用例最小单元,是个文本文件(txt)

      3、关键字库 表示执行Python脚本的所要用到的方法库(一般都是引用开源库)

      4、关键字  表示基于关键字库所开发封装成测试需要的关键步骤(例如登录、查询等方法)

      5、变量 表示测试过程中需要反复用到的复杂数据,可以用变量名称代替

      6、资源 表示在其他测试项目的用例中封装的关键字,可以导入进来使用

     

     4、关系图:

    基于Robot Framework自动化测试技术



     

     5、测试用例编写规范:

      a.一个产品或项目的用例尽量分成多层来写:

      最1层:文件夹:项目或产品名称+"测试用例"

      第2层:文件夹:模块名称

      第3层:文件:子功能

      第4层:用例:用例名称会直接转换成测试项

      b.变量表的变量名称尽可能一致:

      eg. *** Variab***

      ${IP}             172.10.2.10

      ${Port}           8000

     

     基本操作步骤

      1.1、创建一个工程

      首先点击菜单栏的 File->New Project。(这里选择Directory,因为我们要创建一个文件夹来存放用例,其实用File也可以,看自己需求吧)

    基于Robot Framework自动化测试技术

     

     1.2、创建测试套(Suite)

      右击新建的文件"自动化解析"-->点击"New Suite(可以理解为创建了相似测试用例的文件夹)

    基于Robot Framework自动化测试技术

     

     1.3、创建测试用例(Test Case)

      右击新建的文件"New Test Case"-->点击"New Suite"

      (创建一个天气查询的接口测试用例)

    基于Robot Framework自动化测试技术

      

    1.4、引用库文件

      选中Suite,点击右边的library,引用会使用的库

    基于Robot Framework自动化测试技术

      添加好以后文件名是黑色的,如果是红色,则说明加载不成功,需要检查库文件是否已安装,或者名称是否正确

     

     1.5、编写脚本

      输入相关字后,可以按空格键查找,出现使用提示

    基于Robot Framework自动化测试技术

      按照RequestsLibrary库的语法规则,创建出执行用例的测试脚本

    基于Robot Framework自动化测试技术

     

     1.6、运行脚本

      选择测试用例,点击菜单栏的"Tools"->"Run Tests",或者直接点击运行图标,在运行过程中可暂停、终止。

    基于Robot Framework自动化测试技术

      分别点击Log和Report可以查看测试日志及报告

      一般也可以使用Log来检查脚本是否编写成功

    基于Robot Framework自动化测试技术

     

     应用规范步骤

      用例层次结构一般从低到高设置创建:测试对象层->测试操作层->测试步骤层->测试用例层。

      前三个放在测试资源模块(Resource)的对象-操作-步骤目录下面,测试用例放在相应的测试套件(Suite)下。

      另外,每个模块会有它内部公用的对象和操作。

    基于Robot Framework自动化测试技术

     

     2.1、创建对象

      如果要反复使用到操作对象,可以用变量的形式进行表示,并保存到对象文件中。

      下面以有道和必应词典翻译的API举例:

      点击"对象",在右边点击"Add Scalar",创建变量。

    基于Robot Framework自动化测试技术

      可以依次将下面的请求参数全部转变为对象,方便随时调用:

    基于Robot Framework自动化测试技术

      

    2.2、创建操作、步骤(关键字)

      为了使刚刚编写的脚本用于更多的场景,为了以后的测试用例执行简便,可以通过创建关键字的方法实现

      选中脚本,右键点击选择Extract Keyword,新建为Get请求

    基于Robot Framework自动化测试技术

      点击Get请求,在右边进行变量设置

    基于Robot Framework自动化测试技术

      其中某些参数的意义(初始化、触发条件、返回值设置):

    基于Robot Framework自动化测试技术

      将创建的关键字拖动到"操作"里面,方便以后脚本编写及方法调用:

    基于Robot Framework自动化测试技术

     

     2.3、应用

      在 "接口自动化"中创建测试用例(Test Case)"词典查询":

      点击"接口自动化",在Library中添加使用到的包,在Resource中添加对象、操作、步骤。

    基于Robot Framework自动化测试技术

      在"词典查询"中将创建好的对象、关键字应用于实际接口测试内容:

    基于Robot Framework自动化测试技术

      注意事项

      1.支持中英文书写变量

      2.变量不区分英文字母大小写

      3.下划线会被忽略掉(${port1}==${port_1})

      4.RIDE中默认变量都是字符型(对象后面可直接加参数变成字符: ${yd翻译}hello)

    基于Robot Framework自动化测试技术

     推荐阅读

    点击阅读?Robot FrameWork持续集成测试实战

    点击阅读?如何用Robot framework来编写优秀的测试用例

    点击阅读?Selenium实现自动化下单、退款、撤销回归测试



    点击阅读?测试女巫自动化生命进化之搞什么搞

    点击阅读?自动化测试投资回报率模型及其应用

    基于Robot Framework自动化测试技术


    基于Robot Framework自动化测试技术

    点击“阅读原文”,查看更多内容