python:Jinja2+yaml实现动态参数替换

本文介绍了在自动化测试中如何利用Jinja2和YAML进行动态参数替换。首先讲解了Jinja2的基本用法,包括读取模板、变量替换等,然后演示了处理返回值的方法,通过yaml库将渲染结果转化为字典类型。最后,文章提供了一个渲染封装的示例,方便后续调用。
摘要由CSDN通过智能技术生成

. 引言

自动化测试中是不是遇到过动态参数替换,有些事用正则进行替换的,有些是直接调用接口取返回值直接进行赋值;下面是使用的jinja2+yaml进行参数渲染。话不多少,进入正文部分

. 小牛试刀

首先先安装jinja2,直接pip安装即可,例如:pip install 报名

安装好上述第三方包后,小试牛刀下,例如:

 1import jinja2
 2from pathlib import Path
 3
 4
 5BASE_DIR = Path(__file__).resolve().parent.parent
 6
 7FILE_PATH = Path.joinpath(BASE_DIR, "bin", "example.yml")
 8
 9with open(FILE_PATH, encoding="utf-8") as w:
10    string_var = w.read()
11
12    new_data = {"parent_id": "被替换的成功的数据-1"}
13    response = jinja2.Template(string_var).render(new_data)
14    print(response )
  • BASE_DIR是项目工程目录的根目录

  • FILE_PATH是yaml文件的路径

  • 使用上下文管理器with,结合open函数去读取yaml文件中的数据

  • 引入jinja2中的Template类读取yaml模板数据,再调用render方法进行数据替换

  • 最后print()打印替换成功的数据,运行结果展示如下:

1test_knowledge_add:
2  data_test:
3    - - knowledge_class_name: 新建知识目录
4        parent_id: 被替换的成功的数据-1
5      - title: 增加知识目录
6      - check: 1
7
8Process finished with exit code 0

. jinja2使用简介

jinja2读取模板文件中变量的标识是嵌套的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值