8s yaml 配置生成_接口测试框架实战(六) | 配置的数据驱动
《Python 測試開發實戰進階》課程,4?個月挑戰 BAT 大廠年薪 50W+ Offer,文末加群!
在實際工作中,為了便于維護,對于環境的切換和配置,通常不會使用硬編碼的形式完成。在之前文章《多環境下的接口測試》中,已經介紹了如何將環境的切換作為一個可配置的選項。本文會把這部分內容進行重構,使用數據驅動的方式完成多環境的配置。
環境準備
參考《多環境下的接口測試》,將環境配置部分改為數據驅動的模式:
代碼如下:
#把host修改為ip,并附加host headerenv={
"docker.testing-studio.com": {
"dev": "127.0.0.1",
"test": "1.1.1.2"
},
"default": "dev"
}
data["url"]=str(data["url"]).replace(
"docker.testing-studio.com",
env["docker.testing-studio.com"][env["default"]]
)
data["headers"]["Host"]="docker.testing-studio.com"
實戰演示
依然以 YAML 為示例,將所有的環境配置信息放到 env.yml 文件中。如果怕出錯,可以先使用 yaml.safe_dump(env) 將 dict 格式的代碼轉換為 YAML。
如下所示,打印出來的,就是成功轉換 YAML 格式的配置信息:
def test_send(self):env={
"docker.testing-studio.com": {
"dev": "127.0.0.1",
"test": "1.1.1.2"
},
"default": "dev"
}
yaml2 = yaml.safe_dump(env)
print("")
print(yaml2)
將打印出來的內容粘貼到 env.yml 文件中:
docker.testing-studio.com:dev: "127.0.0.1"
test: "1.1.1.2"
level: 4
default:
"dev"
將環境準備中的代碼稍作修改,把 env 變量從一個典型 dict 改為使用 yaml.safe_load 讀取 ?env.yml:
# 把host修改為ip,并附加host headerenv = yaml.safe_load(open("./env.yml"))
data["url"] = str(data["url"]).\
replace("docker.testing-studio.com",
env["docker.testing-studio.com"][env["default"]])
data["headers"]["Host"] = "docker.testing-studio.com"
如此一來,就可以實現使用數據驅動的方式,通過修改 env.yml 文件來直接修改配置信息。
每日一問
關于測試的數據驅動,你有沒有遇到過令你印象深刻的難題,或者可分享的實戰經驗?歡迎在評論區留言。
更多接口測試框架實戰進階內容,我們在后續文章分享。關注 「霍格沃茲測試學院」公眾號,獲取更多測試開發干貨內容。
推薦學習
霍格沃茲出品?《測試開發實戰進階》課程,資深測試架構師、開源項目作者親授?BAT 大廠前沿最佳實踐。4 個月 20+ 項目實戰強化訓練,帶你一站式掌握 BAT 測試開發工程師必備核心技能(對標阿里P6+,年薪50W+)!學員直推?BAT 名企測試經理,普遍漲薪 50%+!
?15 期熱招中,入群獲取完整大綱?
Python 測試開發實戰進階,挑戰阿里P6+,年薪50W+!
接口測試框架實戰(五) |?測試數據的數據驅動
接口測試框架實戰(四) |?通用?API 封裝實戰
接口測試框架實戰(三) |?APIObject 模式、原則與應用
接口測試框架實戰(二) | 搞定多環境下的接口測試
接口測試框架實戰(一)?|?流程封裝與基于加密接口的測試用例設計
干貨 | 一文搞定?pytest 自動化測試框架(一)
干貨 | 一文搞定?pytest 自動化測試框架(二)
Python 自動化測試(三): pytest 參數化測試用例構建
Python 自動化測試(四):數據驅動
Python?自動化測試(五):?Pytest?結合?Allure?生成測試報告
干貨?|?一文搞定?Linux?常用高頻命令
戳“閱讀原文”,提升自己的核心競爭力吧!總結
以上是生活随笔為你收集整理的8s yaml 配置生成_接口测试框架实战(六) | 配置的数据驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: js数组再倒数第二个添加元素_归纳JS中
- 下一篇: 有多个python版本_python 多
