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    ${keyword}
    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。下一篇文章,我们将会对用户自定义Library进行介绍。