软件测试里面关于网络抓包的学习笔记&思考

打工人tips:

对于网络摄像机的而言,除了设备本身的网络通信以外,还要对接对应运营商的手机app端和web端。
前段时间对于设备的主板进行过tcp的抓包,是在应用层,利用tcpdump和iperf3进行丢包率和网络吞吐量的测试,再加上wireshark可以具体查看包的内容。除此之外设备也有对应的app和web端。最近拿到了web端的账号,在web端用的http协议也可以用fidder进行抓包。

网络测试理论

(参考来自:https://blog.csdn.net/weixin_42717928/article/details/107236014ps_request_misc=&request_id=&biz_id=102&utm_term=%E7%BD%91%E7%BB%9C%E6%B5%8B%E8%AF%95&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-107236014.nonecase&spm=1018.2226.3001.4187 )
衡量网络好坏的标准

  1. 带宽:单位时间内传输的数据量,单位通常是:每秒比特数:bps。带宽反映了网络的传输能力。1M带宽即指1Mbps=1000Kbps=1000/8KBps=125KBps
  2. 丢包::数据丢包个数=发送的数据包数-接收的数据包数。丢包反映了网络可靠性,越小越好。
  3. 时延:数据包从发送开始到接收到该数据,所耗费的时间,单位通常是ms(毫秒)。时延反映了网络的速度。
  4. 抖动:指时延的变化,即两个数据包时延的差值。抖动反映了网络的稳定性
  5. 乱序:指接收到的数据包顺序和发送顺序不一致的次数。乱序反映了网络的稳定性,越小越好(以丢包为准,这一条经常可以忽略)
  6. 更多术语:
    a.上下行
    上行带宽即上行速率:本地信息上传到网络的速率。
    下行带宽即下行速率:网络信息下载到本地的速率。

上行速率不等于下行速率,在大多数情况下,下行带宽与上行带宽的比率可以达到10:1。用户习惯下载,浏览视频等,下行宽带使用较多,而上行使用较少(上传数据),为了上行资源不浪费,所以这样加以限制

b.上/下行丢包率

有时候打开网页特别慢,造成这种原因一是网站服务器问题,这个我们无能为力;二是我们自身网络问题,可能是线路、路由器、ADSL等问题,可以通过查看网络是否存在数据丢包或者网络延迟现象分析。

数据在网络上是以数据包为单位传输的,每包nK,由于种种原因,不可能百分百完成,碰到这种情况,网络会自动让双方的电脑根据协议来补包。如果你的线路好,速度快,包的损失会非常小,补包工作也容易完成,因此可以近似的将你的数据看做是无损传输。但是,如果你的线路较差,数据的损失量就会非常大,补包工作也不可能百分之百完成。在这种情况下,数据的传输就会出现空洞,造成丢包。

丢包率:1 – (指单位时间内接受到的数据包数 / 发送的总数据包数)
如果出现请求超时这种,说明丢包了

1、如果PING外网掉包,而内网网关不掉。应该是局域网路由器有问题,就要检查本地路由器。

2、如果内外网都掉包,就检查自己系统。如TCP/IP设置、网卡有没有禁用等,自己系统没问题,然后再检查局域网线路、路由器、ADSL(ADSL技术采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰)。

c.上/下行延迟(ms)

是由于网络在数据包发送和接受过程中,存在较大的网络延迟造成的。消息传送了很久仍没有得到响应。ping中时间就是延迟的大小(时间=32ms),越小越好

d.DNS延迟(ms)
DNS是域名解析服务器,延迟就是你和这个服务器的连接速度, DNS的作用就是把网址解析成IP地址,因为电脑网络连接只能通过IP连接。

弱网测试

网络条件复杂(WiFi,2/3/4/5G);而且目前三大运营商(移动、电信、联通),所提供的网络制式不太相同;而且用户使用场景(地铁,郊外,室内)也不一样。

所以对客户端的要求比较高,如果不做任何处理的话很可能会崩溃闪退,所以需要做容错处理(异常机制,缓存处理,重连机制,超时机制)

  • 异常机制:网络异常,没有正常收到服务端数据,需要进行容错处理,不然可能出现奔溃、闪退。
    (容错处理:指软件运行时,能对由非正常因素引起的运行错误给出适当的处理或信息提示,使软件运行正常结束。)

  • 超时机制:网络加载要时间,在加载过程中如果你看到菊花或者进度条,起码还有个期盼,比空白页面好多了,但是服务端一直没返回,时间过长用户的耐心也会消磨殆尽。一般用户所能忍受的最佳响应时间是2s,一般情况下超时时间设置为5s,不过这不是一定的,在2G下,5s就太短了(网络慢都还没加载好),但是在4G情况下,5s就相对长了点(网络快),具体根据网络制式来设置超时时间。

  • 重连机制:游戏中常见

  • 缓存机制:新闻app,页面显示是之前加载过的内容就可以继续浏览

Fiddler抓包原理:

Fiddler是位于客户端和服务器端之间的的HTTP代理, 也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。
它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大。

Fiddler的使用:
首先下载好后,根据提示对https进行授权。修改浏览器对应的代理地址还有端口号。如果是app客户端就要进行相关的授权和信任证书下载。
在chorme浏览器下面的代理配置

软件测试里面关于网络抓包的学习笔记&思考

左边一栏是session,记录了抓到的每条http请求,包括了url,协议,状态码,body等信息。最前面的小标志代表了不同的数据类型。
其中host字段经常会有多个子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。

软件测试里面关于网络抓包的学习笔记&思考

右边是详细的数据统计和展示,针对每条http请求的具体统计和数据包分析。
inspector
下面有headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息。
当点击一个具体的session时候,上面是http request header 下面是http response header。对于请求和响应的内容,还可以选择不同的格式查看。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。

软件测试里面关于网络抓包的学习笔记&思考
也可以粘贴一次请求的raw http headers,直接excute,达到模拟请求的目的!

Filter
Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。
过滤内网http请求而只抓取Internet的http请求,或则过滤相应域名的http请求。也可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求

软件测试里面关于网络抓包的学习笔记&思考
AutoResponder
Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后在进行访问

breakpoint
HTTP断点调试

  1. 修改HTTP请求头信息。例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到达到相应的目的(调试,模拟用户真实请求等)。

  2. 构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。(前端和服务器端可以各自模拟响应和工作,提高开发效率)

  3. 拦截响应数据,修改响应实体。

有两种方法设置断点

1.Fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。
有两个断点位置:
a. before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
b.after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。

2.命令行下输入。Bpafter xxx或者bpv,bpu,bpm等设置断点。这种断点只针对特定类型的请求。

文章知识点与官方知识档案匹配,可进一步学习相关知识网络技能树跨区域网络的通信学习网络层的作用22418 人正在系统学习中

来源:小添_TinU

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月14日
下一篇 2022年5月14日

相关推荐