瀏覽器的開發者工具(DevTools)能夠幫助開發人員對網頁進行佈局,好比HTML+CSS,幫助前端工程師更好的調試腳本(JavaScript、jQuery)之類的,還可使用工具查看網頁加載過程,獲取網頁請求(抓包)等。對於測試工做者來講,主要用於獲取網頁請求(抓包),還能夠輔助UI自動化測試中的元素定位等,其它應用正在挖掘中。html
瀏覽器的開發者工具備不少種,其中Chrome開發者工具功能較齊全一點,下面的介紹都是基於谷歌開發者工具(ChromeDevTools)展開。該工具的調用方式根據具體的系統和應用來:前端
##使用注意:web
谷歌開發者工具(Chrome DevTools)中功能模塊有不少,經常使用的主要有元素(ELements)、控制檯(Console)、源代碼(Sources),網絡(Network)這四個。其餘的模塊對於測試的輔助做用相對較小。json
各模塊功能的介紹以下:後端
Elements模塊展現的就是頁面的各個組成,主要內容有HTML+CSS+JavaScript,能夠對元素進行查看、修改、刪除等操做。瀏覽器
經過(Chrome DevTools)中的箭頭,能夠查看頁面具體某個圖片,輸入框等的元素。首先點擊箭頭,而後在頁面點擊想要查看的元素。緩存
以百度的輸入框爲例:安全
雙擊元素的某個屬性,能夠選中複製該屬性。服務器
選中某個元素後右鍵彈出的選擇框中,能夠進行刪除、複製、修改元素等。還能夠複製Xpath絕對路徑。
Web自動化測試時,有時須要使用Xpath路徑表達式或者CSS選擇器來定位元素,在定位以前須要驗證該路徑的惟一性,此時能夠在Elements模塊裏使用快捷鍵「Ctrl+F」,出現的輸入框中驗證該路徑。
以Xpath爲例,現有如下元素:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
Xpath定位表達式://input[@class='s_ipt']
UI自動化測試在定位元素這一環節須要花費大量的時間,容易出錯,且還須要熟悉定位元素的原理。谷歌瀏覽器的ChroPath插件能夠自動生成定位表達式,只需單擊一下便可生成惟一的相對xpath路徑,絕對xpath路徑,cssSelectors,linkText和partialLinkText。ChroPath還支持iframe,多重選擇器生成,具備自定義屬性的相對xpath生成,自動化腳本步驟生成等等。
使用方法:
該插件的其它使用功能和下載地址,可訪問地址:https://173app.com/apps/ljngjbnaijcbncmcnjfhigebomdlkcjo
下圖中示例使用方法(以百度輸入框爲例):
在Console中能夠查看JavaScript的對象及屬性,也能夠直接寫JavaScript運行。在測試工做中應用主要有以下幾個場景:
一、有些APP、桌面應用內嵌了H5頁面的,有時遇到Bug了可使用JavaScript的Location 對象取出當前H5頁面的完整URL,而後丟給開發。在工具中輸入location.href,彈出的URL中右鍵選擇「Copy link address」便可完成複製。
源代碼(Sources)模塊主要是查看頁面HTML、JavaScript等源碼,對於測試來講該模塊的斷點調試功能會用到。測試過程當中頁面有些提示、動畫效果等只展現幾秒時,能夠經過打斷點暫停效果顯示。
以toast提示爲例,toast提示的展現效果只有幾秒鐘,有時錯誤的toast內容很長,能夠將效果暫停後再仔細查看提示內容。效果以下圖:
在UI自動化測試時,須要對toast提示定位時,也能夠暫停後在Elements模塊中定位元素。
Network 面板記錄頁面上每一個網絡操做的相關信息,從發起網頁請求Request後分析HTTP請求後獲得的各個請求資源信息(包括狀態,資源信息,大小,所用時間,Request和Response等)。瀏覽器頁面、嵌入了H5頁面的程序測試過程當中,常常經過這個模塊查看接口請求、抓包、響應時間等,是頻繁使用的模塊。
注意:每一個頁面查看網絡請求數據時,都須要從新調用Chrome DevTools,而後刷新頁面才能獲取頁面數據。
Network主要包括5大塊窗格:
Network 面板按鈕介紹以下圖:
此列表列出了檢索的每一個資源。默認狀況下,此表按時間順序排序,也就是最先的資源在頂部。單擊資源名稱能夠得到更多信息。提示:右鍵單擊列表的任何標題欄能夠以添加或刪除信息列。
Requests Table列表中,每一列的含義:
點擊某個資源的Name能夠查看該資源的詳細信息,根據選擇的資源類型顯示的信息也不太同樣,可能包括以下Tab信息:
一、 Headers頁面中包含的http請求以及響應信息等,能夠查看該資源、接口的情況,具體的數據含義以下:
Status Code:響應狀態碼可以直觀的瞭解接口的狀況,200-可以正常訪問資源,404-請求的資源(網頁等)不存在,500-內部服務器錯誤等。
請求頭中的content-type、查詢字符串格式的參數、Request Payload等都是接口自動化時須要的參數。
二、Preview頁面能夠查看服務端返回的json數據,而且按照JavaScript的對象格式展現預覽。層層展開後能夠看到具體的數據,有時定位先後端bug時能夠經過將其與頁面的數據作簡單比較,看是否一致。
三、Response顯示的內容與Preview裏面的同樣,只是Response裏面的內容還未進行格式處理。
四、Cookies顯示資源HTTP的Request和Response過程當中的Cookies信息,在Application中也能夠查看。不是全部的資源都有Cookies。
五、Timing顯示資源在整個請求生命週期過程當中各部分花費的時間,實際功能測試時用的很少,若是想詳細的瞭解能夠訪問下面的連接:
1. https://blog.csdn.net/lhz_333/article/details/93544313?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2. http://www.javashuo.com/article/p-yjxuiybj-eu.html
客戶端發送http請求後,會向服務端加載圖片,js動畫等資源,這些資源所有顯示在Requests Table列表中,過濾器選擇「All」時顯示全部的資源,若是隻想查看接口信息時選擇「XHR」過濾。
選擇「All」時Requests Table列表顯示全部的資源:
過濾器選擇「XHR」時,只顯示接口信息:
在已加載緩存信息時,若是這時須要驗證剛部署的版本,遇到問題沒解時能夠勾選「Disable cache」,而後刷新頁面從新驗證下。勾選「Disable cache」刷新頁面的過程當中,客戶端不會使用本地緩存,從新從服務端加載資源。
須要注意的是該方法不是適用於全部的客戶端。Android端App的H5頁面由於機制可能不一樣,不必定適用。Web端直接清理全部的歷史信息來清除緩存。有的PC端桌面應用內嵌了Chrome DevTools工具時,能夠在H5頁面使用該功能。
有的客戶端測試H5頁面時沒有清理緩存功能,可使用Chrome DevTools工具清理,瀏覽器和Android系統仍是經過應用去刪除緩存更方便、穩定。
方法步驟以下圖:
注意:有的打開Chrome DevTools工具時沒有Resources,能夠進入「Application」查找。