雖然正規(guī)的Web API測試需要開發(fā)人員提供文檔,但是很多企業(yè)的流程是不太正規(guī)的。沒有這樣的文檔,很多公司往往就是直接實現(xiàn)了產(chǎn)品。再丟給測試人員去測。這種情況,有時候會有一個測試網(wǎng)頁,在網(wǎng)頁上點擊各種按鈕就會發(fā)出相應(yīng)的API請求。這時,我們可以利用Postman抓包功能,幫我們?nèi)〉礁鞣NAPI請求和響應(yīng),我們再根據(jù)這些抓取到的請求和響應(yīng),得到API的信息,從而可以編寫測試用例。
Postman抓包的原理是:把自己設(shè)置為一個Proxy,然后我們在瀏覽器中,設(shè)置代理服務(wù)器為Postman。這樣我們通過瀏覽器訪問API server,都會經(jīng)過Postman。Postman就會獲取到所有的Http請求和響應(yīng)消息了。
之前有文章講過Fiddler抓包,F(xiàn)iddler抓包功能我覺得要比Postman功能更強大一些,但是Posman也有自己的優(yōu)點,就是它抓完包之后不需要自己在往里面填了,比如用Fiddler抓包用Postman做測試,還得往Postman里面填,Postman本身就有抓包功能,用它抓包的話就不需要再去重新往里面填了,Postman抓包到底怎么用呢,我們來看一下
8.1 啟用 Postman Prox
點擊Postman右上角的這個像衛(wèi)星接收器一樣的按鈕
點擊之后會彈出如下界面
Port 5555
是缺省端口,通常我們不需要改變他,然后他下面還有一個設(shè)置項Target
,這個設(shè)置項就是你抓的包要存在什么地方是存在History
里面還是存在某一個Collection里面
filters部分輸入一些過濾條件。過濾條件就是告訴Postman我們要抓的是什么樣的包。通常我們API請求URL中的一些關(guān)鍵字填進去,這樣其他一些不相關(guān)的包就會過濾掉。比如我們教管系統(tǒng)中,所有的API請求都包含localhost/api
這樣的字符串。我們可以填入如下的內(nèi)容,界面如下
然后再點擊Connection標(biāo)簽,點擊Connection標(biāo)簽,點擊Connnect按鈕,如下所示
這時候,系統(tǒng)往往會彈出防火墻安全對話框提示對話框,
我們要選擇,允許訪問。
8.2 設(shè)置瀏覽器,指定代理
Postman設(shè)置好以后,我們需要指定瀏覽器的代理。為了方便瀏覽器在使用代理和不使用代理之間切換,如果不用插件的話我們以chrom
瀏覽器為例(他就是使用的系統(tǒng)代理),我們點擊瀏覽器的設(shè)置項,設(shè)置地址為Postman代理監(jiān)聽的地址和端口
之后點擊高級
點擊打開代理設(shè)置
點擊局域網(wǎng)設(shè)置
默認是這樣的
如果我們想把代理設(shè)置成Postman的話
一定注意對于本地地址不使用代理服務(wù)器(B)
勾選框要去掉,因為我們這里就是本機地址
然后點擊高級
設(shè)置本機地址和端口
這里要注意例外欄目下方框里面的內(nèi)容,意思就是方框里面包括
這些的還是不使用代理服務(wù)器,我們約好把內(nèi)容去掉,不去掉還是不會使用本機。
8.3 訪問網(wǎng)站,查看抓包結(jié)果
上面都設(shè)置好之后我們就可以訪問網(wǎng)站,查看抓包結(jié)果了。
以我們的教管系統(tǒng)為例,我們可以打開瀏覽器,登錄教管系統(tǒng),就可以看到抓到的API相關(guān)的http請求出現(xiàn)在History欄目中了。
登錄完成后我們就抓到包了
這時,我們就可以去點擊某個感興趣的請求,查看請求消息體的具體信息了。
假如你是要用手機來抓的話,其實原理是一樣的,手機要做一個設(shè)置
在手機上找"設(shè)置"應(yīng)用,并點擊進入
鏈接上無線WiFi
長按已鏈接無線WiFi,并點擊代理設(shè)置
代理服務(wù)器開關(guān)開啟,即可以進行輸入了,代理服務(wù)器的主機名就是你電腦的主機地址,可以在CMD中敲ipconfig
就可以看到了
輸入服務(wù)器,即為本地ip地址,端口號為需要代理軟件的端口號,在軟件中可以找到,點擊保存,手機代理設(shè)置完成。
注意手機和電腦一定要用同一個網(wǎng)絡(luò),手機的WiFi和電腦的網(wǎng)絡(luò)必須連在同一個路由器上,這一點要搞清楚
7