如何快速從 0 到 1 構建起一個公司的自動化介面

欲野發表於2020-10-17

需求背景

由於自己最近剛剛換了一個新的磚廠,進入新的磚廠報導之後,當天,就被研發總監約談了,也表明當前測試團隊的現狀,由於部門是新開的部門,各種資源匱乏,介面文件嚴重缺乏,需求混亂,每次發版本之後,線上總是出現bug,環境也一直都不穩定,再加上,公司目前沒有介面自動化測試,只有1+n個的功能測試.........當時本來想幹脆還是跑路吧,但是後面想了一下,要是遇見問題就逃避,那還工作屁啊,回家種田算了吧,畢竟逃避解決不了任何問題,於是自己準備迎難而上,順便也是對自己的一種挑戰,俗話說:強扭的瓜不甜,但是我喜歡把他擰下來,並且享受擰下來的過程

當前團隊現狀

  • 功能與對應的介面需求混亂,沒有人管理,沒有歸檔沉澱
  • 當前團隊大部分是外包的功能測試,開發也是外包居多,測試沒有流程
  • 介面文件到處分善,公司因沒有做過介面測試
  • 自己剛剛入職,對公司業務的不熟悉,各種資源的缺乏
  • 開發和測試擠在一套環境裡面,測試環境沒有人搭理
  • 公司碎片化需求居多,發版頻繁等問題.....

個人解決方案

1.制定一個完善的介面測試流程,制定介面方案(出方案找領導排版)
2.申請伺服器資源,搭建測試環境,強行把開發獨立出測試環境(資源索取,搭建svn等檔案管理伺服器)
3.介面自動化技術調研,最團隊介面自動化測試技術棧的準備(準備造輪子)
4.解決介面需求文件和介面文件嚴重缺乏的問題(新環境建立之後,找研發老大強推swagger等工具)
5.框架基本模型的設計,初版需求

#框架選技術選型
經過自己的調研,最終選擇如下造輪子的基礎技術選型,後續在加入docker和對應的效能等

Python+Pytest+requests+allure+Jenkins

#介面自動化的理解
以下僅代表個人對Python+requests 介面自動化的理解,如有不對,各位大佬補充

什麼是自動化??

個人理解的自動化:
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了 測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實 際結果與期望結果的比較。
核心觀點:
在日常測試中,為了節省人力、時間或硬體資源,提高測試效率。把手工做的事情,根據我們預定設計的程式去執行,去替代原來手工測試的過程 部分的自動化,寫一個指令碼,工具,去替代一些重複的工作, 在此過程中,需要程式語言基礎 全量的自動化,難度係數比較大,成本比較高,這就是我個人理解自動化測試的概念。

自動化原則

  • 儘量是零維護成本
  • 測試資料的維護,閉環
  • 指令碼的維護簡化
  • 儘量去減少 case 之間的依賴性
  • 覆蓋全面性
  • 易理解易閱讀

介面場景考慮

自動化介面測試都是基於需求的前提,一般在會遇到以下兩種情況:
部分公司,只要做介面的正常場景一個用例就好
部分公司,需要做介面的正常場景與異常場景,分析

#輪子設計
低配版設計

#公司使用場景
1,一個人獨立完成,介面自動化,按照我自己的思維去編寫就可以
2,幾個人完成,我是做主導(溝通) :
2.1,前期做的事情:
2.2,需求的確定,計劃的確定,人員安排
2.3,搭建初步框架出來,並且告知所有的測試人員,含義
2.4,建立規則,公共方法 公共方法,自己寫好,方便其他人呼叫 其他人編寫公共方法,一定要去說明,一定因為自己這邊認可 test_case 根據人員按模組劃分
3,我只是輔助(溝通):
3.1,瞭解程式碼結構,不懂去問
3.2,再去根據分配的任務去編寫
3.3,好的方法,提出改進意見

接下就是框架的封裝實現環節,後續上

相關文章