介面未全部提測,怎麼實現介面指令碼之間的自動化關聯?

小七的介面課堂發表於2020-07-14

前提

公司專案預設的遊戲規則,前後端分離開發,測試在聯調測試之前做介面測試,聯調時參與聯調測試,聯調結束後,開始整合測試,直至專案上線。

測試工作安排

專案前期,測試參加需求評審會議,測試用例評審,介面文件評審等一系列會議後,開發提測介面時,安排介面測試工作。

假設專案整體里程碑進度如下

1、專案是2020年8月1日啟動
2、開發介面轉測從2020年8月15日開始輸出
3、2020年8月26日開始聯調測試
4、2020年8月30日轉測,開始整合測試
5、2020年9月15日專案上線

介面測試

介面文件評審後,如果測試用例已經評審完,專案進度按計劃進行,那麼2020年8月15日就可以開展介面測試啦~
介面測試的參考依據,是介面文件。一個完整的介面文件應該包含以下內容:

  • 伺服器地址
  • 資訊頭
  • 介面名稱 - 開發人員
  • 開發中涉及的表(方便測試和其他開發定位)
  • url
  • 請求入參 是否必填 入參型別
  • 請求示例
  • 返回示例

其中,每個節點都有自己的意義,開展介面測試之前,要先學會解讀介面文件。
接下來就是介面指令碼編寫啦~~~
------------------------------------------------華麗麗的的分割線-------------------------------------------------------

指令碼編寫

開啟jmeter,根據介面文件,寫好資訊頭部,請求預設值,根據入參,寫好一個單一的介面請求。。。
但是問題來了,資料要麼是亂填的,要麼為了保證有效性,去資料庫裡複製出來一個個填上去,有別的介面可以提供返回值給我去關聯,但是介面還沒轉測。
(還不會關聯的移步至介面自動化連載 (7)- 正規表示式關聯

思考:關聯介面還沒轉測,有沒有辦法可以實現介面指令碼之間的動態關聯呢?

這裡引入下mock的概念

Mock-高效、易用、功能強大的視覺化介面管理平臺

對於mock,可能知道的同學還是比較少。但是mock技術,已經像docker技術一樣,慢慢在測試界普及。

以下是官網對mock的介紹

Mock 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,Mock 還為使用者提供了優秀的互動體驗,開發人員只需利用平臺提供的介面資料寫入工具以及簡單的點選操作就可以實現介面的管理。
高階Jmeter介面自動化:901813303
Jmeter介面測試群:956186148
總結而言,mock早先用於前端,前端內部做測試時,需要判斷某個欄位值取值是否正確,那就需要介面輔助,此時介面未轉測,與測試遇到的情況一樣,但是,前端也是需要繼續開發頁面,為了保證轉測版本的質量,引入mock進行介面模擬,提高前端程式碼的質量。
這種方式也可以給介面測試指令碼自動化打輔助。首先建立一個mock介面,寫入模擬資料

預覽得到mock地址

此地址填寫的是介面文件的地址。接下來在jmeter裡新增一個http介面,填寫mock的請求

得出結果如下圖所示。

我們要取的是configurationId,此時可以直接用正則取出


引入到下一個介面,實現介面指令碼關聯自動化


介面返回如下

mock小結

對於前端而言
1、mock是js寫的,node 是js 伺服器,安裝node.js就可以啟用
2、mock是用來模擬資料的,可以造假資料
3、mock寫好後通過url路由關係轉換,直接引用
4、前端用koa框架來呼叫mock,輕鬆實現頁面聯調
優勢:前後端分離 讓前端攻城師獨立於後端進行開發
弊端:依賴於API文件

對於測試而言
1、mock可以用來模擬資料,大批量造假資料
2、mock可以用來聯調介面測試指令碼,前期工作做完,後期只需完善指令碼
3、mock可以用來實現大批量入參的dubbo介面測試

相關文章