測試過程中經常需要測試不同的界面顯示,比如名字太長、特殊符號顯示,一方面可以通過修改源數據實現,比如數據庫中修改電影名,但是這樣的話首先比較麻煩,需要進行數據庫操作;其次,修改完之后會影響其他人的工作。比較輕便的做法,則是通過charles修改服務器返回值實現。charles 提供了幾種方式,以下介紹 Breakpoints。
假設有這樣一個測試需求:測試豆瓣電影名顯示。我們使用 charles 來操作一下。
步驟
1、打開 charles,勾選 macOS Proxy,網頁請求 https://movie.douban.com/
如果是 https 的請求,需要先配置 https 證書。
頁面顯示如下:

2、找到熱門電影的接口,單擊右鍵選中 “Breakpoints”

【備選項,點擊“BreakPoints”后,要去查看工具欄-->Proxy-->SSL Proxying Settings... 】

3、再次請求該頁面,該頁面刷新后,熱門電影區域顯示空白,charles 首先彈出“請求”選擇框,有 “Cancel”、“Abort”、“Execute” 三個選擇,選擇 “Execute”,讓 charles 通過這次請求。
Cancel 表示取消,Abort 表示中止,Execute 表示執行

4、接下來會觸發 “響應” 選擇框,點擊 “Edit Response”,修改返回值,點擊 “Execute”。

顯示效果:

總結
本篇文章中,主要介紹了如何使用 Breakpoints 進行請求響應值的修改,但是 Breakpoints 能夠應用在 qa 環節的場景其實有很多,例如:
- 在請求之前,修改參數,獲取不同參數下的返回值,驗證服務端邏輯
- 修改返回值的內容,包括長度,數據格式等,用於校驗前端在一些邊界情況下的展示
- 修改響應頭,測試不同響應條件下,前端的展示情況(例如服務端報錯500)
- etc...
