接口自動化框架設計漫談V1.0

你好,我是剛哥。
針對“pytest搭建接口自動化框架”,談談對框架設計的當前認知。
簡約至上。選擇pytest就是選擇Python,Python的設計理念是Simple is better than complex,不能讓初學者直接上手的框架設計,都是在反其道而行之。所謂具備編程思想的自動化框架,並不值得追求。
原生用法。Beautiful is better than ugly,能不封裝就不封裝,不改變依賴庫的函數聲明,函數名、入參列表、返回類型。通過可省參數追加入參,通過裝飾器添加代碼,通過猴子補丁更改行爲。
數據用例一體。Flat is better than nested,平鋪比嵌套更容易編寫,閱讀,維護。將數據放在用例文件中,在單個文件中編寫用例。數據驅動時,可從外部讀取。變量管理亦是如此。
pytest提供了測試框架的基礎骨架,Python庫提供了各式各樣的組裝零件,我們要做的是拼湊,搭建適用於接口自動化測試的框架。
宜輕不宜重。挑選Python庫,優先選擇輕量級的,比如pytest-html既能滿足使用需要,又能定製化樣式,就不用安裝依賴Java環境的Allure。比如Python內置logging就能打印日誌,就沒必要非得使用依賴visual c++的loguru。
用例獨立。用例相互之間沒有依賴,隨便拉出一條用例就能執行。多接口場景用例,把每個接口視爲一個測試步驟,排列在用例裏面。無上游依賴、出參穩定的接口抽取爲公共函數。簡單來說,用例可以只包含一個接口,也可以包含多個接口。接口可以寫在用例裏面,也可以寫在用例外面作爲公共函數,再導入到用例裏面。接口參數不同驗證不同場景,複製用例文件,命名爲新用例。
中文命名。用代碼編寫pytest,有個缺點是文件命名晦澀難懂。在“用例獨立”這條設計原則之上,可以採用中文命名用例集(文件夾)和用例名稱(文件名)。不存在用例相互依賴,就不需要import,代碼中就不會出現中文,不影響代碼執行和“專業性”。用中文寫註釋沒問題,不要用中文作爲對象名。
標記不如目錄。pytest支持marker給測試用例打標,執行時按標記篩選用例執行。用例多了以後,維護標記變得麻煩。將用例集按照某種特性分組,比如基礎自動化用例集、每日巡檢用例集、聯調用例集。按目錄維護用例,按目錄批量執行用例。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章