安装

运行环境配置:
pip install robotframework
pip install robotframework-seleniumlibrary (编写用例的时候用到这个第三方库,不用可以不装)
编辑环境配置:
方式1(在线安装)
pycharm 安装插件IntelliBot
File - Settings – Plugins: 选择browser repository安装的
RobotFramework自动化测试框架基本知识(一)

方式2(离线安装,推荐)
准备好离线安装插件包
File - Settings – Plugins:选择install from disk
如果觉得主题格式不好看可以自己设置:

RobotFramework自动化测试框架基本知识(一)
一些基本概念:
测试套件文件,表,关键字, 测试库
执行测试用例
查看日志及报表
测试用例基本语法
四种表:Settings, Variables, Test Cases, Keywords
RF的测试套件 可以是目录 也可以是文件。 而测试用例 是存在测试套件文件中的。测试套件目录可以包含 子套件目录 和 子套件文件。
RF的测试用例是存放在测试套件文件里面的。一个套件文件文件可以有多个用例, 套件文件可以测试套件目录中。
RF支持四种的表,
分别为Settings, Variables, Test Cases, Keywords。
表名必须出现在第一单元格中。表名大小写不敏感
Settings 表,是这个测试套件的 全局配置表。比如,说明这个测试套件要使用的测试库、资源文件,测试套件的环境初始化(setup)和清除(tear down),该套件内的标签等等
Test Cases表,是用来定义这个测试套件的 测试用例的
Variables 表,就是这个测试套件的 全局变量表
Keywords表,是用来定义这个测试套件的 用户关键字的
测试用例表里面的每个测试用例 大概可以分为
配置部分
主体部分
用例配置部分 [Documentation]
该用例的文字说明
[Tags]
该用例的标签
[Setup], [Teardown]
该用例的初始化和清除操作
[Template]
声明该用例是模板关键字驱动的。本用例只包含测试数据。
[Timeout]
设置用例超时时间
用例主体部分主要是由关键字组成的
关键字的来源
测试库
资源文件
用例所在文件的关键字表
用例主体部分也包含变量赋值
注意:一定要保证用例文件的编码格式必须是UTF8,否则会出现无法解析中文字符的情况
如果默认不是UTF8需要自己设置一下
1 关键字的使用
RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解,这样才能把RF用好。
最常用的关键字就在RF的标准库中
http://robotframework.org

其中Builtin是标准库中的内置库,
Shortcuts Keywords 就是关键字目录表,具体介绍每个关键字

关键字参数
第一列就是关键字的名称
第2列就是关键字参数!!!

必选参数和缺省值参数
再来看一个常用关键字: should be equal
比如下面的 builtin库里面的
Should Be Equal
first, second, msg=None, values=True, base=None
其中,参数 first 、second 是必选参数,需要填写内容,

而参数 msg,values,base是带缺省值的参数,不填表示使用缺省值 是可以选的,可以不填。
2 常用关键字
Should Be Equal
Should Contain
set variable
log
log to console
sleep
Convert To Integer Convert To Number
set variable 只支持赋值一个字符串给变量,如果我们想赋值一个整数,或者浮点数,需要用 Convert To Integer Convert To Number
如果我们想把一个数字作为 关键字的参数,可以使用数字变量

log to console ${32}
log to console 32+46ShouldBeEqual/ShouldNotBeEqualShouldContain/ShouldNotContainShouldStartWith/ShouldNotStartWithShouldEndWith/ShouldNotEndWithShouldBeTruepythonRFpythonevalShouldbetruepython1{32+4*6} Should Be Equal/ Should Not Be Equal Should Contain/ Should Not Contain Should Start With/ Should Not Start With Should End With/ Should Not End With 一个特殊关键字Should Be True 它的参数本身是python 表达式语句,RF会直接用python解释器 的eval函数,来解释这个参数表达式。 Should be true与python两个区别:1,变量前面加个符号 2. 不能中间有多于两个空格
3 认识测试库
通常,关键字是由测试库提供的。 其实测试库就是python 模块文件。
关键字就是 Python库里面的函数和类的方法。

RF就是本身就是个Python程序, 所以它的寻找库文件的原理和python是一样的。最终是通过sys.path。
我们在哪个目录下面运行robot,那个目录就是当前工作目录当前工作目录就是在sys.path里面的。所以,我们放在当前目录下面的python模块文件,直接就能被找到。

RF 脚本使用函数名、方法名 大小写不敏感。
4 库的导入
要使用测试库提供的关键字,我们必须要 声明 导入库。
当然一个特例:除了RF 的 builtin库的关键字,不需要声明。
库的名称 在RF里面是大小写敏感的。

有的库,在导入的时候,可以提供参数,比如SeleniumLibrary

http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
Importing链接,点开,有参数 就是导入可以设置的参数
timeout=5.0,
implicit_wait=0.0,
run_on_failure=Capture Page Screenshot,
screenshot_root_directory=None

其实这些导入时带参数的库,对应的测试库都是用类实现的。
这些参数就是类的初始化方法__init__里面的参数。

5 变量的用法
RF中的变量,实质上就是一个Python变量,它指向一个Python对象。
所以RF变量对应的是什么Python对象,它就是什么类型的对象。
Scalar方式(Scalar Variable)
普通用法,就是用 ${var} 的方式来表示。
特点:当我们把变量以Scalar方式传递给关键字作为参数的时候, 就是直接把它所对应的Python对象传递给关键字 对应的函数。
(List Variable)
如果RF变量实际指向一个Python List对象,
我们还可以把它以List方式传递给关键字作为参数。
List方式 是用 @{var} 的方式来表示,也把这种方式表示的变量叫做List 变量。
List方式,实际上会展开其List中的每个元素,作为多个参数传入。
Dictionary方式(Dictionary Variable)
如果RF变量实际指向一个Python Dict 对象,
我们还可以把它以Dict方式传递给关键字作为参数。
Dictionary方式 是用 &{var} 的方式来表示,
也把这种方式表示的变量叫做Dictionary 变量。
Dictionary方式,实际上会展开其Dict中的每个元素,作为多个参数传入。
访问环境变量
RF中可以用%{env_var} 方式直接访问一个环境变量,比如

6 循环
RF用 :FOR来实现循环,没有While 循环

对应的文档解释在这里
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#for-loops
RobotFramework自动化测试框架基本知识(一)
注意
 :FOR前面的冒号不能忘了,
 如果后面的是变量是个list, 一定要写成 @的形式,而不是$的形式,
 for循环体内的语句, 要缩进一个单元格, 如果是纯文本文件, 连续的空格是无法表示多个单元格的,RF会只当成一个。 所以前面还要有一个反斜杠转义,表示这边有一个空的单元格
range用法
python中,我们非常常用的有 range方法,RF也有类似的支持,
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id578
range用法
[Documentation] Loops over values from 0 to 9
:FOR ${index} IN RANGE 10
\ Log To Console ${index}

相关文章: