一、Mock測試的含義
mock測試就是在測試過程中,對於某些不容易構造或者不容易獲取的對象,用一個虛擬的對象來創建以便測試的測試方法
二、Mock的使用場景
1、mock接口測試解耦
做自動化測試時,我們最希望的就是某些業務關系的耦合度不要太高。 舉個電商系統的例子,我就想測試一下“確認收貨”功能,但是由於耦合度的關系,不得不從創建訂單、分配、出庫、發貨等流程走下去,最后才能到“收貨”。 前面的某個步驟運行失敗,導致后面的功能連串失敗,實際我們不關心前面的功能,就只想看看“收貨”功能,這樣就使得非常困擾。
mock的出現使得我們可以直接自定義地創建某個接口的返回值,供下個接口調用。
2、mock處理服務端依賴
在項目開發過程中,大家有沒有遇到這類場景。 “后端開發還沒給我提供接口,我這個頁面沒法做啊”,前端開發比較依賴后端開發提供的接口,然后根據接口返回值設計各類場景頁面。當服務端開發人員未及時提供接口時可能會影響到前端開發及整個項目的進度。 特別是在敏捷開發中,對於上下游開發順序更加依賴、
mock可以模擬出未開發的接口,前端人員可以調用自定義返回值,提高開發效率
三、常見的三種mock方式
1、moco工具
運行環境:
- Java運行環境
- moco-runner-0.12.0-standalone.jar
運行步驟:
1)下載一個 moco-runner-0.12.1-standalone.jar 文件 ,下載地址如上
2)在與 moco-runner-0.12.1-standalone.jar 同級的目錄下創建 一個json 文件,例如 dai.json
dai.json文件里面的內容如下:
[ { "description":"api測試", "request":{ "uri":"/getdemo", "method":"get" }, "response":{ "json": { "code" :1, "result" : "success", "tester" : "dx" } } } ]
3)控制台啟動Mock Server服務
java -jar <path-to-moco-runner> https -p <monitor-port> -c < configuration -file> --https <path-to-cert.jks > --cert mocohttps --keystore mocohttps <path-to-moco-runner>:moco-runner-0.11.0-standalone.jar包的路徑 <monitor-port>:http服務監聽的端口 <configuration -file>:配置文件路徑 <path-to-cert.jks>:證書路徑
在moco的目錄下 運行 java -jar moco-runner-0.12.0-standalone.jar http -p 5812 -c dai.json (這就在本地啟動了一個http server,其中監聽端口是5812,配置文件是dai.jsonr)
當出現如下信息時表示Mock Server啟動成功:
4)現在可以通過瀏覽器來訪問此接口地址:
瀏覽器結果返回成功 :
至此,使用moco的方式搭建Mock Server完成,此時使用Postman進行接口測試時可以直接調用此接口、
2、使用python下的mock庫
python 2需要安裝mock庫 (pip install -U mock)
python 3不用安裝,mock集成到unittest庫下面
-----------------------------未完待續-----------------------------------------