RobotFrameWork使用变量文件

博客介绍了Robot Framework中变量文件的使用。变量文件不支持中文变量名,介绍了两种获取变量的方式,一是通过特殊函数获取,用于切换不同环境方便;二是直接创建变量,导入文件后可直接引用。还提到变量文件可用YAML格式,使用需安装PyYAML模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量文件不支持中文变量名,中文变量名引用时明明有确报错说没找到

第一种:通过特殊函数获取变量

变量文件如下test.py,这种用于切换不同环境很方便

# -*- coding: utf-8 -*-
# sys.setdefaultencoding('utf8')    python2中才需要此行

def get_variables(env = "test"):
    if env == 'test':
        # test environment
        variables = {
            "phone": "1833",
            "default_host": "http://192.1611:8086",
            "databaseurl": ["192.1.11", 3306, "root", "pa117!"],
            "UISdatabaseurl": ["192.16.14", 3306]
        }
    elif env == 'pro':
        # product environment
        variables = {
            "phone": "1591",
            "default_host": "http://pani.sv.com:886",
            "databaseurl": ["192.12.13", 8066, "root", "12456"],
            "UISdatabaseurl": ["192.1.6.14", 3306]
        }
    else:
        # back environment
        variables = {
            # urlConfig
            "mainurl": "http:",
            "phone": "1828833",
            "databaseurl": ["192.13", 8066, "root", "12456"],
            # dbConfig
            "db_trade": "",
            "db_trade_pw": ""
        }
    normal_vars = {
        "familyphone": ["1537591", "18281333", "153617", "153787", "18215704", "1234910"],
        "videocode": "a8ca72b6-56c5-49e7-a81e-a63d467fcc17",
        "liveid": "d418a2d8f20f42c0ae585c55b38c66cb"
    }  # 共用变量
    allvar1 = dict(list(variables.items()) + list(normal_vars.items()))
    # variables['normal_vars'] = normal_vars
    return allvar1

如下引用,并带上参数${env}
在这里插入图片描述

在运行用例前带上参数值,命令行形式执行也一样的参数,下面表示选择的pro分支中的参数
在这里插入图片描述

test.py中最后三行如上面这样写引用normal_vars中的变量时直接引用就行,如${liveid}就行;
如果改成下面这样

    # allvar1 = dict(list(variables.items()) + list(normal_vars.items()))
    variables['normal_vars'] = normal_vars
    return variables

此时引用normal_vars中的变量需要${normal_vars[“liveid”]}

第二种:直接创建变量

下面这种直接导入文件后引用变量就行,不需要在执行时加命令

# Can be used in the test data like ${MyObject()} or ${MyObject(1)}
class MyObject:
    def __init__(self, index=''):
        self.index = index
    def __str__(self):
        return '<MyObject%s>' % self.index

BYTE_STRING = 'Hello, world!'
UNICODE_STRING = (u'Hyv\u00E4\u00E4 y\u00F6t\u00E4. '
                  u'\u0421\u043F\u0430\u0441\u0438\u0431\u043E!')
CONTROL_CHAR = '\x01'

LIST = ['One', -2, False]
EMPTY_LIST = []
LIST_WITH_NONE = [None]
LIST_WITH_OBJECTS = [MyObject(1), MyObject(2)]
NESTED_LIST = [[True, False], [[1, None, MyObject(), {}]]]
LIST_WITH_INTEGERS = [3, -5]

DICT = {'one': 1, 'spam': 'eggs'}
EMPTY_DICT = {}
DICT_WITH_NON_STRING_KEYS = {1: 2, None: True}
DICT_WITH_NONE = {'As value': None, None: 'As key'}
DICT_WITH_OBJECTS = {'As value': MyObject(1), MyObject(2): 'As key'}
NESTED_DICT = {1: {None: False},
               2: {'A': {'n': None},
                   'B': {'o': MyObject(), 'e': {}}}}

REPLACEMENT_CHARACTER = u'\uFFFD'

第三种:YAML格式的变量文件
变量文件还可以使用 YAML 文件. YAML是一种数据序列化的标记语言, 拥有简单的语法和友好的可读性. 下面的例子展示了一个简单的YAML文件:

string:   Hello, world!
integer:  42
list:
  - one
  - two
dict:
  one: yksi
  two: kaksi
  with spaces: kolme

注解:
在Robot Framework中使用YAML文件要求安装 PyYAML 模块. 如果已经有了 pip_, 则使用下面的命令即可安装 pip install pyyaml.
Robot Framework从2.9版本开始支持YAML. 从2.9.2版本开始, 独立的JAR包安装 已经默认包含了PyYAML.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值