Robot Framework 教程 (3) - Resource及关键字 的使用
From:http://www.cnblogs.com/buaawp/p/4754399.html
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进行介绍。
Robot Framework 教程 (3) - Resource及关键字 的使用的更多相关文章
- Robot FrameWork 教程链接
1. Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2. Robot Framework ...
- Robot Framework 教程 (2) - 页面元素定位
上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...
- Robot Framework 教程 (7) - 使用For循环
在自动化测试过程中,使用For循环来对某个动作进行重复操作是很普遍的行为.在Robot Framework中,各种测试库中均提供了多种方式的For循环结构,在其中覆盖了大部分类型的循环类型.而Robo ...
- Robot Framework 教程 (6) - 使用条件表达式
本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...
- Robot Framework 教程 (5) - 连接Oracel数据库
Robot Framework 提供了多种Library.其中Database Library可用来连接操作数据库. 1.安装Database Library 打开Robot Framework官网, ...
- Robot Framework 教程 (1) - 环境配置及简单网站兼容性测试
0.Robot Framework 简介 Robot Framework 是一个通用的自动化测试框架,主要用于“验收测试”和“验收测试驱动开发(ATDD)” (会其它文章中会详细介绍ATDD).它使用 ...
- robot framework设置更高级别的关键字
robot framework中除了内置的关键字,以及低级别的用户自定义关键字外,为了使用例更加整洁,我们还可以形成更高级别的关键字 方法如下: 在Keywords里面设置 其中Run Success ...
- Robot Framework(11)- 用户关键字的详解
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 什么是用户关键字 ...
- Robot Framework(15)- 扩展关键字
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 什么是扩展 ...
随机推荐
- Delphi 打开网址
1. 通过iexplore.exe打开:ShellExecute(0, 'open', 'iexplore.exe', PChar('http://www.100xuekao.com'), '', S ...
- 7-通用GPIO
7-通用GPIO 1.I/O 端口控制寄存器 每个 GPIO 有 4 个 32 位存储器映射的控制寄存器(GPIOx_MODER.GPIOx_OTYPER.GPIOx_OSPEEDR.GPIOx_PU ...
- mysql 内置功能目录
mysql 内置功能 视图介绍 mysql 内置功能 视图 使用 mysql 内置功能 触发器介绍 mysql 内置功能 触发器 实验 mysql 内置功能 事务 介绍 mysql 内置功能 存储过程 ...
- Delphi避免重复打开窗体
取消自动创建窗体 Form1关键代码 implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObje ...
- Java中的boxing和unboxing(转)
测试代码: System.out.println(0L == 0);//true System.out.println(((Long)0L).equals(0));//false Integer i1 ...
- python的运行机制
不需要生成二进制代码,python解释器把源码->字节码,然后在执行这些字节码. 解释器的具体工作: 1.完成模块(module)的加载和链接 2.将源代码编译成pyCodeObject(字节码 ...
- Scala辅助构造器和主构造器
和java或c++一样,scala也可以有任意多的构造器.不过,scala类有一个构造器比其它所有构造器都更为重要,它就是主构造器.除了主构造器之外,类还可以有任意多的辅助构造器. 有两点需要注意: ...
- Centos的升级与更新
系统升级(6.5->7.2): 这里拿Centos6升级到Centos7为例: 1.查看当前CentOS版本cat /etc/redhat-release 2.更新源vim /etc/yum.r ...
- git push 报错:missing Change-Id in commit message footer
使用gerrit后,提交代码会出现如下截图问题: 临时解决: step1:把上面红色的那条gitidir复制下来执行下: step2:执行下面的命令会添加change_id git commit -- ...
- [LeetCode] 709. To Lower Case_Easy
Implement function ToLowerCase() that has a string parameter str, and returns the same string in low ...