關於自動化測試平臺搭建的初步構想
一.前言
測試平臺可以理解為一個測試管理平臺,主要用WEB來進行實現,方便其他人統一工作,方便公司統一管理,可以提高公司效率。該平臺主要是為測試服務,但不僅為測試提供服務。一切的出發點都是為了提高工作效率,減少公司成本,為公司提供一個更加愉快的工作環境。
二.為什麼需要測試平臺
目前,很多小公司或者較大一點的公司,測試完全是基於功能測試,如果只是進行功能測試則可以直接使用開源的專案質量管理軟體(例如:禪道)即可。如果進行介面、UI自動化測試、效能方面的測試,則可有考慮自己搭建測試平臺。下面就以介面測試為例,介面測試一般抓包後需要進行訊息體的構造,有人喜歡用postman工具直接儲存介面,有人喜歡直接使用fiddler等其他的工具,這樣不同的測試人員各自工具不統一、各自用例也不統一。前者新人來了接手工作可能需要學習新的工具,雖然時間短但也是成本的消耗,後者如果本地機器出現了問題可能所有用例都沒有了。既消耗了公司的成本又導致部門管理不規範。
如果搭建一個統一的平臺就可以解決上述問題,例如直接在WEB介面上直接將訊息體複製進來即可完成介面測試並新增額外的資料校驗功能,各個介面各個場景測試通過後直接將內容儲存到資料庫中。這樣,1是程式碼集中統一管理了;2是要求低,對操作人員低,任何人只需要按照格式進行訊息體的構造就可以進行介面測試;3是所有人只要有相應的許可權即可共享用例,方面測試人員相互交流學習,也可發現問題並完善用例;4是提高了工作效率;5是相比較已有的開源工具,可以隨意擴充套件。
文章以介面測試為例簡述搭建測試平臺的思路。我們知道,介面是程式的最重要的一部分,而介面測試相對於效能和功能來說可能也是比較簡單的。我們只需要理解介面協議,看懂介面文件,熟悉使用者使用場景,理解使用者的表面需求和隱性需求,我們就可以設計出各種各樣的介面測試用例,並可以與開發工作同時進行。
三.怎麼做
既然是自己搭建平臺進行介面測試,個人認為WEB是最好的選擇,我們只需要部署好服務端,客戶端可以直接訪問不用像其他應用程式一樣需要在每臺客戶端安裝其他軟體。
使用HTML/CSS鋪一個介面,保證可以輸入URL、RequestBody及對應的請求方式即可,這樣後臺接受前端傳來的資料進行解析並拼接(後臺的處理主要看前端傳參的形式,最好是事先定義好規範)。後端將處理好的引數傳送到相應的伺服器,並接收響應的返回值返回給前面並在介面上顯示即可。這樣一個最簡單的介面測試流程就完成了。如圖所示:
四.如何完善
前面只是一個簡單的介面測試的過程,只能說可以完成介面測試功能,但是和其他測試工具相比並不能體現出平臺的優勢,如何保證平臺的優勢呢?
介面返回後,必須需要自動進行相關引數的校驗,1是返回狀態或返回值的校驗;2是相關資料庫資料的校驗;這些工作均可以在頁面完成,如果是返回狀態或返回值的校驗可以直接用一個json格式來指定需要校驗的欄位及對應的值(值可以是變數)。如果是需要校驗資料庫則可以通過表單的形式來完成,表單內需要校驗的值可以是任意的,例如:可以是入參的值;可以入參處理後的值;可以使用正則來校驗資料庫值的型別(有些要求有值即可,有些要求是字母、數字;有些要求包含某些指定的值;可以指定查詢條件(where或in等等)……
這樣,只需要定義好格式就可以完成從請求到返回結果校驗的全過程了。
五. 如何擴充套件
如果只包含介面測試就稱之為測試平臺,則有些大題小做了。個人認為,測試平臺既能通過WEB頁面完成相關的測試還應該能定時自動執行指定的用例(當人多,機器自然不足時,可以指定用例在半夜來自動跑用例);可以在程式碼釋出之前進行檢測程式碼的質量,只有當代碼只能滿足指標時才允許釋出;可以將各個專案的公用測試工具(例如mock訊息)都可以包含進平臺中,這樣所有人都可以直接使用…
只有想不到的,沒有做不到的。前提是成本低、效率高,不能只是為了平臺化而刻意平臺。
六.歡迎關注作者公眾號