51Testing软件测试论坛

标题: Robot Framework-Resource及关键字 的使用 [打印本页]

作者: 胖虎    时间: 2019-2-15 16:03
标题: Robot Framework-Resource及关键字 的使用

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


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

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

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

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


1.建立资源

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

[attach]121917[/attach]

[attach]121918[/attach]


2.建立关键字

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

[attach]121919[/attach]


3.为关键字添加变量

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

[attach]121920[/attach]

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

[attach]121921[/attach]


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

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

[attach]121922[/attach]

对应的脚本为

  1. Open Browser    https://www.baidu.com/    ff
  2.     Input Text    id=kw    ${keyword}
  3.     Click button    id=su
  4.     Sleep    2
  5.     ${title}    Get Title
  6.     Should Contain    ${title}    ${result}
  7.     Capture Page Screenshot    ff.png
  8.     Close Browser
复制代码

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


5.为TestSuite添加Resource

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

[attach]121923[/attach]

[attach]121924[/attach]


6.编写TestCase

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

[attach]121925[/attach]

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


[attach]121926[/attach]


总结:

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


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





作者: Miss_love    时间: 2020-12-31 08:58
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2