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 广东

相关推荐

MGlory:我当初有一个老师告诉我简历要写的简单,最好只一面,项目可以写核心的,进面了自然会问你的
点赞 评论 收藏
分享
ALEX_BLX:虽然说聊天记录不可信,不过这个趋势确实如此但我觉得也要想到一点就是卷后端的人里真正有“料”的人又有多少,我说的这个料都不是说一定要到大佬那种级别,而是就一个正常的水平。即使是现在也有很多人是跟风转码的,2-3个月速成后端技术栈的人数不胜数,但今时不同往日没可能靠速成进大厂了。这种情况就跟考研一样,你能上考场就已经打败一半的人了
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务