在接口自动化测试的时候,yaml 文件一般放测试的数据或当配置文件使用,yaml 文件存放静态的数据是没问题的,python的数据类型基本上都是支持的。
有时候我们想在 yaml 文件中引用变量来读取 python 代码的设置值。
一:yaml文件中是静态数据,那么,我们用python可以正常的读取。
在接口自动化中,yaml文件保存测试数据。
我们可以用python语言正常的读取这些静态数据。
二:yaml文件中的数据是变量,我们如何用python语言的设置值写入到yaml文件中呢?
这样我们就可以把python中的具体值:10004352写入到了yaml文件中,替换了其中的变量值:$user
因为是返回的也是yaml.safe_load(re),意思是,返回的也是读取到的是整个yaml文件,那么我们就可以直接调用
例如:
这个yaml文件中的变量都被我们用具体的值替代了,所以我们是可以读取到内容的,
那么,返回的就是我们需要的值了。
有点拗口,也不知道将没讲清楚,大家自己练习就会明白我的思路。
使用场景:
易变的数据。例如:token值,隔几天登录就发现token值变了,而且如果我们一个一个手动的在yaml文件中修改token值,不方便,原因:几十个接口中都写死了的token值,
修改需要花费很长时间,那么,我们就在python中传新值进去。
还有一种情况,每次请求发生后,返回的值不一样。
例如:我最近做的红包接口,其中预订单的值:
envelopeNo红包编号每次返回的值都不一样,而且后面的发红包接口要调用这个值,那么发红包中的json值每次都不一样,
那么,我们就要调用这个方法,重新遍历一遍yaml文件,把我们获取
envelopeNo值的方法传入,这样我们就可以每次获取到最新的值。
我目前想到的场景就是这些,如果改动量小,改动不频繁的数据,那么,我们直接在yaml文件中修改就是了,
反之,我们就要在yaml中把这些写成变量,在实际运行中传新值。