快速锁定Bug!掌握Wireshark等抓包技术,提升测试效率
liebian365 2024-10-14 22:19 27 浏览 0 评论
前言
相信做了测试一段时间的小伙伴都会开始意识到抓包对于测试的重要性,它涉及到功能测试、性能测试、自动化测试、安全测试和数据库测试等等。可以说我们要想做好测试就必须和抓包打交道,脱离抓包的测试是不合格的。人们都说黑客利用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协议。
我们可以在右边Inspectors中查看信息。
上图中的Protocal一栏对应了各个协议层的请求和响应,可以根据自己需要查看相应协议层的信息!知道为啥黑科钟情于Wireshark了吧,它实在太强大了!所以需要哪款软件还得根据自己需求来。
4、有哪些抓包的方式
抓包的方式主要分为两种:主动抓包和被动抓包。下面对这两种方式进行详细说明:
4.1)主动抓包:
使用抓包工具:这是最常见的主动抓包方式。通过使用专门的抓包工具,用户可以选择在何时、何地、以及对哪些数据包进行抓包。用户需要手动启动抓包工具,并根据需要设置过滤条件,以便只捕获感兴趣的数据包。
命令行工具:一些命令行工具如tcpdump可以通过在终端中运行命令来主动捕获网络数据包。用户可以使用命令行参数指定捕获条件,例如捕获特定端口或协议的数据包。
4.2)被动抓包:
网络设备抓包:网络设备(如路由器、交换机、防火墙等)通常具有抓包功能。管理员可以配置这些设备以在网络流经设备时自动抓取数据包。这对于监控整个网络流量、进行安全审计等很有用。
代理服务器:在某些情况下,代理服务器可以用于被动抓包。代理服务器充当客户端和服务器之间的中介,可以捕获通过它的数据流量。工具如Fiddler就是基于代理服务器的抓包工具。
4.3)混合方式:
有时,可以通过在网络中插入设备或利用网络中的镜像端口(SPAN或RSPAN)来实现混合方式的抓包。这样的方式既能被动地监控整个网络流量,又能主动选择关注的部分。
5、实战
以上对抓包的原理和作用进行了一些介绍,那么肯定很多小伙伴还意犹未尽,你们肯定想看看某款抓包工具具体怎么抓包的,那就满足一下你们,是骡子是马拉出来遛遛,接下来我就以fiddler来进行一次实际演练。
我们就以篡改百度访问请求为跳转淘宝网为例吧。
5.1)先设置全局断点:单击菜单栏中的Rules--Automatic Breakpoint--Before Requests,会拦截全部请求报文。
5.2)然后对请求的网址进行过滤
5.3)然后我们去浏览器中输入百度的网址www.baidu.com并按下回车,浏览器会一直转圈等待响应,同时电脑任务栏fiddler图标会闪烁。
5.4)然后我们去fiddler里面找到对应的请求,转到Inspectors页如下所示,像图中那样双击百度网址。
5.5)然后改成如下的淘宝网址并点击save
5.6)接下来点击图中绿色按钮放行该请求
5.7)会发现刚才转圈的请求状态会立马跳转到淘宝网,这里某些聪明的娃肯定联想到了什么,嘿嘿,稍微懂点网络安全的都知道黑客篡改跳转页面吧,这就是原理啦!
总结
今天对抓包进行了原理和实战的一些讲解,希望能够助力大伙在往后的测试工作中更加深入的分析和定位Bug,有机会的话我还会再出几期解析抓包数据信息的内容!
文末了,我邀请你进入我们的软件测试学习交流群,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。
最后:
1)关注+私信回复:“测试”,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!
2)关注+私信回复:"入群" 就可以邀请你进入软件测试群学习交流~~
相关推荐
- 深度解密epoll 如何工作的?(epoll基本处理流程)
-
epoll...
- 大乐透第19082期:头奖开出7注1000万分落六地 奖池41亿元
-
2019年7月17日晚开奖的体彩超级大乐透第19082期开奖号码为:前区06、18、20、21、31,后区03、04。本期大乐透前区号码五区比为1:0:3:0:1,二区和四区号码没有给出。当期前区和值...
- 【开奖】4月27日周六:福彩、体彩(2021年4月27日体彩开奖结果)
-
4月27日开奖福彩3D第2019110期:61222选5第2019110期:0812202122排列3第19110期:303排列5第19110期:30305大乐透第19047期:0304...
- “红狒狒”落户哈尔滨铁路局(哈尔滨铁路红肠)
-
这几天,“红人”“红狒狒”在牡丹江机务段可引起了不小的轰动,众粉丝争相与其拍照留念,在该段人气爆棚!“红狒狒”到底何许人也?“红狒狒”,中文名:和谐3D型电力机车;绰号:红狒狒、番茄;制造商:大连机...
- 2D、3D、2.5D,做游戏还是搞噱头?玩家都晕了
-
前言游戏类型就像某种潮流,一种流行罢,另一种接棒成为主流。前两年的新作大多以“开放世界”为标签,在追求纯沙盒的过程中打造出一些细致的分类,比如说“类GTA沙盒”。诚然,纯碎的沙盒游戏并不多见,业内只有...
- 《战神4》PC版宣传片发布 GTX 1070即可60帧畅玩
-
在今年10月的时候索尼PlayStation官方正式宣布圣莫尼卡2018年的《战神4》将于2022年1月14日推出PC版本,官方在今天公布了一段PC版宣传片,并且公开了游戏的配置需求。下面让我们一起来...
- 男星深情好丈夫形象崩塌,半夜搂美女坐大腿,举止亲密
-
近日,于晓光被拍到深夜在酒吧玩,结束后与一名女子一起上车离开。上车后,女子直接坐在了他腿上,他也顺势搂着美女,美女满脸笑容地坐在他腿上玩手机离开。可能有人会好奇,于晓光是谁呢?于晓光是韩国艺人秋瓷炫的...
- d3d12dll丢失怎么修复?d3d12dll加载失败怎么解决?
-
d3d12.dll丢失怎么修复?d3d12.dll加载失败怎么解决?很多朋友想要运行游戏的时候都会遇到这个问题,这种情况该怎么办呢?今天系统之家小编给朋友们讲讲具体的解决方法,操作其实还蛮简单的。...
- 许多玩家反馈《生化4RE》PC一直崩溃 无法进入游戏
-
今日(3月24日),卡普空《生化危机4:重制版》正式发售,然而有部分PC玩家遇到了游戏崩溃等问题。很多玩家在贴吧发帖称游戏遇到了严重的崩溃问题,且经常反复,报错代码普遍为FatalD3Derror...
- 微软正式推出适用于WSL Linux的D3D12 GPU视频加速技术
-
今天,微软正式向WindowsSubsystemforLinux(WSL)用户发布了Direct3D12GPU视频加速支持。在微软通过WSL允许在Linux下使用Open...
- 《怪物猎人:崛起》曙光系统报错“Fatal d3d error”的解决办法
-
《怪物猎人:崛起》曙光系统报错“Fatald3derror”的解决办法不少小伙伴反应《怪物猎人:崛起》DLC曙光预载以后打不开游戏,出现了Fatald3derror类似的错误代码,这类问题的解...
- Mac+双屏,前端程序员的专业配置 - Loctek 乐歌 D3D 双屏电脑显示器支架
-
做FE也有一段日子了,电脑屏幕每天在设计稿、浏览器、IDE、即时通讯工具、Terminal、邮箱之间切换。虽然mac的工作区带来了很多灵活,但是依然略显不足。于是入手支架,把公司配的电脑和显示器发挥起...
- RPC 的原理和简单使用(rpc详解)
-
RPC的概念RPC,RemoteProcedureCall,翻译成中文就是远程过程调用,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。在调用的...
- 大厂开源的golang微服务rpc框架 — kitex
-
提前rpc估计所有的开发同学都知道,不知道的也无所谓,毕竟我也好几年没用了,今天带大家在复习一下。RPC(RemoteProcedureCall):远程过程调用,...
- 干货!一文掌握Protobuf所有语言所有用法,快收藏
-
说实话,Protobuf这个库,让人相见时难别亦难,东风无力百花残,每次等到要用它的时候,总感觉还没有完全掌握它的用法,而实际上等去百度或者谷歌的时候,教程都是多么的凌乱不堪。学会它,最直接关系到的,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)