OkHttp3+mysql+jenkin 現介面自動化

jc發表於2020-11-16

說明:
實現在版本快速迭代過程中對系統介面的監控。只貼了部分關鍵程式碼

指令碼實現:

  1. 資料驅動,針對目前公司系統,無需對測試指令碼進行修改即可實現介面的巡檢。
  2. 考慮到系統支援 http 型別,暫只支援 get 和 post
  3. 使用資料庫 mysql 的形式進行用例編寫和管理

指令碼設計思路:

  1. case 資料準備:資料庫維護 case 資料,包括 url,method,data,header
  2. 引數處理: a) 通用引數準備,random,tm,reqId,stamp,用 $$ 字首作為標記 b) 全域性引數 map 準備,用於儲存每次系統版本迭代的資料,以及每次請求過程中從響應資訊中提取出來的引數用於下一個介面的傳參,用 ## 字首作為標記   3.http 請求資料組裝,其中這裡 header 需要簽名處理,data 中需要引數替換   4.jsonPath 實現斷言判斷以及 response 引數提取,把結果回寫資料庫和回寫全域性 map   5.最後產出測試報告以及使用 jenkins 持續整合管理

具體實現說明(部分程式碼展示):

  1. case 資料準備

a) 資料庫 case 準備

介面描述,url,uri,method,header,data,全域性變數提取,斷言判斷,響應內容儲存,測試分組,測試結果

b) 測試分組及範圍

在程式碼中,透過 sql 指定測試範圍,且後續新增測試範圍和調整時,只需要修改 mysql 中的資料即可,無需在指令碼中編輯。最後返回 List 形式,需要對這塊進行分隔處理,存到一個 bean 裡面

  2.引數處理
a) 通用引數準備
b) 版本初始化準備資料
包括系統資訊,使用者資訊,手機裝置資訊,外掛資訊,存到資料庫的 dict 表裡面,提取出來存到 map 裡面


  
3.http 請求資料組裝

主入口啟動

a) 請求組裝

其中 header 和 data 的處理,需要去迴圈全域性變數 map 和公共引數替換


  
4.jsonPath 實現斷言判斷和提取全域性變數

 5.使用 jenkins 持續整合管理

相關文章