变量与常量:
1.变量(建议局部变量使用小写字母表示、全局变量使用大写字母表示):
变量标识符:采用“变量标识符($、@、&、%)+{ } + 变量名 ”表示,其中,变量名可以使用任何字符表示,如英文字符、特殊字符、中文字符。
变量声明:只需要初始化即可,无需声明。
变量分类:Scalar标量类型、List列表类型和Dictionary字典类型。
变量作用域:默认情况下只在当前作用域有效,但可以通过关键字Set Global Varible、Set Suite Variable和Set Test Variable来改变变量的作用域。
2. 常量:
常量分为环境常量、数值常量、特殊字符常量、系统保留常量。其中除环境变量使用 % 表示,其余的都用 $ 表示。
环境常量:%{value},指向的值必须是字符串类型的,如打印输入PATH。
数值常量:在RF中所有的字符都会被当成字符串,即使变量的值是数值,默认也当做字符串,如需表示数值就需要用到数值常量。数值常量常用来创建整型和浮点。如${float} set variable ${3.14} 和 ${int} set variable ${80}
特殊字符常量:主要有${/}、${:}、${EMPTY}、${SPACE}、${False}、${True}、${None}、${null},特殊字符常量并不区分大小写。其中${EMPTY}和${SPACE}用与创建空字符串和空格变量。@{EMPTY} :空列表 &{SPACE} :空字典
变量作用域:默认情况下,变量指的时一个局部变量,变量定义的位置决定了该变量的初始作用域。
变量作用域:
Set Global Variable: 设定全局级变量
Set Suite Variable: 设定Test Suite 级变量
Set Test Variable: 设定 Test Case 级变量
内置变量与自动变量:
内置变量:
1. 操作系统相关变量
${CURDIR}:获取当前所在目录的绝对路径
标量变量、列表、字典定义和使用:
标量变量:${Scalar}
列表:@{list} 使用log ${list}打印会打印全部值,而log many @{list}打印会一个一个打印
@{list02} create list a b c
@{list03} set variable d e f
字典:&{din}
Log ${num2}
Log Many &{num2}
${name} get from dictionary ${dinct} name
log ${name}
log &{dinct}[age]
log ${dinct.sex}
关键字Arguments:
带参数关键字、不带参数关键字、带默认参数的用户关键字(可以赋值也可以置空)
1. 创建资源文件-创建关键字文件-输入内容
2. 测试套件中导入资源文件(Resource)
3. 测试用例中直接引用关键字名称
4. 赋予返回值
注:如果某一个参数被设置成为了选填参数,那么它后面的参数都必须是选填参数,不能为必填参数
带列表参数:需放到最后一位,且只能定义一个列表参数
例,${name} | ${message} | ${defalut}='默认值' | ${no}= | @{list}
TearDown关键字:可以调用系统关键字和用户关键字,多个参数之间使用 | 分隔
Return关键字:用法与TearDown类似,两者同时存在时TearDown执行优先级高于Return
IF分支结构:
Run Keyword IF 条件1 do action1
... ELSE IF 条件2 do action2
... ELSE DO ACTION N
注: !=也可以使<>表示;推荐使用!=
例:
${chengji} set variable 100
run keyword if ${chengji}==100 log 太棒了!
... ELSE IF ${chengji} > 80 and ${chengji} < 90 log 很好
... ELSE log 加油哦
For循环:
Exit For Loop If:当某些情况时跳出循环。可以用于周期校验,符合即跳出,减少等待时间。
1、当判断对象为数字时,不加引号
- Exit For Loop If ${podCount}==0
2、当判断对象为字符串校验时,加上引号
- Exit For Loop If ‘${dockervm_phase}’==’Running’
FOR-IN-ZIP循环:关键字循环
例, @{numbers} create list 1 2 3
${list} create list a b c
FOR ${index1} ${index2} IN ZIP ${number} ${list}
Log ${index1}-${index2}
获取列表变量元素值:使用${变量名[i]}或@{变量名}[i]访问元素
标签的使用:
Pybot -i moke xxx.robot 执行
Pybot -e num1 xxx.robot 不执行
Pybot -i moke xxx.robot -e num1 xxx.robot 执行moke,不执行num1的标签
注:可以使用正则表达式进行匹配且标签不区分大小写,优先级 AND>OR>NOT