Yaml文件中变量值的替换

遇见问题:

用yaml文件来管理接口、UI自动化测试时,用例的步骤、数据,因为每次测试需要动态变换;但是yaml文件中相关参数可能需要用变量表示,因此替换变量要怎么实现呢?

解决方法:

字符串的模板替换

实例:

测试用例登录中的用户名、密码 动态变换,如图 目录结构如下

test_case.yaml文件内容: 【需要动态替换的值用$符号标识】

  request:
    url: none
    headers:
      content-type: none
    params:
      username: ${user}
      password: ${pwd}
  assert:
    expect: none
    real: none

【首先进行yaml文件的读取,读取之后进行变量值的替换,替换后返回字典数据类型类型的值】、

【 Template 类需要传入一个字符串初始化实例对象, substitute 方法传入关键字参数或者字典,注意入参的key与yaml文件中的变量要对应起来】

from string import Template
import yaml

def yaml_template(params: dict):
    with open("test_case.yaml", encoding="utf-8") as f:
       #  f.read()读取的是yaml文件的文本格式数据(即读取出来的数据为字符串格式)
       #  这里代码的作用是将data数据替换f.read()读出来的$标识的数据---简单来说就是读取yaml文件中的数据,然后替换原数据中被$符号标识的变量,得到新的数据(此时没有生成新的对象,只是改变了数据的内容)
        re = Template(f.read()).substitute(params)
        # 返回字典格式的数据---反序列化
        return yaml.safe_load(stream=re)

if __name__ == '__main__':
    print(yaml_template({ 'user': '1', 'pwd': '123456'}))
#其中的user对应的值就是替换${user},pwd的值替换 ${pwd} ,注意user和pwd填写的就是{}里面的变量,不能随意更改

结果输出如下:

全部评论
采用csv表格,代码解析转成JSON,再替换
点赞 回复 分享
发布于 2023-04-26 17:35 广东

相关推荐

不愿透露姓名的神秘牛友
07-10 13:54
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 14:08
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务