前言相信做了测试一段时间的小伙伴都会开始意识到抓包对于测试的重要性,它涉及到功能测试、性能测试、自动化测试、安全测试和数据库测试等等。可以说我们要想做好测试就必须和抓包打交道,脱离抓包的测试是不合格的。人们都说黑客利用Wireshark等抓包工具监视别人,但是你同时会发现,监视也是测试的重要组成部分。你会通过监视来判断pass或是fail,你会通过监视来定位bug,你会通过监视来分析性能测试的结果……正文1、什么是抓包 我们一般所指的“监视”,其实有个专业名称——抓包。抓包是指在计算机网络中,通过使用抓包工具截获(捕获)和分析网络数据包的过程。网络数据包是在计算机网络上传输的基本单元,它包含了通信中的信息、源地址、目标地址、接口信息、传输协议类型等重要信息。2、抓包有什么作用抓包在计算机网络和软件开发领域中有多种用途,其主要功能包括:
1)网络调试和故障排查:抓包是网络调试和故障排查的关键工具。通过捕获和分析网络数据包,可以识别网络通信中的错误、异常和延迟。这有助于开发人员和网络管理员快速定位和解决问题,确保系统正常运行。
2)性能优化:通过监视和分析网络流量,可以评估应用程序的性能,并找出导致性能瓶颈的原因。这有助于优化网络通信,提高应用程序的响应速度和效率。
3)用户行为分析:对于网络应用程序,抓包可用于分析用户的操作行为,了解他们与应用程序之间的交互。这对于优化用户体验和改进应用设计非常有帮助。
4)安全审计:抓包用于监控网络流量,检测潜在的安全威胁和异常行为。安全专业人员可以通过抓包来分析攻击、异常流量和潜在的漏洞,以提高系统的安全性。
5)协议分析:抓包工具能够解析和分析各种网络协议,帮助理解应用程序的通信机制。这对于开发人员理解系统的工作原理、确保协议遵循和检测潜在问题非常有价值。
6)网络性能评估:抓包工具可以用于评估网络的整体性能,包括检查带宽利用率、网络拓扑结构等,从而更好地了解网络的运行状况。
说了这么多那我们测试人员能用到哪些呢,那我进一步总结一下:
1)当发现测试设备或者网站等表现不符合预期时,抓包是进一步定位问题的最常用方法。比如你在地址栏中输入了某网站的内容,结果却返回502错误,那这个时候你得会通过抓包就可以得到大体的问题原因。
2)抓包可以对抓取的数据进行分析,并进行伪造,这是功能测试、性能测试和自动化测试中常见的手法。比如,在网站测试中,我们通过抓取到的数据包,然后更改里面的IP地址进行欺骗,看看服务器端作何回应。又比如一般的机顶盒测试,我们可以通过抓取数据包,并用脚本去和电视终端联通。
3)通过抓包我们可以判断Bug是归前端还是归后台,特别是开发在前后端分离后,测试对于Bug的前后端指派需要更精准,这就要求我们能够通过抓包分析Bug的前后端归属,那么可以通过抓包工具,确实是数据传递问题还是前端显示的问题。如果抓出来的数据就有问题的话,那么一般是后端的问题;如果抓出来的数据是正确的,那么基本上可以断定是前端显示的问题。
3、分层去抓包
我们都知道,数据在发送的过程中是层层封装一个头部的,最终通过物理接口发送出去,而数据的接收过程则刚好反过来,所以我们根据这个特点可以在抓包中有舍有得,就是需要哪一层的数据,就去协议栈把哪一层的数据捞出来,这个捞的过程就得靠我们的抓包工具了。(友情推荐几款:Wireshark、Fiddler、tcpdump、tcpflow、Ethereal、Charles,我用Fiddler较多。)这种分层抓包对于我们过滤且快速抓取有用信息是十分有益的,如果你想要抓取应用层的数据却要去底层捞数据那么还得一层层解封装,甚至可能还得解密,这就费时费力太低效了。
PS:这里将我常用的两款软件补充说明一下,Fiddler只能抓取http和https协议,而Wireshark就较为强大了,我们常见的协议都是支持的,只是Wireshark无法解析https协议。
剩余内容:点击原文>>>