charles Mock測試總結(jié)

1、背景

測試存在問題:
1始藕、測試環(huán)境接口不穩(wěn)定
2、業(yè)務(wù)系統(tǒng)不是孤立存在的,關(guān)聯(lián)方太多伍派,而且關(guān)聯(lián)系統(tǒng)常常出現(xiàn)不穩(wěn)定的情況
3江耀、暫時無可用Mock server工具
4、接口未提測驗收完成诉植,前端測試提前介入
影響:
測試依賴數(shù)據(jù)祥国,依賴接口阻塞導(dǎo)致測試延期,干耗時間成本人力成本
解決方案:
引入Mock測試倍踪,有了Mock,測試童鞋在后端接口未準(zhǔn)備好時按照接口文檔就可以開始造數(shù)據(jù)進行測試工作索昂,不會出現(xiàn)測試一直等待開發(fā)的情況建车,也可以開發(fā)聯(lián)調(diào)與測試進行。這樣的話椒惨,開發(fā)自測階段就可以及早開展缤至,從而發(fā)現(xiàn)缺陷的時機也提前了,有利于整個產(chǎn)品app測試覆蓋率提升和產(chǎn)品項目進度的保證

2康谆、環(huán)境配置及準(zhǔn)備

2.1领斥、安裝charles及一些配置項說明

去 Charles 的官方網(wǎng)站(http://www.charlesproxy.com)下載最新版的 Charles 安裝包,是一個 dmg 后綴的文件沃暗。打開后將 Charles 拖到 Application 目錄下即完成安裝月洛。

  • 2.1.1將 Charles 設(shè)置成系統(tǒng)代理

Charles 是通過將自己設(shè)置成代理服務(wù)器來完成封包截取的,所以使用 Charles 的第一步是將其設(shè)置成系統(tǒng)的代理服務(wù)器孽锥。

啟動 Charles 后嚼黔,第一次 Charles 會請求你給它設(shè)置系統(tǒng)代理的權(quán)限。你可以輸入登錄密碼授予 Charles 該權(quán)限惜辑。你也可以忽略該請求唬涧,然后在需要將 Charles 設(shè)置成系統(tǒng)代理時,選擇菜單中的 “Proxy” -> “Mac OS X Proxy” 來將 Charles 設(shè)置成系統(tǒng)代理盛撑。步驟如下:

* 1碎节、打開Charles程序
* 2、Mac連接上網(wǎng)絡(luò)paictest,查看Mac電腦的IP地址:
系統(tǒng)偏好設(shè)置->網(wǎng)絡(luò)就可以查看到了抵卫,比如我的ip地址是:172.16.0.238
* 3狮荔、將 Charles 的代理功能打開。在 Charles 的菜單欄上選擇 “Proxy”->”Proxy Settings”介粘,
填入代理端口 8888轴合,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上
的設(shè)置。
* 4碗短、要截取 iPhone 上的網(wǎng)絡(luò)請求:進入當(dāng)前wifi連接paictest(Mac在一個局域網(wǎng)內(nèi))受葛,
設(shè)置HTTP代理Group,將服務(wù)器填為上一步中獲得的IP,即172.16.0.238总滩,端口填8888.
* 5纲堵、打開 iPhone 上的任意需要網(wǎng)絡(luò)通訊的程序,就可以看到 Charles 彈出 iPhone
 請求連接的確認(rèn)菜單(如下圖所示)闰渔,點擊 “Allow” 即可完成設(shè)置席函。

之后,你就可以看到源源不斷的網(wǎng)絡(luò)請求出現(xiàn)在 Charles 的界面中冈涧,如下圖所示(由于涉及部分業(yè)務(wù)茂附,馬賽克了)。

網(wǎng)絡(luò)抓包.jpeg
  • 2.1.2安裝證書

如果你需要截取分析 Https 協(xié)議相關(guān)的內(nèi)容督弓。那么需要安裝 Charles 的 CA 證書营曼。具體步驟如下。

1愚隧、首先我們需要在 Mac 電腦上安裝證書蒂阱。點擊 Charles 的頂部菜單,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”狂塘,然后輸入系統(tǒng)的帳號密碼录煤,即可在 KeyChain 看到添加好的證書。

需要注意的是荞胡,即使是安裝完證書之后妈踊,Charles 默認(rèn)也并不截取 Https 網(wǎng)絡(luò)通訊的信息,如果你想對截取某個網(wǎng)站上的所有 Https 網(wǎng)絡(luò)請求泪漂,可以在該請求上右擊响委,選擇 SSL proxy,如下圖所示:

SSL proxy setting.png

這樣窖梁,對于該 Host 的所有 SSL 請求可以被截取到了赘风。

2、截取移動設(shè)備中的 Https 通訊信息

如果我們需要在 iOS 或 Android 機器上截取 Https 協(xié)議的通訊內(nèi)容纵刘,還需要在手機上安裝相應(yīng)的證書邀窃。點擊 Charles 的頂部菜單,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”假哎,然后就可以看到 Charles 彈出的簡單的安裝教程瞬捕。在設(shè)備上設(shè)置好 Charles 為代理后,在手機瀏覽器中訪問地址:http://charlesproxy.com/getssl
即可打開證書安裝的界面舵抹,安裝完證書后肪虎,就可以截取手機上的 Https 通訊內(nèi)容了。不過同樣需要注意惧蛹,默認(rèn)情況下 Charles 并不做截取扇救,你還需要在要截取的網(wǎng)絡(luò)請求上右擊刑枝,選中SSL proxy 菜單項。

3迅腔、組件mock測試:eg: xx app 登錄業(yè)務(wù)

3.1 編輯網(wǎng)絡(luò)請求數(shù)據(jù)了解

根據(jù)具體的需求装畅,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能沧烈,都可以達到修改服務(wù)器返回內(nèi)容的目的掠兄。這三者在功能上的差異是:
Map 功能適合長期地將某一些請求重定向到另一個網(wǎng)絡(luò)地址或本地文件。
Rewrite 功能適合對網(wǎng)絡(luò)請求進行一些正則替換锌雀。
Breakpoints 功能適合做一些臨時性的修改蚂夕。

3.1.1 調(diào)試不同url的網(wǎng)絡(luò)請求

為了調(diào)試服務(wù)器的接口,我們需要反復(fù)嘗試不同參數(shù)的網(wǎng)絡(luò)請求腋逆。Charles 可以方便地提供網(wǎng)絡(luò)請求的修改和重發(fā)功能婿牍。只需要在以往的網(wǎng)絡(luò)請求上點擊右鍵,選擇 “Edit”闲礼,即可創(chuàng)建一個可編輯的網(wǎng)絡(luò)請求牍汹。如下所示:

我們可以修改該請求的任何信息铐维,包括 URL 地址柬泽、端口、參數(shù)等嫁蛇,之后點擊 “Execute” 即可發(fā)送該修改后的網(wǎng)絡(luò)請求(如下圖所示)锨并。

edit網(wǎng)絡(luò)請求.png

Charles 支持我們多次修改和發(fā)送該請求,這對于我們和服務(wù)器端調(diào)試接口非常方便

3.1.2 覆蓋服務(wù)器接口返回的不同異常情況

舉個例子:有一個訂單狀態(tài)接口 order_state睬棚,有已過期第煮、已失效、已支付抑党、待支付包警、已取消、待審核等10個狀態(tài)返回底靠,如果是在沒有mock的情況下害晦,我們需要實際造10個狀態(tài)的訂單數(shù)據(jù),甚至去修改數(shù)據(jù)庫訂單字段狀態(tài)來看前端訂單顯示情況暑中。利用Mock方法壹瘟,我們可以借助一些工具例如charles打斷點,截取接口返回的response的json數(shù)據(jù)鳄逾,進行一些模擬:比如
訂單接口發(fā)生服務(wù)器錯誤 or 系統(tǒng)繁忙時app是否崩潰稻轨;
訂單接口的各種狀態(tài)在前端顯示的覆蓋測試;
訂單狀態(tài)空的時候前端如何顯示的覆蓋測試雕凹;
訂單數(shù)據(jù)異常的時候前端如何顯示的覆蓋測試殴俱,
訂單接口請求超時的情況等等等總之想要什么返回就模擬什么返回政冻。

3.2 簡單的小例子:xx app 登錄login Mock測試

3.2.1 安裝測試包

打開手機,連接電腦安裝開戶組件app 成功,點擊app啟動成功粱挡,登錄成功赠幕,moudle名稱輸入模塊名稱(xxBanklogin進入xx app 登錄流程,利用charles抓包询筏,如下截圖

登錄.jpeg

3.2.2 登錄測試Mock最基本實踐

breakpoints方法實踐過程:

在charless上要mock數(shù)據(jù)的url上右點擊榕堰,彈出的列表選中breakpoint,要點擊兩次 Excute 才能完成一次 HTTP 請求嫌套,原因是逆屡,Charles 的斷點功能分別提供了修改 HTTP Request 和 Response 的機會映射本地文件

先了解登錄接口定義:
  • login接口一般有登錄超時、操作超時踱讨、登錄被擠下線魏蔗、登錄系統(tǒng)繁忙、賬戶和密碼錯誤痹筛、賬戶鎖定莺治、賬戶解密失敗等情況
每個接口對應(yīng)的response請求json記錄(可編輯修改):

一般有兩種處理方式可選擇:
一是直接在charels設(shè)置好斷點,請求相應(yīng)的接口時修改編輯response里面json格式的相關(guān)數(shù)據(jù)后點擊excute執(zhí)行模擬請求提交
二是將所有接口的json數(shù)據(jù)在一個Sublime text 中以json格式保存帚稠,進行數(shù)據(jù)管理谣旁,最后利用 charles Map 規(guī)則的導(dǎo)入導(dǎo)出功能,方法是點擊菜單 Tools → Map Local滋早,在彈出界面中點擊 Export

登錄login接口返回json記錄如下:
  • 1榄审、登錄成功
{
"code": "000000",
"data": {
由于涉及到業(yè)務(wù)信息,部分data信息隱藏
"status": "0"
},
"msg": "成功"
}
  • 2杆麸、操作超時


{
    "code": "030801",
    "msg": "操作超時"
}
  • 3搁进、登錄報系統(tǒng)繁忙
{
"code": "000001",
"msg": "系統(tǒng)繁忙,請稍后再試昔头!"
}
  • 4饼问、登錄超時
{
"code": "000002",
"msg": "登錄超時!"
}
  • 5揭斧、登錄掉線
{
"code": "000004",
"msg": "賬戶在另一臺設(shè)備已登錄莱革,當(dāng)前登錄被擠下線!"
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末未蝌,一起剝皮案震驚了整個濱河市驮吱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌萧吠,老刑警劉巖左冬,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纸型,居然都是意外死亡拇砰,警方通過查閱死者的電腦和手機梅忌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來除破,“玉大人牧氮,你說我怎么就攤上這事」宸悖” “怎么了踱葛?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長光坝。 經(jīng)常有香客問我尸诽,道長,這世上最難降的妖魔是什么盯另? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任性含,我火速辦了婚禮,結(jié)果婚禮上鸳惯,老公的妹妹穿的比我還像新娘商蕴。我一直安慰自己,他們只是感情好芝发,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布绪商。 她就那樣靜靜地躺著,像睡著了一般后德。 火紅的嫁衣襯著肌膚如雪部宿。 梳的紋絲不亂的頭發(fā)上抄腔,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天瓢湃,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛翘簇,可吹牛的內(nèi)容都是我干的郑象。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼母廷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筏勒,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旺嬉,沒想到半個月后管行,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡邪媳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年捐顷,在試婚紗的時候發(fā)現(xiàn)自己被綠了荡陷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡迅涮,死狀恐怖废赞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叮姑,我是刑警寧澤唉地,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站传透,受9級特大地震影響渣蜗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旷祸,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一耕拷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧托享,春花似錦骚烧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羡榴,卻和暖如春碧查,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背校仑。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工忠售, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迄沫。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓稻扬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羊瘩。 傳聞我的和親對象是個殘疾皇子泰佳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容