首页 > 其他分享 >高频Fiddler软件测试面试题

高频Fiddler软件测试面试题

时间:2022-11-07 10:02:55浏览次数:97  
标签:面试题 Fiddler HTTP 请求 响应 修改 断点 软件测试


在软件测试的面试过程中,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抓不到包有可能是证书过期了,需要重新安装证书


标签:面试题,Fiddler,HTTP,请求,响应,修改,断点,软件测试
From: https://blog.51cto.com/u_15333628/5827863

相关文章

  • 这里有篇Charles详细教程,看完后就可以把Fiddler卸载了
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试相信测试......
  • Vue面试题44:Vue3为什么要用Proxy代替defineProperty?(总结自B站up主‘前端杨村长’视频,
    分析Vue3中最重大的更新之一就是响应式模块reactivity的重写。主要就是用Proxy替换`defineProperty实现响应式;此变化主要是从性能方面考量;思路属性拦截的几种方......
  • python面试题汇总
    一基础阶段1数据类型:python数据类型:int/float/str/bool/list/tuple/set/dict可变类型(可以修改元素):list,dict,set不可变类型:int,float,bool,str,tuple2数据类......
  • 数据分析面试题集锦(四)
    大家好,今天整理数据分析面试题集锦(四),经常会被问到,“数据分析需要学习什么技能?”,“针对实际的业务场景,如何使用数据分析工具去分析?”基于此作者总结数据分析面试常用的问题......
  • 21个Transformer面试题的简单回答 -- 加强版
    原文链接:https://jishuin.proginn.com/p/763bfbd565fc本文在原文基础框架上有增加,附上更详细或者正确的解答。1.Transformer为何使用多头注意力机制?(为什么不使用一个头)答......
  • 深入理解Java内存区域(最新版面试题)
    1、什么是JVM?JVM(JavaVirtualMachine)是用于运行Java字节码的虚拟机,包括一套字节码指令集、一组程序寄存器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。JVM......
  • 【面试题】JS 常见的 6 种继承方式(常见)
    继承概念的探究说到继承的概念,首先要说一个经典的例子。先定义一个类(Class)叫汽车,汽车的属性包括颜色、轮胎、品牌、速度、排气量等,由汽车这个类可以派生出“轿车”和“货车......
  • 【面试题】 面试手写JS 十六题(必看)
     1、手写实现防抖和节流1.1实现防抖函数防抖函数原理:把触发非常频繁的事件合并成一次去执行 在指定时间内只执行一次回调函数,如果在指定的时间内又触发了该事件,则回调函......
  • 【面试题】面试小技巧:如果有人问你 xxx 技术是什么?
    背景在前几天,有一个朋友突然问了我一个问题,说如果有人问你“React是什么?你怎么回答。 ”,我当时脱口而出“React是一个网页UI框架一个,它的特点声明式、组件化、组件化、......
  • 【面试题】说说JS中的this指向问题
    JS中的this指向问题this的指向问题全局作用域在JS中,全局的变量和函数附着在​​global​​​对象上,全局对象在浏览器环境下是​​window​​对象。在全局作用域中,​​this​......