天天看點

接口測試架構實戰(六) | 配置的資料驅動環境準備實戰示範每日一問

本文節選自霍格沃玆測試學院内部教材,文末連結進階學習!

在實際工作中,為了便于維護,對于環境的切換和配置,通常不會使用寫死的形式完成。在之前文章

《多環境下的接口測試》

中,已經介紹了如何将環境的切換作為一個可配置的選項。本文會把這部分内容進行重構,使用資料驅動的方式完成多環境的配置。

環境準備

參考

,将環境配置部分改為資料驅動的模式:

代碼如下:

#把host修改為ip,并附加host header

env={
    "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 header
env = 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

檔案來直接修改配置資訊。

每日一問

關于測試的資料驅動,你有沒有遇到過令你印象深刻的難題,或者可分享的實戰經驗?歡迎在評論區留言。

更多接口測試架構實戰進階内容,我們在後續文章分享。

更多技術文章分享及測試資料

繼續閱讀