热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RobotFramework之库与关键字

RobotFramework之库与关键字库与关键字的概念库Library、库与系统关键字RF标准库RF第三方库自定义库库与关键字的概念库Library:类比pyth

RobotFramework 之 库与关键字

      • 库与关键字的概念
      • 库Library、库与系统关键字
        • RF标准库
        • RF第三方库
        • 自定义库


库与关键字的概念

库Library:类比python中的第三方库。如mysql库、logging库等。

关键字:RobotFramework 中,关键字是用例执行的主体,而关键字本质是python函数,实现了特定的功能

关键字keywordpython函数
关键字名称函数名称
来源:内置/库/用户自定义来源:模块/包/用户自定义
入参入参
有返回值。无则为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# 添加隐式等待,10sset 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# 添加隐式等待,10sset selenium implicit wait 10# 搜索输入框中输入 robotframework ,这里\n是回车操作input text id=kw robotframework\n# 关闭浏览器close browser

自定义库

自定义库首先要定义一个py文件,用于定义用户关键字,然后在RF中调用关键字

定义testconfig.py,用于访问百度并搜索robotframe,如果搜索成功,会返回 Response [200]

testconfig.py

import requestsdef get_baidu():res = requests.get("https://www.baidu.com/s?ie=utf-8&wd=robotframe")return resif __name__ == '__main__':print(get_baidu())

然后在robot文件中调用testconfig.pyget_baidu 函数

*** Settings ***Library testconfig.py*** Test Cases ***
百度响应${baidures} get baidulog to console ${baidures}

在robot文件中,get baidu关键字对应的是 testconfig.pyget_baidu 函数,下划线变成空格(也可不改变成空格)
${baidures} 指定义了一个变量,变量名称为 baidures ,用于接收 testconfig.pyget_baidu 函数返回的内容。最后,log to console ,在控制台打印出 baidures这个变量的内容


推荐阅读
author-avatar
繁华落尽的星空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有