Robot Framework 与unittest(python)一致的地方
Robot Framework | unittest(Python) |
Test Project | 同左 |
Test Suit | 同左 |
Test Cas | 同左 |
ride建测试用例步骤:
完整的关键字,可以查看官方文档:http://robotframework.org/robotframework/latest/libraries/BuiltIn.html
1. “Set variable”关键字来定义变量
2. log 关键字就是编程语言里的“print”一样,可以打印任何你想打印的内容
log关键字只可以接收一个参数,而log many 关键字可以同时接收多个参数。
3. 强大的“Evauate”关键字。可以调用 Python 中的方法
4. “Import Library”导入库,导入模块,导入框架。举例:第三方py文件里面定义了add方法,可以用Import Library导入后引用add方法
Robot Framework 把 4和 5 当前两个字符串。所以 4 和 5 拼接起来是 45。我们可以将 4 和 5 转化成 int 类型,再调用 add,结果是9。
5.“Catenate”关键字,SEPARATOR关键字指定分隔符, 连接多个对象
${str1}= | Catenate | hello | world | |
${str2}= | Catenate | SEPARATOR=--- | hello | world |
${str3}= | Catenate | SEPARATOR= | hello | world |
6. get time”关键字,不带参数返回当前时间 2019-04-03 14:44:02,“,带参数可以返回:年,月,日,小时,分钟,秒
7. sleep”关键字,不带参数默认休眠单位:秒.,可以指定参数: 1 day 2 hours 3 minutes 4 seconds 5milliseconds or 1d 2h 3m 4s 5ms。第2个可选参数是reason说明休眠的原因的
8. “Comment”关键字用于设置脚本中的注释。也可以像 Python 一样使用“#”号进行注释
参考文档:https://blog.csdn.net/CCGGAAG/article/details/77720435
变量可以在命令行中设置,通过命令行设置的变量是全局变量,对其所有执行的用例都有效。它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量。
举例:
--variable EXAMPLE:value
--variable HOST:localhost:7272
--variable USER:robot
--variable ESCAPED:Qquotes_and_spacesQ
--escape quot:Q
--escape space:_
Robotframework提供了三种变量类型来供选择,一种单个数据 Scalar、一种是列表List、一种是字典Dictionary.
一般来说我们对于一些会被反复使用、不会经常变动、会从不同的模块里调用的数据,我们要创建全局变量来随时引用,并且,比如网址、xpath路径、测试数据等;
而那些临时的数据,需要随时获取、值不固定、临时存储的数据,比如说从网页获取的标题、某个元素的文本等,我们可以直接在case中临时创建。
$:定义scalar变量;@定义list变量;&定义dict变量;
$还用来取值,包含scalar, list和dict变量,如下example所示
9 定义字典create dictionary
Starting test: RobotFrameworkWebDemo.Login Tests.0403.keywordtest
20190403 23:41:32.247 : INFO : &{dict1} = { key=value | foo=bar }
20190403 23:41:32.251 : INFO : &{dict2} = { key=value | foo=bar }
20190403 23:41:32.253 : DEBUG :
Argument types are:
20190403 23:41:32.255 : INFO : &{dict3} = { 1=2 | key=value | foo=new }
20190403 23:41:32.259 : DEBUG :
Argument types are:
Ending test: RobotFrameworkWebDemo.Login Tests.0403.keywordtest
10. 定义列表
Get Element Size关键字举例:
Selenium2Library截图如下
AppiumLibrary截图如下
${a} |
Set variable |
2 |
|
|
${b} |
Set variable |
5 |
|
|
run keyword if |
${a}>=1 |
log |
a大于1 |
|
... |
ELSE IF |
${b}<=5 |
log |
b小于等于5 |
... |
ELSE |
log |
上面两个条件都不满足 |
|
首先定义两个变量a ,b 分别为 2 和5 。
run keyword if关键字,如果条件成立,则 输出 “a大于1 ”;
... else if关键字, 如果条件成立,输出 “b小于等于5”;
... else 关键字,上面的条件都不满足,输出“上面两个条件都不满足”。
备注:注意sele if 和else前面的三个点点点(...)
循环1
:FOR |
${i} |
in range |
10 |
|
log |
${i} |
|
循环变量i 从0 到9 循环10次。
循环2
@{a} |
create list |
aaa |
bbb |
:FOR |
${i} |
in |
@{a} |
|
log |
${i} |
|
@{a} 定义为一个字符串列表。通过in 可遍历非整型(in range)