如何快速從 0 到 1 構建起一個公司的自動化介面
需求背景
由於自己最近剛剛換了一個新的磚廠,進入新的磚廠報導之後,當天,就被研發總監約談了,也表明當前測試團隊的現狀,由於部門是新開的部門,各種資源匱乏,介面文件嚴重缺乏,需求混亂,每次發版本之後,線上總是出現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,好的方法,提出改進意見
接下就是框架的封裝實現環節,後續上
相關文章
- 從0到1學習介面自動化測試必備知識!
- 從0-1搭建一個自動化部署平臺
- 5 步輕鬆上手,教你從 0 到 1 落地 Jmeter 介面自動化指令碼!JMeter指令碼
- 如何從 0 到 1 設計、構建移動分析架構架構
- selenium 資料驅動框架自動化從0到1--3框架
- 如何從0到1設計一個類Dubbo的RPC框架RPC框架
- 從0到1,滴滴DB自動化運維是這樣實踐的運維
- 測開新手:從0到1,自動化測試接入Jenkins學習Jenkins
- 從0到1完成一個Babel外掛Babel
- 藉助移動OA數字化辦公,如何從0到1?
- 《從0到1搭建一個IM專案》專案初始化
- 馬蜂窩 IM 移動端架構的從 0 到 1架構
- 自動化介面用例從 1 到 1000 過程中的實踐和思考
- 從0到1編寫一個指令碼引擎指令碼
- 從 0 到 1 再到 100, 搭建、編寫、構建一個前端專案前端
- 一個從0到1的webpack打包vue基礎教程WebVue
- 寫一個高度從0到auto的transition動畫動畫
- 如何從0開始做自動化測試?
- 從0到1構造連結串列
- 學習seo如何從0到1
- 如何理解敏捷開發的從0到1敏捷
- 從0到1上線一個微信小程式微信小程式
- 從0到1打造一個 WebRTC 應用Web
- 從0到1編寫一個JS指令碼引擎JS指令碼
- 教你如何搭建一個自動化構建的部落格
- iOS從0到1| OC 中如何檢查一個字串 string 是否包含另一個 stringiOS字串
- 從0到1構建上門護理
- PHash從0到1
- 【深入理解Go】從0到1實現一個validatorGo
- 從0到1實現一個簡單計算器
- (iOS)從0到Double系列 如何刻出一個可拖動的導航浮動按鈕iOS
- <<從0到1學C++>> 第3篇 從結構到類的演變C++
- 【深入理解Go】從0到1實現一個filter(middleware)GoFilter
- 三.介面自動化專案1
- 《從 0 到 1:搭建一個完整的 Kubernetes 叢集》實踐踩坑
- [譯] Flutter 從 0 到 1Flutter
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- jmeter介面自動化:登入到新增JMeter