当前位置:网站首页>RobotFramework 之 库与关键字
RobotFramework 之 库与关键字
2022-08-09 13:06:00 【沉觞流年】
RobotFramework 之 库与关键字
库与关键字的概念
库Library:类比python中的第三方库。如mysql库、logging库等。
关键字: 在RobotFramework 中,关键字是用例执行的主体,而关键字本质是python函数,实现了特定的功能
| 关键字keyword | python函数 |
|---|---|
| 关键字名称 | 函数名称 |
| 来源:内置/库/用户自定义 | 来源:模块/包/用户自定义 |
| 入参 | 入参 |
| 有返回值。无则为None | 有返回值。无则为None |
系统关键字system keyword:类比python库中提供的函数。
用户关键字user keyword:按系统业务操作,调用系统关键字和变量形成更高级的关键字。类比python编写自己的函数。
资源Resource:用户关键字的集合。用来对用户关键字进行管理。类比python中编写自己的类。
库Library、库与系统关键字

RF中的Library,相当于python语言中的模块。是系统关键字的集合。
RF标准库
Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的。
像前面提到到的log to console关键字,是属于Builtin标准库里的关键字Dialogs:提供了暂停测试执行和从用户的输入方式。
Collections:提供一组关键词处理Python列表和字典。
OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robotframework正在运行的系统中执行。
Remote:远程库接口的一部分。没有自己的任何关键字,作为robotframework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。
Screenshot:提供关键字来捕获和存储桌面的截图。
String:用于处理字符串并验证它们的内容的库,用于生成、修改和验证字符串
Telnet:支持连接到Telnet服务器上打开的连接执行命令。
XML:用于生成、修改和验证XML文件的库。
Process:系统中运行过程的库。
DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算
RF第三方库
web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for Java、watir-robot等。
Windows GUI测试:AutoItLibrary。
移动测试:Android library、iOS library、AppiumLibrary等。
数据库测试:Database Library (Java)、Database Library (Python)、MongoDB library等。
文件对比测试:Diff Library。
HTTP测试:HTTP library (livetest)、HTTP library (Requests)等。
例如,编写web自动化测试用例,需要用到 seleniumlibrary 关键字库。首先,需要使用 pip 命令进行安装
pip install robotframework-seleniumlibrary
安装完成后,可进行一下测试,通过代码操控浏览器模拟用户操作
在settings表中进行导库动作,然后在Test Cases表中访问操控浏览器访问百度,搜索robotframework
*** Settings ***
# 导库 Library 库名 库名不能写错,且对大小写敏感
Library SeleniumLibrary
*** Test Cases ***
百度
# 打开chrome浏览器访问百度
open browser https://www.baidu.com chrome
# 添加隐式等待,10s
set selenium implicit wait 10
# 搜索输入框中输入 robotframework ,这里\n是回车操作
input text id=kw robotframework\n
# 关闭浏览器
close browser
如果产生报错,提示没有浏览器驱动,可以查看该篇文章,安装和配置谷歌浏览器驱动
驱动路径最好是放在python的环境变量下,这样会默认去查找驱动所在路径.
如果不是放在python的环境变量,而是放在其他目录,那么打开chrome浏览器访问百度这一步操作就需要加上驱动的路径F:/Tools/webdriver/chromedriver.exe,注意,这里路径用的是斜杠,反斜杠会被识别为转义符
*** Settings ***
# 导库 Library 库名 库名不能写错,且对大小写敏感
Library SeleniumLibrary
*** Test Cases ***
百度
# 打开chrome浏览器访问百度
open browser https://www.baidu.com chrome executable_path=F:/Tools/webdriver/chromedriver.exe
# 添加隐式等待,10s
set selenium implicit wait 10
# 搜索输入框中输入 robotframework ,这里\n是回车操作
input text id=kw robotframework\n
# 关闭浏览器
close browser
自定义库
自定义库首先要定义一个py文件,用于定义用户关键字,然后在RF中调用关键字
定义testconfig.py,用于访问百度并搜索robotframe,如果搜索成功,会返回 Response [200]
testconfig.py
import requests
def get_baidu():
res = requests.get("https://www.baidu.com/s?ie=utf-8&wd=robotframe")
return res
if __name__ == '__main__':
print(get_baidu())
然后在robot文件中调用testconfig.py 中 get_baidu 函数
*** Settings ***
Library testconfig.py
*** Test Cases ***
百度响应
${
baidures} get baidu
log to console ${
baidures}
在robot文件中,get baidu关键字对应的是 testconfig.py 中 get_baidu 函数,下划线变成空格(也可不改变成空格)${baidures} 指定义了一个变量,变量名称为 baidures ,用于接收 testconfig.py 中 get_baidu 函数返回的内容。最后,log to console ,在控制台打印出 baidures这个变量的内容
边栏推荐
- FFmpeg相机花屏花图问题解决方法
- 从房产中介到程序员--80后张江男
- Professor Chen Qiang's "Machine Learning and R Application" course Chapter 15 Homework
- 搭建大型分布式服务(二)搭建会员服务
- 基于 R 语言的判别分析介绍与实践 LDA和QDA
- 01_iTween_第一天--小球抛物线
- Map mixed density function and quantile added line
- 剑指 Offer 43. 1~n 整数中 1 出现的次数(递归、数学)
- GIN a preliminary study, the environment is installed
- Professor Chen Qiang's "Machine Learning and R Application" course Chapter 16 Assignment
猜你喜欢

Uni - app - uview Swiper shuffling figure component, click on the links to jump (click to get the item after the row data, remove data operation)

GIN a preliminary study, the environment is installed

利用信号灯和共享内存实现进程间同步通信

5G China unicom general exception handling

The sword refers to the offer, cuts the rope 2

蓝桥杯线上模拟赛——Flex 经典骰子布局
![行程和用户[阅读理解法]](/img/4b/77bba3c488b5410fdec5c3894c7421.png)
行程和用户[阅读理解法]

FFmpeg相机花屏花图问题解决方法

FFmpeg multimedia file processing (implementation of ffmpeg operation directory and list)

现在40系显卡都快出来了,为何1060型号的显卡还有这么多人用?
随机推荐
Deep Learning Based on R Language - Simple Regression Case
Sandbox中的进程/线程相关-2
IDEA Gradle 常遇问题(二)(持续更新)
蓝桥历届真题-蛇形填数
Professor Chen Qiang's "Machine Learning and R Application" course Chapter 16 Assignment
How to solve the 0x80070005 error when the computer is reinstalled and the system is restored
【奖励公示】第23期 2022年7月奖励名单公示:社区明星评选 | 新人奖 | 博客同步 | 推荐奖
GIN a preliminary study, the environment is installed
43. The sword refers to Offer 1 ~ 1 the number of occurrences of n integers (recursive, mathematics)
微服务+微信小程序实现社区服务
剑指 Offer 43. 1~n 整数中 1 出现的次数(递归、数学)
为什么文字不贴合边
javscript基础易错点集合
jenkins api create custom pipeline
puzzle(016.5)逻辑电路
Jenkins API groovy calling practice: Jenkins Core Api & Job DSL to create a project
FFMPEG多媒体文件处理(ffmpeg文件的删除与重命名)
音视频录入的pts和dts问题
2.微服务'黑话'集锦及Eureka注册中心相关概念
蓝桥杯线上模拟赛——Flex 经典骰子布局