在软件测试的面试过程中,Fiddler抓包工具的相关知识,可以说是必考的了,下面为大家整理了一些高频Fiddler面试题,拿走不谢~
1、Fiddler弱网测试的原理是什么?
Fiddler来模拟限速,是因为Fiddler作为代理软件,提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口自定义一些逻辑。
Fiddler通过延迟发送数据和接收数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。
2、Fiddler怎么模拟弱网场景?
Fiddler的弱网测试需要用到fiddler script 插件,主要包括两个步骤:
(1)设置弱网值参数
点击Fiddler中Rules下的Customize Rules(自定义规则),双击打开 Customize Rules.js文档,修改文档中每上传或者是下载1kb数据所需要的时间来模拟弱网环境。
如果是发送请求延迟,修改一行代码:oSession["request-trickle-delay"] = "3000",保存,再用Replay回放请求,这样就模拟了请求发送延迟3秒了。
如果是响应延迟,修改一行代码:oSession["response-trickle-delay"] = "3000",保存,再用Replay回放请求,这样就模拟了响应延迟3秒了。
(2)启动弱网模式
打开Fiddler→Performance→勾选Simulate Modem Speed,启动弱网模式
3、什么叫断点?
断点(Break Point):是在特定点暂停程序执行的特殊标记,使用断点可以检查当前程序状态和行为,在进行接口测试时,为了测试后端功能,会经常打断点。
4、Fiddler打断点有哪些方式?
(1)在工具栏设置全局断点,会拦截所有的请求
Before Requests:请求前断点,也就是没有达到服务器之前设置的断点,会中断Fiddler捕获的所有请求。
After responses:在服务器响应之后的断点,也就是服务器响应之后,在Fiddler将响应传回给客户端之前,会捕获所有服务器返回的数据。
Disabled:取消断点。
(2)以命令行的形式设置断点,只会拦截某个请求
bpu url : 在请求之前断点;
bpu:取消所有的请求断点;
bpafter url :在响应到达时中断;
bpafter:取消所有的响应断点;
断点之后,可以点击Go按键或者点击Run to Completion按键进行发送。
5、用Fiddler设置断点有什么作用?
进行接口测试时,修改请求参数或响应参数,验证后端接口功能。
例如:测试一个输入框,前端限制输入数字大小为5~10,当我们需要测试输入大于10或者小于5的数字时,服务器的响应是否正确,这时无法通过前端页面进行操作。
因为前端已经限制了不让输入大于10或者小于5的数字,此时就需要抓包,修改请求里的参数,绕过前端去测试服务端的功能是否正常。
6、怎么用Fiddler拦截来自某个网址的所有请求?
(1)在命令行输入:bpu www.csdn.net;
(2)打开csdn任意网页,发现都被拦截到了;
(3)打开csdn其他网站,其它网站可以正常请求;
(4)说明只拦截了来自部csdn网站的请求;
(5)清除输入bpu回车即可。
7、网络爬虫是干什么的?
网络爬虫是一种互联网机器人,它通过爬取互联网上网站的内容来工作。它是用计算机语言编写的程序或脚本,用于自动从Internet上获取任何信息或数据,机器人扫描并抓取每个所需页面上的某些信息,直到处理完所有能正常打开的页面。
比如电子商务公司通常需要一个价格比较系统来从主要的电子商务平台(如拼多多,淘宝,京东等)捕获同一产品的价格信息,以便为用户提供最实惠的产品价格,这就要求使用Web爬虫从主要的电子商务平台搜寻信息。
8、Wireshark抓包工具的主要使用场景有哪些?
Wireshark抓包工具的主要目的,是用来分析测试过程中间的网络问题。
比如测试某个Web页面时页面打不开,那么我们可以通过Wireshark来分析一下是客户端的问题还是服务端的问题,同时我们也可以来分析一下是哪个连接阶段出现的问题。
拿Http协议来举例,可以通过Wireshark进行分析得出是在TCP 3次握手过程中间发生的错误还是在握手之后进行数据传输的时候发生的错误,是客户端主动断开的连接还是说被服务器给reset,我们都可以通过Wireshark抓包分析得出。
9、用F12抓包后如何解析数据?
(1)直接处理
当网页返回数据就是文本,则不需要过滤处理,直接用就可以了。
(2)Json解析
如果网页返回的不是HTML数据是Json数据,那么就需要用到Json解析技术。
(3)正则表达
如果返回的数据是符合正则表达式的数据,就可以用正则去做解析。
(4)其他解析方式
爬虫常用的解析库:XPath、BeautifulSoup和PyQuery等。
10、抓包工具的区别?
(1)Fiddler
是免费开源的,但只能在windows下使用,Mac和Linux是不支持的。
(2)Charles
支持Windows、MacOS和Linux操作系统,但是不免费。
(3)Wireshark
可以抓取所有协议的内容,非常适合协议的学习和网络问题的分析,但是Wireshark需要具备一定的网络知识,所以对于初学者来说不是很友好。
(4)F12
最简单最轻量级,但是和其他的抓包工具还是存在一定的差距。
(5)TCPdump
主要用于Linux命令的抓包工具,前提是要会操作Linux系统。
11、Fiddler能做什么?
Fiddler是一款功能强大的抓包工具,用于记录客户端与服务端之间的所有HTTP(及HTTPS)的通信数据。
(1)抓包
抓取HTTP请求和响应内容。
(2)改包
设置断点,拦截HTTP请求或响应报文,修改后再放行。
(3)模拟各种客户端
Fiddler可修改User-Agent内容,伪装成各种客户端发送请求。
(4)弱网测试
通过限制HTTP请求或响应的速度,来模拟网络延迟。
12、Fiddler的抓包原理是什么?
Fiddler实际上是一个Web代理服务器,代理地址为127.0.0.1,默认端口为8888,代理服务器位于Web浏览器和Web服务器中间,扮演“中间人”的角色。
(1)当Fiddler启动抓包时,会自动把 Intemet选项中的代理修改为127.0.0.1,端口:8888;
(2)当Fidder关闭抓包时,会自动在 Intemet选项中取消代理;
Fiddler只能抓HTTP和HTTPS协议的包,其他协议的包是抓不到的,比如微信聊天时候发送的消息,就是抓不到的。
13、Fiddler怎么修改HTTP协议内容?
举例,假设对www.csdn.net发送请求:
(1)若要修改HTTP请求的内容
1)在Fiddler左下角的命令行中,输入bpu www.csdn.net;
2)浏览器中打开百度首页,即发送HTTP请求;
3)Fiddler中,该HTTP请求显示出来,且有个红色的T标志;
4)在右侧的界面中,打开raw tab页,可手动修改请求的内容,点击【Run to completion】放行;
5)输入bpu则取消断点设置。
(2)若要修改HTTP响应的内容,Fiddler左下角命令行中,输入bpafter www.csdn.net,其他同上。
14、Fiddler如何修改请求参数?
主要有两种方式:
(1)直接在Composer中修改
修改参数后,点击按钮【Execute】重新请求即可。
(2)用断点的方式修改
Fiddler下边有一个设置断点的按钮,箭头向上表示请求前断点,设置断点以后,就可以在【WebForms】中修改请求参数了,再点击按钮【Run to Completion】就可以重新发送了。
15、Fiddler抓不到请求的原因有哪些?
主要从三个方面进行展开:
(1)抓不到App的请求,可能是代理或者端口设置的不对;
(2)Fiddler配置问题导致:
a、Fiddler添加了域名过滤,导致抓不到其他域名的请求
b、Fiddler关闭了代理功能,导致抓不到请求(开关在左下角)
c、Fiddler设置了process,只能抓到某个浏览器的请求
(3)IOS抓不到包有可能是证书过期了,需要重新安装证书。