robotframework使用变量文件的几种方式

变量文件导入方式

  • 方式一:***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文件

  1. 编写yaml文件,保存为test.yaml
string:   Hello, world! 
integer:  42
list:
  - one
  - two
dict:
  one: yksi
  two: kaksi
  with spaces: kolme
  1. 导入test.yaml并访问
*** Settings ***
Variables         test.yaml
*** Test Cases ***
test_var_yaml
    log    ${STRING}   #输出Hello, world!
    log    ${list}[0]   #输出one
    log    ${dict.one}   #输出yksi

变量文件

  1. 定义一个变量文件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.

类的方式定义

  1. 定义类名为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'
  1. 导入arfile_class.py 并访问
*** Settings ***
Variables          varfile_class.py
*** Test Cases ***
test varfile_class
    log     ${var1}  #输出one
    #log     ${_var2} #私有变量不能访问
    log     ${var4}		 #输出var

使用get_variables函数(或者getVariables)

  1. 创建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
  1. 导入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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值