新聞中心
在接口測(cè)試中,相信很多人都遇到過(guò) Android 高版本(Android7.0 以上)系統(tǒng)無(wú)法抓包的問(wèn)題。

由于在測(cè)試過(guò)程中對(duì)分析定位問(wèn)題很不方便,所以就想找開(kāi)發(fā)的同學(xué)幫忙,結(jié)果開(kāi)發(fā)也說(shuō)搞不定,那只能自己解決了。
問(wèn)題分析
問(wèn)題原因分析如下:
- 問(wèn)題:Android6.0 及以下系統(tǒng)可以抓包,而 Android7.0 及以上系統(tǒng)不能抓包;
- 原因:Android7.0+ 的版本新增了證書(shū)驗(yàn)證,所以 App 內(nèi)不再像原來(lái)一樣默認(rèn)信任用戶(hù)的證書(shū);
參考網(wǎng)上資料得到如下解決方案:
方案一
- 在 Android 工程目錄的 res 底下創(chuàng)建一個(gè) xml 文件夾,然后在內(nèi)部創(chuàng)建一個(gè)名為 “network_security_config.xml”的文件;
- 在 AndroidManifest 里的標(biāo)簽中,添加代碼:
- android:networkSecurityConfig="@xml/network_security_config"
然后重新編譯打包即可抓包,這對(duì)開(kāi)發(fā)童鞋來(lái)說(shuō),也很方便。但是,因?yàn)闇y(cè)試的是企業(yè)微信小程序,想讓企業(yè)微信的開(kāi)發(fā)人員幫我這么干,簡(jiǎn)直是白日做夢(mèng),更不用說(shuō)安全等問(wèn)題...
方案二
找一個(gè)低于 6.0 或者等于 6.0 版本的 Android 設(shè)備或者模擬器,即可解決。但是考慮到:治標(biāo)不治本,公司本身就沒(méi)有這樣的設(shè)備,再加上找了幾個(gè)模擬器,都是 Android7.0 版本的,所以此方案,直接選擇放棄。
然后只好再去找開(kāi)發(fā),開(kāi)發(fā)研究了半天,結(jié)果過(guò)來(lái)告訴我,我的 iOS 是可以抓包的啊,Android 的就不知道了,一瞬間我都有點(diǎn)想掀桌子了......
[[352695]]
只好再找測(cè)試開(kāi)發(fā)同學(xué)咨詢(xún)解決方案:
- 使用方案一
- 換個(gè)工具抓,例如 Fidder,或者 BurpSuite 等(這個(gè)嘗試后發(fā)現(xiàn)還是不行)
- 直接去 NG 那里攔截,但是我需要抓取的有一部分是第三方的接口(前方已經(jīng)高能,此路不通)
最后,還是有點(diǎn)不死心,自己繼續(xù)搜索各種資料,終于黃天不負(fù)有心人,找到了滿(mǎn)足條件的最終解決方法。
最終解決方案
Charles + VirtualXposed + JustTrustMe
實(shí)現(xiàn)步驟
進(jìn)入 Github 下載如下兩個(gè) Page
- VirtualXposed:https://github.com/android-hacker/VirtualXposed
- JustTrustMe:https://github.com/Fuzion24/JustTrustMe
第一步
使用如下 adb 命令分別安裝兩個(gè) pages
- adb -s R3J6R19B20004228 inatall VirtualXposed
- adb -s R3J6R19B20004228 install JustTrustMe
第二步
安裝完成進(jìn)入 VirtualXposed apk 應(yīng)用,點(diǎn)擊 6 個(gè)小點(diǎn)進(jìn)入設(shè)置頁(yè)面
第三步
進(jìn)入設(shè)置頁(yè)面,點(diǎn)擊模塊管理,勾選 JustTrustMe(當(dāng)然我并沒(méi)有找到它,可能是我這個(gè)版本不需要在手動(dòng)選擇了,安裝之后自動(dòng)識(shí)別到了)重啟之后我們重新進(jìn)去設(shè)置頁(yè)面,添加我們需要抓包的應(yīng)用即可,我這里選擇的企業(yè)微信做案例。
第四步
點(diǎn)擊添加應(yīng)用,選擇需要抓包的軟件安裝:
配置 Charles 抓包
設(shè)置 Charles 代理,此處不再說(shuō)明,相信設(shè)置代理大家能自己解決,手機(jī)設(shè)置 wifi 里面代理改成手動(dòng)。輸入IP,端口:默認(rèn)8888,注意手機(jī)和電腦在一個(gè) wifi 下就 ok。
第六步
回到 VirtualXposed 上滑解鎖,打開(kāi)我們之前安裝的企業(yè)微信,則發(fā)現(xiàn) charles 已經(jīng)成功抓取到安居客的 HTTPS 的數(shù)據(jù)包:
總結(jié)
測(cè)試工作中,遇到問(wèn)題/bug 經(jīng)常會(huì)讓人很煩很慌,不知所措。但是,作為一個(gè)合格的測(cè)試人員,遇到事情,還是要努力做到「泰山崩于前而色不改,麋鹿興于左而目不瞬」(秀文采~),連開(kāi)發(fā)都放棄了,咱還能保持淡定,方顯測(cè)試英雄本色!
技術(shù)進(jìn)階沒(méi)有捷徑,唯有一步步積累,踏坑填坑堅(jiān)持走下去。這次的問(wèn)題雖幾經(jīng)波折,但我最終搞定之后,開(kāi)發(fā)看我的眼神都不一樣了,以后提 bug 也更加有說(shuō)服力了。
[[352697]]
文章題目:接口測(cè)試實(shí)戰(zhàn)|Android高版本無(wú)法抓取HTTPS怎么辦
分享網(wǎng)址:http://www.dlmjj.cn/article/cdijhcg.html


咨詢(xún)
建站咨詢(xún)
