打工人tips:

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

网络测试理论

(参考来自:https://blog.csdn.net/weixin_42717928/article/details/107236014?ops_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),越小越好

参考:
1-30ms:极快,几乎察觉不出有延迟
31-50ms:良好,没有明显的延迟情况
51-100ms:普通,能感觉出网络有明显延迟,稍有停顿
大于100ms:差,有卡顿,丢包并掉线现象

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浏览器下面的代理配置
我只有ios端系统的设备,要在用户端进行一个配置,大概的步骤就是先用pc去ping手机的ip地址(在设置-无线局域网-连接的wifi的右边的小标志可以看得到)可以ping通,就在页面下面设置HTTP代理,手动改输入我们fiddler的ip地址和端口号。在手机浏览器中输入这个ip+端口号,下载FiddlerRoot certification,在vpn与设备管理里面选择安装,再在关于本机里面选择信任证书,就可以抓到包了
(具体教程地址 : https://www.jianshu.com/p/d8619887805b)

Fiddler的数据包分析

左边一栏是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头信息。

composer
composer面板下,则可以模拟向服务器发送数据的过程,跳过一切前端的限制,直接给服务器发请求并得到回应。从而达到一些特殊的测试目的。

也可以粘贴一次请求的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等设置断点。这种断点只针对特定类型的请求。

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

  1. 关于Linux 网络抓包的一些笔记整理

    写在前面 遇到一个 ping 单通 的情况,需要抓包分析下,所以整理这部分笔记 博文内容涉及: HTTP/TCP 抓包分析 Demo ICMP 抓包分析 Demo Nginx 抓包分析用户名密码 De ...

  2. fiddler抓包工具学习笔记5-模拟弱网测试

    1.模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多   2.Fiddler弱 ...

  3. xmpp协议抓包_开源网络抓包与分析框架学习-Packetbeat篇

    开源简介 packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP.MySQL.Redis等.在实际使用中,通常和Elasticsearch以及kibana联合使 ...

  4. 【学习点滴】linux调试工具、cmake和网络抓包

    目录 gdb 多进程调试 多线程调试: gdb底层原理 Linux下查看服务器端的并发连接个数: Valgrind memcheck strace Linux下,绑定1024以下的端口需要root权限 ...

  5. ubuntu 下 Wireshark网络抓包工具使用

    Wireshark的原名是Ethereal,新名字是2006年起用的.当时Ethereal的主要开发者决定离开他原来供职的公司,并继续开发这个软件.但由于Ethereal这个名称的使用权已经被原来那个 ...

  6. 网络抓包wireshark

    网络抓包wireshark 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的 ...

  7. Wireshark网络抓包实践

    1. 网络抓包相关阅读 抓包工具Wireshark基本介绍和学习TCP三次握手 Wireshark网络抓包实践 HTTP代理神器Fidder 2. Wireshark 世界上最流行的网络协议分析器,抓 ...

  8. 计算机网络抓包参考文献,计算机网络课程设计二(网络抓包与分析)

    <计算机网络课程设计二(网络抓包与分析)>由会员分享,可在线阅读,更多相关<计算机网络课程设计二(网络抓包与分析)(9页珍藏版)>请在人人文库网上搜索. 1.课程设计课程名称: ...

  9. 黑客必用神器,网络抓包工具

    点击上方" 程序IT圈 ",选择"置顶公众号" 每天早晨8点50分,准点开车打卡 来源:blog.csdn.net/xjpdf10/article/detail ...

最新文章

  1. hbase-1.3.2安装
  2. 思科IOS新命名规范详细图解(IOS 12.3) 各版本区别
  3. can总线配置读入是什么意思_CAN总线基础知识学习笔记
  4. qq邮箱html模板_用了这么多简历模板,发现只有QQ邮箱自带的模板最好用
  5. python常用_30个Python常用小技巧
  6. CISCO 路由器(1)
  7. 小D课堂 - 新版本微服务springcloud+Docker教程_3-02CAP理论知识
  8. 对python生成的EXE文件 进行反编译
  9. 如何在Word里打出带圈的数字?
  10. div 完美三等分(来源其他网站)
  11. debug断点调试进不去
  12. java分数计算_分数计算java
  13. 数据结构C语言——广义表
  14. python标准数据类型叮叮叮
  15. 七夕总结:2018新型婚恋交友 App 激增!18禁,年轻人有点敢玩
  16. SQL 索引超详细解析
  17. CityEngine 2013部署安装
  18. Oracle数据泵导出和导入数据
  19. 吉林大学计网真题以及期末题汇总
  20. c语言程序设计班车管理系统,班车信息管理系统.doc

热门文章

  1. MyEclipse下载地址全攻略
  2. 常见DOS命令及自定义DOS命令
  3. 蚂蚁金服 SOFAStack 团队:开源不是一锤子买卖 | 码云封面人物第 16 期
  4. 房产管理系统架构分析
  5. Windows下验证https证书
  6. 用巴特沃斯滤波器进行潮汐滤波分析
  7. 关于天猫抢茅台的Python秒杀脚本!
  8. jsp taglib指令_JSP Taglib指令
  9. 循环码的c语言,循环码的概念及性质.doc
  10. 尚硅谷大数据视频_Zookeeper视频教程