如果你还想从头学起Robot Framework,可以看看这个系列的文章哦!

​https://blog.51cto.com/u_12020737​​​

 

什么是用户关键字

  • 类似 Python 里面的函数,我们自定义函数,等于我们自定义关键字,也称为用户关键字
  •  *** Keywords *** 表放的就是用户关键字

 

定义用户关键字的简单栗子

Robot Framework(11)- 用户关键字的详解_Robot Framework教程

等价于 Python 里面:定义函数,调用函数



def add(a, b):
return a + b


if __name__ == '__main__':
print(add(1, 1))


 

*** Keywords *** 表中的设置项

  1. [Documentation]
  2. [Tags]
  3. [Arguments]
  4. [Return]
  5. [Teardown]
  6. [Timeout]

Robot Framework(11)- 用户关键字的详解_Robot Framework_02

 

用户关键字的参数详解

  • 参数通过 [Arguments] 设置, 参数名称的语法格式和 变量 一样, 如  ${arg} 
  • 其实用户关键字的参数列表就等同于 Python 函数的参数列表,只是写法变了而已

位置参数

Robot Framework(11)- 用户关键字的详解_Robot Framework_03

等价于 Python

其实就是最简单的函数声明了



def one(arg1):
print(arg1)


def Three(arg1, arg2, arg3):
print(arg1)
print(arg2)
print(arg3)


 

默认值参数

Robot Framework(11)- 用户关键字的详解_Robot Framework教程_04

测试结果

Robot Framework(11)- 用户关键字的详解_Robot Framework_05

等价于 Python 

就是给参数设置默认值嘛,看 Python 代码的话应该很好理解吧;不过要注意 Python 函数的参数间不可以想相互赋值



def onedefault(arg="默认值"):
print(arg)


default = "默认默认值"


def threedefault(a, b="a", c=default):
print(a)
print(b)
print(c)


重点知识点

默认值的语法是对空格敏感的,等号 ​​=​​ 前面不允许有空格,而=后面的空格则被视作默认值的一部分

 

可变参数

用 @{args} 声明参数时,就是代表可变参数,可以接受不定数量的参数,跟 Python 的可变参数一个意思 

Robot Framework(11)- 用户关键字的详解_Robot Framework教程_06

测试结果

Robot Framework(11)- 用户关键字的详解_Robot Framework技巧_07

等价于 Python



def args_one(*args):
for i in args:
print(i)


def args_default(a, b=1, *args):
print(a)
print(b)
for i in args:
print(i)


 

关键字参数

用  &{args} 声明参数时,就是代表关键字参数,可以接受不定数量的关键字参数,跟 Python 的关键字参数一个意思 

Robot Framework(11)- 用户关键字的详解_Robot Framework教程_08

测试结果

Robot Framework(11)- 用户关键字的详解_Robot Framework技巧_09

等价于 Python



# 关键字参数
def kwargs_demo(arg, **kwargs):
print(arg)
for k, v in kwargs.items():
print(k, v)