回答重点
在软件测试中,常用的抓包工具主要有:
1)Fiddler
2)Wireshark
3)Charles
4)Postman(它的拦截器功能也可以用于抓包)
5)tcpdump
抓包的原理大致是通过安装在本地的抓包工具或中间代理,监听网络流量,对网络数据包进行捕获、分析和处理。它通常会借助网络适配器放置在混杂模式(Promiscuous Mode),从而能够捕获流经本地设备的所有数据包,而不仅仅是发给本地设备的包。
扩展知识
1) Fiddler :
- 特点 :擅长HTTP和HTTPS的流量抓取工作,提供直观的界面,可以对请求和响应内容进行展示。
- 应用场景 :特别适用于Web开发调试。
2) Wireshark :
- 特点 :功能强大,适用于分析各类协议。它不仅限于HTTP,还包括TCP/IP、UDP等复杂协议。
- 应用场景 :深度网络分析和排查网络问题。
3) Charles :
- 特点 :也是一款强大的HTTP代理/HTTP监视器/反向代理工具,支持HTTPS。
- 应用场景 :非常适合移动应用的抓包分析,通过代理发现App请求中Bug。
4) Postman :
- 特点 :以其强大的API测试与调试功能为人所知。虽然抓包不是其主功能,但Pro版有拦截器扩展。
- 应用场景 :开发与测试API接口时的入门级工具,特别适合RESTful接口自动化测试。
5) tcpdump :
- 特点 :命令行工具,可以抓取网络接口上流经的数据包。适合深入精细的包捕捞和分析。
- 应用场景 :运维和网络层面故障排查。
抓包原理详细解析
抓包工具的工作原理可以通过几种主要方式来实现:
1) 网络驱动层拦截 :
- 抓包工具与操作系统的网络驱动层集成,对所有进出的网络数据包进行拦截。这种方法的优点是全面,但实现起来比较复杂。
2) 代理服务器 :
- 工具充当中间人(MITM,Man-In-The-Middle),拦截和记录通过代理服务器的请求和响应。这种方式更适合HTTP/HTTPS等应用层协议的抓包。
3) 本地应用内拦截 :
- 有些应用会将抓包功能内嵌在应用本身,通过植入额外代码来捕获和记录应用内产生的所有网络通信。这种方式需要对应用源码级的支持。
评论前必须登录!
注册