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 前言 什么是扩展 ...
随机推荐
- numpy——.npy和.npz文件
npy文件--Numpy专用的二进制格式np.load()和np.save()是读写磁盘数组数据的两个重要函数.使用时,数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中. import n ...
- 批量查询"_mget"
1.不同index的批量查询GET /_mget{ "docs":[{ "_index":"test_index1", "_typ ...
- python-面向对象-12_模块和包
模块和包 目标 模块 包 发布模块 01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块 模块名 同样也 ...
- mac上Android反编译工具apktool、dex2jar入门
MAC上Apktool的安装 官网链接 image.png 使用步骤如图1-6 第一:下载一个shell脚本,保存的名字就是”apktool”,不要带.sh后缀.可以复制到sublimetext, ...
- CentOS+Uwsgi+Nginx发布Flask开发的WebAPI
1.WebAPI 开发工具VS 于Windows环境中开发完成后使用SFTP进行同步文件到Centos中使用 2.重点:WebAPI触发的方法是为了发送Celery异步调度任务 Celery框架使用涉 ...
- 数据库——MongoDB
what's the MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式 ...
- 【Java】-NO.12.Java.2.OCJP.1.001-【Java OCJP】-
1.0.0 Summary Tittle:[Java]-NO.12.Java.2.OCJP.1.001-[Java OCJP]- Style:Java Series:OCJP Since:2017-0 ...
- 解放你生产力的10款效率工具,赶紧mark起来
聪明的人总是善用工具 社会的快度发展赋予我们的一个幸运之处在于:你可以通过读书或使用工具去改善自身的处境甚至是阶层. 在父母那个时代,通过熟练使用办公软件,可以使一个在水泥地做帮工的青年走进格子间.而 ...
- 【转】JsonPath教程
https://blog.csdn.net/koflance/article/details/63262484 1. 介绍 类似于XPath在xml文档中的定位,JsonPath表达式通常是用来路径检 ...
- Java Selenium - 元素操作 (四)
四,弹出框 京东购物车为例 , 点击‘删除’ 或者‘移到我的关注’ ,就会弹出下面这个框框,练吧: (其实这也不是常规的弹出框,二是div css前端技术做的效果,本想做个Alert的案例,实在不好找 ...