1. 程式人生 > >Charles MOCK 資料

Charles MOCK 資料

 

charles下載地址:

https://www.charlesproxy.com/

我用的V4.2.7版本

第一節:背景

第二節:元件mock測試

第三節:charles安裝及配置(https)

 

第一節:背景

  測試存在問題:

  1、測試環境介面不穩定

  2、業務系統不是孤立存在的,關聯方太多,而且關聯絡統常常出現不穩定的情況

  3、暫時無可用Mock server工具

  4、介面未提測驗收完成,前端測試提前介入

  影響:

  測試依賴資料,依賴介面阻塞導致測試延期,乾耗時間成本人力成本

  解決方案:

  引入Mock測試,有了Mock,測試童鞋在後端介面未準備好時按照介面文件就可以開始造資料進行測試工作,不會出現測試一直等待開發的情況,也可以開發聯調與測試進行。這樣的話,開發自測階段就可以及早開展,從而發現缺陷的時機也提前了,有利於整個產品app測試覆蓋率提升和產品專案進度的保證

 

第二節:元件mock測試

2.1編輯網路請求資料瞭解

實現修改伺服器返回內容,Charles 提供了 三種方法,如下:

  a、 Map 功能、

  b、Rewrite 功能

  c、Breakpoints 功能(打斷點)

這三者在功能上的差異是:

  Map 功能適合長期地將某一些請求重定向到另一個網路地址或本地檔案。

  Rewrite 功能適合對網路請求進行一些正則替換。

  Breakpoints 功能適合做一些臨時性的修改.

2.1.1 Map功能

就是重定向,比如你想將一個測試環境的介面,換成線上環境的介面,如下配置即可:

右鍵URL,點選  Map Remote。

看圖就可以了

 2.1.2  除錯不同url的網路請求 Edit/Compose

  為了除錯伺服器的介面,我們需要反覆嘗試不同引數的網路請求。Charles 可以方便地提供網路請求的修改和重發功能。只需要在以往的網路請求上點選右鍵,選擇 “Edit”(Compose,  最新版本的是Compose,老版本是Edit),即可建立一個可編輯的網路請求。如下所示:

  我們可以修改該請求的任何資訊,包括 URL 地址、埠、引數等,之後點選 “Execute” 即可傳送該修改後的網路請求(如下圖所示)。

                                                                           edit/Compose網路請求

 Charles 支援我們多次修改和傳送該請求,這對於我們和伺服器端除錯介面非常方便

2.1.3  打斷點 (覆蓋伺服器介面返回的不同異常情況)

  舉個例子:有一個訂單狀態介面 order_state,有已過期、已失效、已支付、待支付、已取消、待稽核等10個狀態返回,如果是在沒有mock的情況下,我們需要實際造10個狀態的訂單資料,甚至去修改資料庫訂單欄位狀態來看前端訂單顯示情況。利用Mock方法,我們可以藉助一些工具例如charles打斷點,擷取介面返回的response的json資料,進行一些模擬

 

breakpoints方法實踐過程:

  

第一種打斷點方法:

在charless上要mock資料的url上右點選,彈出的列表選中breakpoint ,要點選兩次 Excute 才能完成一次 HTTP 請求,原因是,Charles 的斷點功能分別提供了修改 HTTP Request 和 Response 的機會重定向本地檔案。

 

  

第二種打斷點方法:點選頂部 Proxy >>> BreakPoint Settting,

 

新增Add,或者雙擊某個URL,勾選Reuest 或者勾選Response ,來實現請求之前,或返回資料前打斷點。

 

設定完成後,重新整理頁面(重新請求該介面),如圖,可以修改request

修改請求資料後,點選Execute。

點選Execute,會再次彈出一次,此時可以修改Response.

這裡有個小小的修改Response的技巧。快速修改Response,現在txt上編輯好返回資料,然後點選JSON Text,直接把資料粘過來。如下圖:

2.2 修改response請求json記錄

修改response請求json記錄,有兩種方式:

  一是直接在charels設定好斷點,請求相應的介面時修改編輯response裡面json格式的相關資料後點擊excute執行模擬請求提交

  二是將所有介面的json資料在一個Sublime text 中以json格式儲存,進行資料管理,最後利用 charles Map 規則的匯入匯出功能,方法是點選選單 Tools → Map Local,在彈出介面中點選 Export

OK,現在一起來試驗一下。

2.2.1第一種方式

注意喲:測試資料為json格式

連線好手機和電腦,在手機上開啟應用。

我們找到如圖這個介面(右鍵URL,點選Foucus是可以對介面過濾的,過濾效果如下圖)

我們將測試輸入,儲存為json格式(修改後綴名為.json)

如下是我們的測試資料:

{
	"data": {
		"p": [{
			"appv": "",
			"cond": null,
			"dt": "",
			"dwId": "bbtrp:/ge",
			"p_c": "您啦啦啦啦啦啦啦啦,加油!,加油!",
			"p_t": "",
			"pf": 11,
			"pid": "5000004",
			"pt": "3",
			"st": 1540600200
		}]
	},
	"rtn_code": "0",
	"rtn_ext": "",
	"rtn_msg": ""
}

將測試資料儲存為123.json

右鍵URL,點選map local

在彈出的對話方塊直接點選Choose,選擇123.json。點選OK

 

再次右鍵URL,點選Repeat。如圖,返回值就是我們的測試資料啦。

2.2.2第二種方式

 

a.我們把這個請求URL複製下來

http://qqmusic.api.10155.com/v1/uerNetInfo/qryUserMobile?appkey=99000100000070000000&ip=106.37.174.130&timestamp=20181023224423&unikey=01000f8f0d0015ab04d438d0856c52ac&digest=F06ABC070702A15FB37A187B04E1CCDB

點選選單 Tools → Map Local

點選Add,直接將URL貼上到Host,會自動生成Path和Query

然後Choose   選擇123.json。如圖

測試資料一定要儲存為JSON格式。(下圖配圖錯了,其實是123.JSON,不是123.txt)

  

第三節:charles安裝及配置(https)

3.1 win配置

PC 端證書安裝:

點選 Help >>>  SSL Proxying >>>Install  Charles  Root Certificate  >>>點選安裝證書,點選確定>>>>將所有的證書都放入下列儲存>>>點選瀏覽>>>點選受信任的跟證書頒發機構,點選確定>>>點選下一步

具體安裝步驟如下圖:

 

 

提示:

由於CA 根證書不在“受信任的根證書頒發機構”儲存區中,所以它不受信任。

 

 

 

移動端安裝證書:

點選 Help >>>  SSL Proxying >>>Install  Charles  Root Certificate on a Mobile Device or Remote Browser

 

 IOS:

IOS手機訪問    https://chls.pro/ssl  並安裝證書。

Android:

。。。

 

完成這一切後,重啟一下Charles  ,就可以正常抓https了

3.2 mac 配置

公司沒給我配mac,哪兒來的Mac教程。。。。。。。