前言
做接口測試肯定離不開抓包,目前比較流行的抓包工具是fiddler和charles,相信並不陌生。這里介紹一個阿里公司研發的一個抓包神器,只需打開web頁面,就能抓到手機app上的http和https請求了。
這樣就有個好處,當一個公司測試團隊有多個人的時候,只需搭建一個AnyProxy服務,其它小伙伴瀏覽器上打開AnyProxy頁面,手機上設置個代理就能刷刷刷的抓到請求了。
解決了部分人電腦不正經的小伙伴fiddler死活抓不到https請求的問題,也解決了破解charles安裝的問題,也不用去每個電腦都去安裝一個抓包工具的問題。
AnyProxy完美的解決了跨平台使用,不管你是windows電腦,mac電腦,手機app,只需搭建一個服務,都能抓到接口請求數據。
AnyProxy簡介
AnyProxy是一個開放式的HTTP代理服務器。Github主頁:https://github.com/alibaba/anyproxy
主要特性包括:
- 基於Node.js,開放二次開發能力,允許自定義請求處理邏輯
- 支持Https的解析
- 提供GUI界面,用以觀察請求
相比3.x版本,AnyProxy 4.0的主要變化:
- 規則文件(Rule)全面支持Promise和Generator
- 簡化了規則文件內的接口
- Web版界面重構
安裝NodeJS
AnyProxy是阿里爸爸出的一款抓包工具,依賴NodeJS,在官網https://nodejs.org/en/下載安裝包,下載左邊的LTS版本,傻瓜式安裝即可。
安裝的時候注意勾選,添加到環境變量path下,這樣就不用配置環境變量了
安裝完之后輸入node -v查看版本號
node -v
cnpm安裝anyproxy
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種:
- 允許用戶從NPM服務器下載別人編寫的第三方包到本地使用。
- 允許用戶從NPM服務器下載並安裝別人編寫的命令行程序到本地使用。
- 允許用戶將自己編寫的包或命令行程序上傳到NPM服務器供別人使用。
由於新版的nodejs已經集成了npm,所以之前npm也一並安裝好了。可以通過輸入 "npm -v"來測試是否成功安裝.
npm -v
如果npm版本過低,也可以通過以下指令升級npm版本
npm install npm -g
npm 的包安裝分為本地安裝(local)、全局安裝(global)兩種,一般推薦全局安裝(-g).
注意,如果直接這樣npm安裝anyproxy會非常慢
npm install -g anyproxy
由於npm安裝很慢,可以用cnpm安裝,使用淘寶的鏡像地址:http://registry.npm.taobao.org, 這個相當於是npm的升級版,先用npm安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
用cnpm安裝anyproxy速度更快
cnpm install -g anyproxy
anyproxy啟動
anyproxy安裝完成后,在cmd輸入anyproxy就能啟動服務了
C:\Users\dell>anyproxy
[AnyProxy Log][2019-05-14 23:02:05]: Http proxy started on port 8001
[AnyProxy Log][2019-05-14 23:02:05]: web interface started on port 8002
設置代理端口是8001,web頁面打開的端口是8002,打開瀏覽器輸入http://localhost:8002/
(或者http://127.0.0.1:8002)就能打開anyproxy頁面了
這個頁面打開暫時是抓不到任何請求的,如果想抓到手機app上的請求,繼續往下看
電腦安裝證書
想抓到https請求,電腦上需安裝證書,打開anyproxy web頁面->RootCA->Download->rootCA.crt,傻瓜式下一步安裝
安裝完成后,通過anyproxy -i命令啟動監聽,即可捕獲HTTPS請求
C:\Users\dell>anyproxy -i
[AnyProxy WARN][2019-05-15 00:34:14]: ROOT CA NOT INSTALLED YET
[AnyProxy Log][2019-05-15 00:34:14]: You can install the root CA manually.
[AnyProxy Log][2019-05-15 00:34:14]: The root CA file path is: C:\Users\dell\.anyproxy\certificates\rootCA.crt
[AnyProxy Log][2019-05-15 00:34:14]: Http proxy started on port 8001
[AnyProxy Log][2019-05-15 00:34:14]: web interface started on port 8002
電腦啟動代理
點開電腦右下角網絡設置-開啟代理-輸入ip和8001監聽端口
如果不想抓了,就關閉這個代理設置
手機設置代理
確保手機和電腦是同一局域網, 打開cmd輸入ipconfig,查看本機的ipv4地址
手機上設置代理,ip就是自己電腦的ipv4地址,端口是8001
手機安裝證書
我們需要在被代理的手機上安裝證書,這樣在AnyProxy上才能以明文的方式查看https請求內容。在手機上安裝證書有兩種方式:
直接在手機瀏覽器中打開http://ip:8002/fetchCrtFile(IP換成安裝AnyProxy機器的IP)
在安裝AnyProxy主機上打開http://localhost:8002/,RootCA界面然后掃描二維碼,在瀏覽器中打開安裝證書
如果下載后的證書無法安裝,打開手機wifi界面-右下角更多-高級WLAN設置-安裝證書-左上角打開文件夾-找到下載的證書,點擊安裝
anyproxy抓手機https請求
在手機上打開app操作,就能抓到app上 的請求了