測試平臺開發記錄(一)
最近幾個月最主要的工作就是測試平臺開發,由於內容比較多,我計劃分幾期來討論。
提到“測試平臺”測試會覺得比較高大上,其實就是“xx測試管理系統”,既然是一個管理系統,又是主要服務於測試的,所以,主要功能就是:管理接口、性能測試腳本、功能測試腳本,運行測試,生成報告、自動發郵件等。
我在之前發的一篇文章中有探討過,僅僅是做接口自動化測試,是否有必要做成測試平臺,我們測試框架一樣可以完成這些工作。不過,這就要求每位測試都有很強的開發能力。當然,我們測試平臺不僅僅服務於測試,還服務於開發。這個是我稍微會詳細介紹。
項目背景:
這一次的平臺開發並非從零開始的,在我和另一個妹子加入公司之前,已經有一位測試開發的同事開發了接口測試系統和性能測試系統。
接口測試系統沒怎麽用起來,因為接口測試的創建和維護不太放方便的。這個會在後面的文章中詳細探討。 但是,性能測試系統一直用的還不錯。
當我們三個測試開發組成了一個小組後,老大希望做一個規範的測試平臺出來。
舊的系統由python + django框架完成後端的接口,由jQuery 來完成頁面的開發。
新的測試平臺:
首先,是平臺的技術選型,後端依然采用Python + Django框架完成接口的開發,前端使用Vue.js + element UI庫。這種全完的前後端分離,使系統架構變得更加清晰,Django的模板語言本來就弱雞,當然可以引用jQuery、bootstrap這樣的前端庫來完成頁面開發。不過,考慮到後端接口數據會有更多應用。再加上前端框架的大熱,於是選擇Vue.js來做前端開發,element這類基於Vue.js 的UI庫已經把大多功能組件化,現成的組件拿來用就好,很大的減少了工作量,否則完全自己調CSS樣式是一個很大的工作量。
老大的話是,你們要把自己當全棧工程師,為此我差點給Vue.js跪了。因為Vue.js的開發模式和傳統的前端開發(HTML+JavaScript+CSS)完全不同。它以是組件化的方式開發頁面。我看了三天都沒完全理解Vue.js。不過,還是學會了,人被逼一下都進步的很快。我從三天寫一個組件到現在一天寫三個組件。
其次,為平臺定調,隨便做做,把功能給實現了和從用戶角度出發,考慮界面風格統一;從易性出發,考慮使用體驗是兩碼事。所以,我們的測試平臺是為了“方便”別人,“麻煩”自己,不然,它就失去了存在的價值。
老大的話是,你們要知道做的東西是給別人用的,別人都覺得不好用,沒人用,做它有什麽用?為此,專門找到了設計的同事幫我們設計了一套原型圖,整個系統按照原型圖去開發。
最後,是協作開發,一人開發和多人開發是不一樣的,做過開發的才會有所體會。項目目錄如何劃分,文件、類、方法如何命名,開發功能模塊如何劃分。所以,我們每天早上開個小會匯報手上的進度,遇到困難也會拿出來討論。下班前的一個小時要提交代碼和合並代碼。
關於合並代碼我也遇到一個抗,差一點寫了一天半的代碼找不回來了,幸好Git很強大。任何誤操作都可以“反悔”。
接口管理
首先,開發有自己的方式管理接口,而且也有他們自己習慣編寫接口的方式。尤其是接口非常多了以後,他們並不願意再重新跑到你的平臺上按照提供的模板重新整理一遍接口。而且,每次接口變更後,都要在你的系統上更新。
前面說過,要想你的平臺給別人用,一定是為了方便“別人”,“麻煩”自己。
經過分析,開發的接口由一個文檔維護,裏面通過Json格式編寫接口文檔,因此,經過溝通由開發提供一個接口,可以一次獲取所有接口信息。然後,我們解析拆分出每一個接口,保存到自己的數據庫中。當兩邊的接口信息發生變化時進行同步。也就是說,開發可以繼續維護他們的接口文檔,也可以登錄測試平臺維護。
說了這麽多!接下來show功能環節。測試平臺可以直接使用公司郵箱登錄。
接口的編輯,可以通過測試平臺修改接口信息:
接口評論功能,主要給並前端開發使用,如果覺得後端的接口文檔寫得不規範。可以進行評價。
當接口被修改後,你可以查看兩個版本之間修改了什麽。
當然,你還可以關註該接口,當接口發生變化時,可以收到郵件。主要給測試和前端開發使用。
PS: 本文首發於“測試圈TC” 公眾號。
測試平臺開發記錄(一)