RF官网:https://robotframework.org/
需要查看某些库的关键字,可以点击直接点击库的标题,然后进入到GitHub界面,找到keyword documentation
找到Shortcuts,就可以查看这个库的关键字了(以下是seleniumlibrary库的关键字),Shortcuts后面就是关键字的各种用法了~
RF参数类型-形参:
·必选参数
·可变参数和缺省值参数
常用关键字:
1.log-->打印在日志中
*** Test Cases ***
关键字测试
log 今天星期一
2.log to console-->打印在控制台
*** Test Cases ***
关键字测试
log to console 今天是星期一
3.log many-->打印在log中,打印多个(注意参数和参数之间至少空两个空格)
*** Test Cases ***
关键字测试
log many 今天是星期一 心情不错 上班开心吗
字符串包含多个空格的临时解决办法:比如:“今天 星期一"(该字符串有2个空格)
从第二个空格处前面用反斜杠\修饰(一个反斜杠只能修饰一个),eg:今天 \ 星期一
如果遇到这种情况,可以用python来处理
4.set variable-->定义变量
*** Test Cases ***
定义变量
${var1} set variable 今天星期一
log to console ${var1}
定义一个浮点数变量:${num} convert to number 2020
定义一个int型变量: ${int} convert to integer 2020
直接转换成整数的方法:${2020}
5.import library-->导入库
eg:import library testlib.py(只在当前用例中生效,一般不用)
6.sleep-->停几秒
sleep 3
7.should be contain
8.should be equal
*** Test Cases ***
常用关键字
#断言
${expect} set variable 2020
should be equal ${expect} 2020
should be equal as integers-->把所给的两个数转化为int型
9.should be true <conditions>
<conditions>--python表达式
*** Test Cases ***
常用关键字
#断言
${expect} set variable hello
#RF变量表示的字符串传递给python时会去掉引号
#只有在python表达式中才可以用$变量名这样型式的参数
#表达式不能有两个以上的空格
should be true 'hello'='${expect}' #所以这里要把引号加上
#或者可以直接把变量的括号去掉
should be true 'hello'=$expect
第三方库导入法:
*** Settings ***
Library testlib.py #路径导入法
Library testlib #模块导入法--遵循python导入规则
第一种不常用,若目录层级过多,容易出问题
第二种导入方法需要在执行robot文件时指定pythonpath,eg:robot -P . xxx.robot ( . 表示当前目录)
RF中的变量:
列表类型:
*** Test Cases ***
列表类型
${list} create list a b c
log many ${list} #整体传参---1个参数,输出为[a,b,c]
log many @{list} #拆包传参---多个参数,输出为 a b c 相当于 log many a b c
log many ${list}[1] #b 取列表第1项
log many ${list[1]} #b
字典类型:
*** Test Cases ***
字典类型
${dict} create dictionary a=1 b=2 c=3
log many ${dict} #整体传参---1个参数
log many &{dict} #拆包传参---多个参数
log to console ${dict}[a]
log to console ${dict['a']}
循环
*** Test Cases ***
循环1
#循环语法
FOR ${i} IN a b c d
log to console 循环体${i}
END
循环2
${list} create list a b c d
FOR ${i} IN @{list}
log to console 循环体${i}
END
循环3
#IN RANGE一定要大写,并且中间只能有一个空格
FOR ${i} IN RANGE 10
log to console ${i}
END
循环4
FOR ${i} IN RANGE 1 11
log to console 循环体${i}
END
循环5
FOR ${i} IN RANGE 2 11 2
log to console ${i}
END
#一般复杂的逻辑交给python实现,RF来调用即可
自学中。。。。。。如有不对,欢迎指出与讨论~