在接口自動化測試的時候,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中把這些寫成變量,在實際運行中傳新值。