创建变量
# test.py
from robot.api import TestSuite
suite = TestSuite('Activate Skynet')
suite.resource.variables.create("${create_var}", "test")
导入库
# test.py
from robot.api import TestSuite
suite = TestSuite('Activate Skynet')
# 已安装
suite.resource.imports.library('OperatingSystem')
suite.resource.imports.library('RequestsLibrary')
# 自己创建的库, 支持相对路径
suite.resource.imports.library('/xxx/xxx/xxx.py')
suite.resource.imports.library('./xxx/xxx.py')
传入关键字参数
# 假设有一个关键字如下
# keywords.py
@keyword("keyword_arguments_test")
def test_keyword_arguments(first, **kwargs):
'''
必须传入second这个关键字参数
'''
args = kwargs.copy()
second = args.pop('second', None)
if not second:
raise Exception("Need second argument")
logger.info("First: {}\nSecond: {}".format(first, second))
# test.py
suite.resource.imports.library('./keywords.py')
test = suite.tests.create('Should Activate Skynet', tags=['smoke'])
# pass
test.keywords.create('keyword_arguments_test', args=[
'first_param', "second={}".format('second_param')])
# fail
test.keywords.create('keyword_arguments_test', args=['first_param'])
处理字符串中的等号
需要反斜杠处理特殊字符: =
# 假设有一个关键字如下
# keywords.py
@keyword("escape_equal")
def test_escape_equal(alias, uri, **kwargs):
'''
If uri had symbol: =, robot will think it's keyword
Example:
uri = '/api/test/?link=/view'
robot will think: /api/test/?link was a keyword, will failed
'''
pass
# test.py
# fail
test.keywords.create('escape_equal', args=[
'alias', '/api/test/?link=/view'])
# pass
test.keywords.create('escape_equal', args=[
'alias', '/api/test/?link\=/view'])
setup/teardown中设置多个已有关键字
# keywords.py
@keyword(name='this_is_a_simple_setup')
def simple_setup(suite):
bi = BuiltIn()
bi.run_keyword('Set Environment Variable',
'SUITESKYNET', 'activated')
bi.run_keyword(
'Environment Variable Should Be Set', 'SUITESKYNET')
# test.py
# 导入关键字文件
suite.resource.imports.library('./keywords.py')
# 直接使用, 声明type=setup, teardown
suite.keywords.create('this_is_a_simple_setup', args=[suite], type='setup')
持续更新ing