• Robot Framework 学习(3)- Resource及关键字的使用


    在进行软件自动化测试时,我们设计并编写好一个测试脚本的业务逻辑之后,需要将其中的业务数据提取为变量,并对业务逻辑进行封装。在后续的测试过程中,只需设置每次测试的测试数据,而不必更改业务逻辑。

    举个例子,我们对baidu搜索进行兼容性测试时,我们的业务逻辑是

    [打开浏览器] - [输入搜索内容] - [点击搜索按钮] - [截图保存] - [关闭浏览器]

    而对应的业务数据,就是我们所输入的“搜索内容”。

    在后续的测试中,我们应该将这一逻辑封装为一个关键字(这里可以理解为一个自定义函数,并将搜索内容作为输入变量)。每次测试时,只需要改变“搜索内容”这一变量即可。

    1.建立资源

    在导航树中的项目节点点击鼠标右键,选择【New Resource】,打开新建Resource的对话框,填写Resource名称“业务关键字”

    2.建立关键字

    在刚刚建立的【业务关键字】节点点击右键,选择【New User Keyword】,建立新关键字“百度搜索”

    3.为关键字添加变量

    点击【百度搜索】节点,展开编辑面板的【Settings】配置,点击Arguments的【edit】按钮,添加变量

    按照使用说明,这里的变量使用 ${key} 的格式,多个变量之间使用 | 进行分割。这里我们演示一下多变量。使用${searchword}|${result}

    4.为关键字设置业务逻辑
    需要注意一下的是,这里的关键字可以理解为一个“函数”的概念,我们需要在TestCase中调用的是这个“关键字”。我们刚刚添加的变量是“关键字”的一部分,在TestCase中体现为具体的业务数据。

    作为一个“函数”,除了变量外,我们还需要为之编写业务逻辑:

    对应的脚本为

        Open Browser    https://www.baidu.com/    ff
        Input Text    id=kw    ${searchword}
        Click button    id=su
        Sleep    2
        ${title}    Get Title
        Should Contain    ${title}    ${result}
        Capture Page Screenshot    ff.png
        Close Browser

    其中${searchword}和${result}表示我们的关键字在被TestCase调用时,传入的数据。而${title}则是作为一个中间过程的临时变量进行使用。

    5.为TestSuite添加Resource

    与Library类似,在Resource编写完成自后,需要在TestSuite进行 一下引用。

    6.编写TestCase

    设置完Resource之后,添加一个TestCase,并在其中使用我们刚刚定义的关键字

    7.运行测试,获取测试结果

    总结:

    RobotFrame Work 中的Resource 及关键字给我们提供的是一种类似于“函数”概念的用户自定义机制。我们可以将一些通用的业务过程封装为一个关键字,并声明业务中的业务数据。在编写测试用 例时,直接调用关键字,设置业务数据即可。而一旦业务过程发生变化,或元素定位发生变化,我们只需要更改关键字中的业务逻辑即可,而不必更改每个测试用 例。

    在使用过程中,有些验证逻辑我们可能无法仅仅通过RobotFrame Work 的内置函数或自定义关键字来实现,这个时候需要我们自己编写外部函数来进行验证,也就是需要自定义外部的Library。

  • 相关阅读:
    ASPNET下的路径辅助类
    分析函数计算起始,结束日期.
    Debugging SQL Server 2005 Stored Procedures in Visual Studio
    Storing Binary Files Directly in the Database Using ASP.NET 2.0
    Fw:Managing View State in ASP.NET 4 Using the New ViewStateMode Property
    Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
    Passing Information Between Content and Master Pages .
    转:Querying a Hierarchical ParentChild Structure in LINQ
    续上篇:比较彻底的清除"代理木马下载器"的方法
    面向过程和面向对象--从C到C#
  • 原文地址:https://www.cnblogs.com/sunsiyuan/p/7209549.html
Copyright © 2020-2023  润新知