致敬社群開源介面平臺並二次開發

面對疾風吧發表於2020-08-16

背景

  • 由於年初開發了UI測試平臺https://testerhome.com/topics/23434, 反響不錯,於是這段日子開始著手介面平臺的開發,社群裡有很多開源並且成熟的平臺,所以我選擇了和我技術棧一樣的python+DRF+elementUI。原作者連結https://testerhome.com/opensource_projects/37。為什麼從眾多專案中選擇這個呢,首先大前提是技術棧一樣,我便於二次開發。另一個原因就是,這個平臺的顏值、佈局、設計都是一流水準,實在太佩服作者將這麼好的平臺開源給大家了。

於是我開始搭建並體驗這個平臺,他的優點如下

  • 佈局優美,設計優雅,程式碼可維護性強
  • mock功能,支援swagger匯入
  • 自帶介面文件,編寫自動化介面用例時,可以從介面文件匯入
  • 測試報告優美,好看,眾多優點大家可以去體驗下

由於作者不再進行維護了,一些想要的功能只能自己來搞了,我二次開發了以下的功能

  • 由於自帶的swagger匯入跟公司的swagger格式不符合,導致匯入失敗,我進行了調整,並且匯入後會自動分組
  • 原來的定時任務功能只支援在linux上部署,並且還要放到特定的資料夾下,易用性不高,我在此做了調整,windows、linux都可以用,並且有定時計劃可以看到任務下次執行的時間
  • 原平臺沒有一個執行專案所有用例的功能,通過研讀程式碼,加上了‘執行全部的功能’
  • 經過再次體驗,發現每個介面都要在頭部寫token驗證,於是做了配置化(登入名、密碼、url)來自動獲取token,不用每次都要手動去關聯登入介面來獲取token了
  • 於此同時,在我們使用平臺的時候,很多用例或者介面只需要複製 並且修改下就可以了,對此我加入了複製用例、複製介面的功能,大大提高了維護的效率
  • 原平臺功能的關聯是預設儲存了返回值最外層的key,以至於想關聯多層巢狀的時候,沒辦法滿足。於是我修改了關聯邏輯,不自動生成關聯需要的key值了。讓使用者通過jsonpath來自己找,沒接觸過jsonpath的不要緊哈,只需要記住$..data,類似這樣的幾乎通吃了,語法很簡單。
  • 在從返回值做關聯之後,發現有些場景還需要從之前的介面的請求引數裡拿資料,以此來關聯,於是我又做了叫做‘引數關聯’的功能
  • 至此改造後,基本可以滿足公司對介面平臺的需求了,在此非常感謝作者無私的奉獻!
  • 給大家看下原作者開發的測試報告,非常的好看

注:原開原始碼,由於打包連結的是外網的js、css檔案,最近發現那個網站老師訪問失敗,所以導致該平臺有時候沒法訪問,最好將這些外部檔案下載到本地訪問

後續計劃

  • 準備做資料庫的關聯校驗,和整合locust做效能測試平臺
  • 需要原始碼或者有問題諮詢的可以加我微信liuxiaolu4986

相關文章