前言
在接口自动化测试的时候,yaml 文件一般放测试的数据或当配置文件使用,yaml 文件存放静态的数据是没问题的,python的数据类型基本上都是支持的。
有时候我们想在 yaml 文件中引用变量来读取 python 代码的设置值。
template 使用
template 是字符串模板,用于替换字符串中的变量,是 string 的一个类引用变量有 2 种格式
variable使用变量名 引用变量
variable使用{变量名} 大括号包起来
第一种 $variable
第二种
v
a
r
i
a
b
l
e
!
[
在
这
里
插
入
图
片
描
述
]
(
h
t
t
p
s
:
/
/
i
m
g
−
b
l
o
g
.
c
s
d
n
i
m
g
.
c
n
/
20210526143959771.
p
n
g
?
x
−
o
s
s
−
p
r
o
c
e
s
s
=
i
m
a
g
e
/
w
a
t
e
r
m
a
r
k
,
t
y
p
e
Z
m
F
u
Z
3
p
o
Z
W
5
n
a
G
V
p
d
G
k
,
s
h
a
d
o
w
1
0
,
t
e
x
t
a
H
R
0
c
H
M
6
L
y
9
i
b
G
9
n
L
m
N
z
Z
G
4
u
b
m
V
0
L
0
x
v
d
m
V
f
U
G
9
s
Y
X
J
p
c
w
=
=
,
s
i
z
e
1
6
,
c
o
l
o
r
F
F
F
F
F
F
,
t
7
0
)
∗
∗
s
a
f
e
s
u
b
s
t
i
t
u
t
e
使
用
∗
∗
上
面
的
方
式
只
能
严
格
的
匹
配
变
量
,
当
字
符
串
中
有
{variable} ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526143959771.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xvdmVfUG9sYXJpcw==,size_16,color_FFFFFF,t_70) **safe_substitute使用** 上面的方式只能严格的匹配变量,当字符串中有
variable![在这里插入图片描述](https://img−blog.csdnimg.cn/20210526143959771.png?x−oss−process=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xvdmVfUG9sYXJpcw==,size16,colorFFFFFF,t70)∗∗safesubstitute使用∗∗上面的方式只能严格的匹配变量,当字符串中有符号,不想匹配变量的时候,会报错
这段,$符号加在My的前面,我只想让它是一个普通的字符串,不想引用变量,就出现了报错说找不到这个key
Template 里面还有一个 safe_substitute 的方法,可以忽略匹配不到的变量
虽然字符串定义了多个变量,但是引用的时候只给了name这个值,也不影响运行,没给值的当普通字符串出来,这样就很完美了
yaml 文件引用变量
通过前面 Template 的基础使用,已经掌握了基本的用法了,接下来在 yaml 文件中引用变量
python读yaml文件代码
运行结果
这样 yaml 文件就能引用到 python 的变量了