. 引言
自动化测试中是不是遇到过动态参数替换,有些事用正则进行替换的,有些是直接调用接口取返回值直接进行赋值;下面是使用的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读取模板文件中变量的标识是嵌套的