面试题-网络篇-fiddler

一、弱网测试

  • 弱网测试的原理是什么?
    fiddler来模拟限速,因为fiddler是作为代理软件,提供了客户端请求前和服务器响应前的回调接口。可以在这些接口自定义一些逻辑。Fiddler通过延迟发送数据和接收数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。
  • fiddler怎么模拟弱网场景?MQTT是什么?
    在Fiddler中rules右键点击Customize Rules(自定义规则),然后双击大概然后双击打开 Customize Rules.js文档,修改文档中每上传或者是下载1kb数据所需要的时间来模拟我们的弱网环境,然后再rules–performance(性能)下面点击simulate modem speeds(模拟调制解调器速度)开启弱网环境的模拟 ,通过以上三步,就可以实现弱网测试场景的构造。
    在这里插入图片描述
    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。

二、断点

  • 断点的概念
    Break Point:进行接口测试时,拦截和修改数据,测试后端。主要是用来修改请求和响应数据的
    比如一个购买的金额输入框,输入框前端做了限制100~1000,那么我们测试的时候,需要测试小于100的情况下,很明显前端只能输入大于100的。那么我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否可以;
  • 断点的方式有哪一些
    Before Requests:在请求时,没有达到服务器之前设置断点。 --全局断点(中断fiddler捕获的所有请求)
    After responses:服务器响应之后,在fiddler将响应传回给客服端之前。 --全局断点(中端fiddler捕获的所有服务器返回数据)
  • 可以修改那些请求
    请求:可以修改请求头信息,如cookie,User-Agent等,也可以修改请求数据,如表单限制,字段大小限制
    响应:可以修改响应体的数据

三、抓包工具的区别?

1.Fiddler是免费开源的,但只能在windows下使用,mac和Linux是不支持的
2.Charles支持windows、MacOS和Linux操作系统,但是它不免费
3.Wireshark可以抓取所有协议的内容,非常适合协议的学习和网络问题的分析,但是Wireshark它需要你具备一定的网络知识,所以对于初学者来说不是很友好
4.F12最简单最轻量级,但是和其他的抓包工具还是存在一定的差距
5.TCPdump主要用于Linux命令的抓包工具,前提是你要会操作Linux系统

四、Fiddler能做什么?

Fiddler是一款功能强大的抓包工具,能获取和记录客户端与服务器之间的HTTP(及HTTPS)请求。
1、抓包:抓取HTTP请求和响应内容。
2、改包:设置断点,拦截HTTP请求或响应报文,修改后再放行。
3、模拟各种客户端:fiddler可修改user-agent内容,伪装成各种客户端发送请求。
4、弱网测试:通过限制HTTP请求或响应的速度,来模拟网络延迟。

五、Fiddler为什么能抓包?

Fiddler实际上是一个web代理服务器,代理地址为127.0.0.1,默认端口为8888。代理服务器位于Web浏览器和Web服务器中间,扮演“中间人”的角色。
1、当Fiddler启动抓包时,会将本机internet连接中,设置为使用代理服务器,地址为127.0.0.1,端口号为8888
2、当Fidder关闭抓包时,将本机internet选项中,取消代理设置。
Fiddler只能抓HTTP和HTTPS协议的包,其他协议的包是抓不到的,比如qq聊天时候发送的消息,就是抓不到的。

六、Fiddler怎么修改HTTP协议内容?

举例,假设对www.baidu.com发送请求,

1、若要修改HTTP请求的内容
   1)在fiddler左下角的命令行中,输入bpu www.baidu.com
   2)浏览器中打开百度首页,即发送HTTP请求
   3)fiddler中,该HTTP请求显示出来,且有个红色的T标志
   4)在右侧的界面中,打开raw tab页,可手动修改请求的内容,点击【Run to completion】放行
   5)输入bpu则取消断点设置。
2、若要修改HTTP响应的内容,在fiddler左下角命令行中,输入bpafter www.baidu.com,其他同上

七、fiddler如何修改请求参数:

方法一:直接在composer中修改,点击按钮【execute】重新请求就可以了

方法二:用断点的方式修改。fiddler下边有一个设置断点的按钮,箭头向上请求前断电,箭头向下响应断点。

设置断点以后,就可以在webform中修改请求参数了,然后点击按钮【run to connection】就可以重新发送了

八、Fiddler如何实现弱网测试?

弱网一般指在电梯、地铁、公交车、隧道等场景下使用客户端浏览网页或者APP,此时可能会发生如下问题:
1、操作时间慢
2、用户体验差,出现闪退、卡死等情况
3、非正常情况下,出现bug的可能性增加,比如在电梯里打开app抢代金券,可能因为网络不好点击按钮后无反应,就多次点击按钮,导致网络恢复后,该用户抢了N多张代金券(需求是一个用户只能抢一张代金券)

弱网可分为如下场景:
1、网络慢,有延迟:fiddler的Rules->Performance->Simulate Modem Speeds,如果需要设置具体的延迟时间,可在FiddlerScript脚本中修改。
2、网络中断或者网络超时:都可以通过下断点的方式来模拟。

如何进行弱网测试:

fiddler的弱网测试需要用到fiddler script 插件

如果是发送请求延迟:fodder script代码中修改函数onBeforeRequest中的一行代码。 bscession[“request-trickle-delay”]=‘3000’,点击按钮【save script】保存,然后用replay回放请求就可以了。这样就模拟了请求发送延迟3秒了

如果是响应延迟:fodder script代码中修改函数onBeforeRequest中的一行代码。 bscession[“response-trickle-delay”]=‘3000’,点击按钮【save script】保存,然后用replay回放请求就可以了。这样就模拟了响应延迟3秒了。

九、fiddler抓不到请求的原因?

(1)抓不到app的请求,可能是代理或者端口设置的不对

(2)fiddler配置问题导致:

a、fiddler添加了域名过滤,所以抓不到其他域名的请求

b、fiddler关闭了代理功能,所以抓不到请求(开关在左下角)

c、fiddler设置了process,只能抓到某个浏览器的请求

(3)ios抓不到包有可能是证书过期了,需要重新安装证书

实操

1、设置抓取https请求
Tools–》Options–》HTTPS,勾选CaptureHTTPS CONNECTs、Decrypt HTTPS traffic 、ignore server certificate errors(unsafe),点击OK,会弹出证书直接确认即可。
在这里插入图片描述
2、设置抓取手机app的包
(1)配置移动端证书检查,Tools---->Connections---->勾选Allow remote computers to connect:
在这里插入图片描述
(2)手机设置方式,下面以iphone设置为例:(系统为10.0.0以上的系统,需要在关于手机–证书设置页面进行设置)
在手机上safari浏览器输入地址:电脑ip:8888,如http://192.168.1.4:8888,会出现如下页面
在这里插入图片描述
点击安装,安装完成之后要去关于手机–证书设置页面进行认证
在这里插入图片描述
再去手机wifi处设置代理
在这里插入图片描述
3、设置断点,篡改和伪造数据
fiddler作为代理服务器,可被篡改的两个点:before requests和after responses
在这里插入图片描述
有两种方法设置断点:

1).fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。
有两个断点位置:
a. before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
b.after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
2).命令行下输入。Bpafter xxx或者bpv,bpu,bpm等设置断点。这种断点只针对特定类型的请求

4、简单的并发测试
在设置被断点的请求处,按shift+u就可以设置并发请求次数,这样可以测试一些场景就是比如抽奖的活动,一个用户只能参与一次抽奖,

在这里插入图片描述

5、慢网络测试(限制网速)
1)、Fiddler—》Rules—》Customize Rules ,
2)、在CustomRules.js里搜索找到:m_SimulateModem,
3)、在如下脚本中修改上传及下载延时毫秒数即可:
if (m_SimulateModem) {undefined

        // Delay sends by 300ms per KB uploaded.

        oSession["request-trickle-delay"] = "300"; 

        // Delay receives by 150ms per KB downloaded.

        oSession["response-trickle-delay"] = "150"; 

    }

修改完成后,重启下fiddler,Rules---->Performance---->Simulate Modem Speeds,选中即可生效。

6、命令行的用法
在这里插入图片描述
常用命令:
help----打开官方quickexct命令用法帮助
?baidu.com-----选中带有baidu.com的请求
bpu www.baidu.com------拦截baidu.com域名请求的request
Bpafter www.baidu.com-----拦截baidu.com域名的responses

7、host配置(更改网站host的需求)
Tools–>Hosts,勾上enable,然后再下方配置一个目标IP地址+host域名(可用的),save,再来发送请求Replay的时候会指向新配置的IP地址,即可查看效果。
在这里插入图片描述

8、AutoResponder: 文件代理,可以把请求的资源用本地文件代理掉,方便调试线上bug文件,具体如下:
线上bug定位Hotfix bug:(只指定某一个连接文件到指定的IP或者服务器)。
比如:发现线上某个文件出现bug时,现在要将此文件映射到本地环境(或者是非线上开发测试环境),做代码的修改之后快速的查看效果是否与预期一致,是否生效,是否能修复bug。
将请求拖入到AutoResponder中,可以看到最下方有一个EXAT,叫精准匹配(也支持正则表达式模糊匹配);
在下方可以选择本地(非线上测试开发环境)文件路径来进行测试查看结果,当然也可以选择其他的一些响应,比如200,500等状态。

9、Composer: 前后端接口连调,可以用来伪造请求–需要后端接口:修改里面的数据参数,伪造请求,再访问查看效果。

请求的伪造:可以伪造Cookie,进行登录
前后端连调:Composer -> 选择请求方式 GET -> copy 地址 参数-> excuete
然后查看返回数据参数。
POST参数一般要放到RequestBody中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值