zoukankan      html  css  js  c++  java
  • Robot Framework自动化测试(四)--- 分层思想

    谈到Robot  Framework 分层的思想,就不得不提“关键字驱动”。

     

    关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同。

    在上一节的selenium API 中所介绍的方法其实就是关键字,如“open browser” 就是一个关键字。从底层去看它就是一个通过编程去现实的一个方法。

    def  open_browser(url,browser):
         #通过browser找到相应的浏览器驱动,调用浏览器,借助python的httplib、urllib模块将url传递给浏览器。从而实现open brwoser 的目的。

    通过上面的伪代码表述的“关键字”的底层其实还是程序定义的方法。

     

      回到分层的思想上,在程序设计的讲究设计模式,设计模式其实就是根据需求使用抽象与封装,其实就是分层思想。把一个实现过程分成不同多层。提高的灵活性,从而达到可扩展性和可维护性。

     

      再回到自动化的话题上,我们可以把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。

     

    http://www.cnblogs.com/fnng/p/3871712.html

    参考本系列的第一节创建一条百度搜索的测试用例。

    我现在要写5条百度搜索的用例:

     

       可以在Search测试套件下创建5条测试用例。其实对于每一条测试用例来说,只是搜索的内容不同,脚本步骤是完全一样的。这样做无疑增加的脚本的冗余,而且不便于维护。假如,百度输入框的定位方式变了,我不得不打开每一条用例进行修改。

     

    我们可以过创建关键字的方式,从而实现分层的思想来解决这个问题。

     

    Robot  Framework 关键字                      

     

    1、创建资源

    右键“测试项目”选择“new resource”创建资源。

    输入资源名称:

     

     

     

    2、创建关键字

    右键“业务关键字”选择“new User Keyword” 来创建用户关键字。

     

     输入关键字的名称:

     

     

     

    3、编辑关键字

     

    分析:

    对于一个测试用例来说,用户关心的是输入什么内容,得到什么结果。

    所以,对于“百度搜索”关键字来说,需要创建两个接口变量${search}和${result} 两个变量,用于接收输入内容和预期结果。

    点击Arguments输入框,定义变量,多个变量从用“|”隔开。

     

    在百度用户中使用参数化变量。

     

     

     

    4、添加创建的资源

    切换到测试套件(Search)页面,添加资源(业务关键字.txt)

     

     

    5、调用关键字

    现在就可以在测试用例中使用创建的关键字了(百度搜索)。

     

     

    对于每一条用例来说,调用“百度搜索”关键字,输入搜索内容,输入预期结果即可。不同关心用例是如何执行的。如果百度输入框的定位发生了变化,只用去修改“百度搜索”关键字即可,不用对每一条用例做任何修改。大大提高的用例的维护性和扩展性。

     

     

    继续分层的设计:

     

     

    到此,Robot  Framework +selenium 自动化测试粗犷的讲完了。当然还有更多API 的使用,和细枝末节的设置没有介绍。但我们已经可以拿它来开展自动化工作了。

     

  • 相关阅读:
    Reactive Extensions (Rx) 入门(5) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(4) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(3) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(2) —— 安装 Reactive Extensions
    Reactive Extensions (Rx) 入门(1) —— Reactive Extensions 概要
    Xamarin NuGet 缓存包导致 already added : Landroid/support/annotation/AnimRes 问题解决方案
    Android 系统Action大全
    Xamarin Forms 实现发送通知点击跳转
    如何理解灰度发布
    推荐一款分布式微服务框架 Surging
  • 原文地址:https://www.cnblogs.com/gusheng668/p/9689181.html
Copyright © 2011-2022 走看看