变量文件导入方式
- 方式一:***setting***文件中设置
*** Settings ***
Variables myvariables.py
Variables ../data/variables.py
Variables ${RESOURCES}/common.py
Variables taking_arguments.py arg1 ${ARG2}
- 方式二:命令行方式,加上–variablefile
--variablefile myvariables.py
--variablefile path/variables.py
--variablefile /absolute/path/common.py
--variablefile taking_arguments.py:arg1:arg2
以下列子都使用的方式一
yaml文件
- 编写yaml文件,保存为test.yaml
string: Hello, world!
integer: 42
list:
- one
- two
dict:
one: yksi
two: kaksi
with spaces: kolme
- 导入test.yaml并访问
*** Settings ***
Variables test.yaml
*** Test Cases ***
test_var_yaml
log ${STRING} #输出Hello, world!
log ${list}[0] #输出one
log ${dict.one} #输出yksi
变量文件
- 定义一个变量文件varfile_defvar.py
import time
IP='192.168.1.1'
PORT=['8080','8081']
test_string="test{}".format(time.time())
DICT__FINNISH = {"one": 1, "two": 2, "three": 3} #变量前添加DICT__,可把key当做属性值访问
MAPPING = {"one": 1, "two": 2, "three": 3} #只能通过${MAPPING}[one]访问,不能使用${MAPPING.one}
2.导入varfile_defvar.py并访问
*** Settings ***
Variables varfile_defvar.py
*** Test Cases ***
test varfile_defvar
log ${IP} #输出 192.168.1.1
log ${PORT}[0] #输出 8080
log ${test_string} #输出 test1615441118.7819436
log ${FINNISH.one} #输出 1
log ${FINNISH}[one] #输出 1
#log ${MAPPING.one} #报错,不能这样访问
log ${MAPPING.keys()} #输出dict_keys(['one', 'two', 'three'])
log ${MAPPING}[one] #输出 1
- 如果需要选择包含部分变量,使用__all__
以上例子中,如果varfile.py中添加上__all__=[‘IP’,‘MAPPING’ ] ,那么在test_var测试用例中 只有IP和MAPPING才能被使用,其余变量使用都会提示Variable ‘${*}’ not found.
类的方式定义
- 定义类名为varfile_class,并且保存的文件名为varfile_class.py (注意:类名和文件名必须一样)
class varfile_class():
var1='one'
var_list=[1,2,3]
_var2='two'
def __init__(self):
self.var3='three'
self.var4='var'
- 导入arfile_class.py 并访问
*** Settings ***
Variables varfile_class.py
*** Test Cases ***
test varfile_class
log ${var1} #输出one
#log ${_var2} #私有变量不能访问
log ${var4} #输出var
使用get_variables函数(或者getVariables)
- 创建Python文件,名为varfile_getVariables.py
envrionment1 = {'ipp': '192.168.1.1','port':'8080',
'usr': ['e1_user1','e1_user2']}
envrionment2 = {'ipp': '192.168.1.2','port':'8081',
'usr': ['e2_user1','e2_user2'],
'extra': 'variables1 does not have this at all'}
def get_variables(arg):
if arg == 'env1':
return envrionment1
elif arg=='env2':
return envrionment2
else:
return None
- 导入varfile_getVariables.py 并访问
*** Settings ***
Variables varfile_getVariables.py env2 #带参
*** Test Cases ***
test varfile_getVariables
log ${ipp} #输出 192.168.1.2
log ${usr}[0] #输出e2_user1
- 测试代码下载地址