测试入门:Fiddler工具使用

    技术2022-07-11  88

    文章目录

    1、Fiddler简介2、B/S架构3、Fiddler原理图4、 HTTP协议详谈报文解析请求报文响应报文 5、Fiddler工具条6. Session面板7. 命令行+状态行8. 辅助标签+工具9. 设置Fiddler获取HTTPS流量

    1、Fiddler简介

    位于客户端和服务器的HTTP代理 目前最常用的http抓包工具之一 功能强大,是web调试利器

    主要功能功能:

    监控浏览器所有的HTTP/HTTPS流量查看、分析请求和服务响应测试网站的性能解密HTTPS的web会话全局、局部断点功能第三方插件

    场景使用

    接口调试、接口测试、线上环境调试、web性能分析判断前后端bug、开发环境hosts配置、mock、弱网断网测试

    2、B/S架构

    编写程序部署到Web服务器web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理来自浏览器的http请求客户端通过http协议获取服务器上的网页、文档等资源 URL: https://www.baidu.com/img/flexible/logo/pc/result@2.png http:// 协议 www.baidu.com : 域名--》主机 img/flexible/logo/pc/result@2.png :文件资源地址

    3、Fiddler原理图

    Fiddler作为系统代理监听发往系统代理的请求和响应 Google和IE会自动发往代理服务器

    4、 HTTP协议详谈

    Hyper Text Transfer Protocol(超文本传输协议)用于从万维网服务器传输超文本到本地浏览器的传输协议HTTP是基于TCP的应用层协议,它不关系数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80http是基于请求和响应模式的、无状态的、应用层的协议

    报文解析

    HTTP请求报文主要请求行、请求头部、空一行、请求正文(请求体)4个部分组成

    GET方法 POST方法 请求----------响应 Get和Post区别参考:https://blog.csdn.net/Raindropcds/article/details/107075286

    具体说明:

    请求报文
    请求行:请求方法+资源地址(URL)+HTTP协议和版本说明 POST http://test.lemonban.com/ningmengban/mvc/user/login.json HTTP/1.1 请求方法(Request Method) 请求方法应用场景GET请求资源POST提交资源HEAD获取响应头PUT替换资源DELETE删除资源OPTIONS允许客户端查看服务器的i性能TRACE回显服务器收到的请求,用于测试性能

    URL(Uniform Resource Locator:统一资源定位符) 用于描述网上的资源 格式:schema://host[:post#]/path/…/[?query-string] schema:协议 http,https,ftp等 host:域名或IP地址 port:端口 通过端口获取具体的服务 path:资源路径 query-string:发送的参数 例如:https://www.baidu.com/s?wd=test

    请求头部信息

    请求头描述Host主机ip或域名User-Agent客户端相关信息,如:操作系统,浏览器等信息Accept指定客户端接收信息类型,如:image/jpg,text/html,application/Accept-Encoding可接收的内容编码,如gzipAccept-Language接受的语言,如Accept-Language:zh-cnAuthorization客户端提供给服务端,进行权限认真的信息Cookie携带的cookie信息Refer当前文档的URL,从哪个连接过来,防止盗链Content-Type请求体内容类型,如Content-Type:application/x-www-form-urlContent-Length数据长度Cache-Control缓存机制,如Cache-Control:no-cachePragma防止页面被缓存,和Cache-Control:no-cache作用一样

    案例:

    Host: test.lemonban.com //主机 Connection: keep-alive //在旧版本的HTTP上维持持续连接时使用 Content-Length: 62 Accept: application/json, text/javascript, */*; q=0.01 // X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 //客户端浏览器版本 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 //数据格式+编码 Origin: http://test.lemonban.com //源 Referer: http://test.lemonban.com/ningmengban/app/login/login.html //源页面 Accept-Encoding: gzip, deflate //编码 Accept-Language: zh-CN,zh;q=0.9 //语言
    响应报文
    响应行 HTTP/1.1 200 OK 状态码:用以表示网页服务器HTTP响应状态的3位数字代码 状态码描述1XX提示信息,请求被成功接收2XX成功,请求被成功处理 2003XX重定向相关 304:缓存,本地已经存储了;服务器没有发生变化4XX客户端错误 4045XX服务端错误 500

    参考文章: https://blog.csdn.net/qq_35689573/article/details/82120851 https://blog.csdn.net/q1056843325/article/details/53147180

    响应头 响应头描述ServerHTTP服务器的软件信息Date响应报文的时间Expiree指定缓存过期时间Set-Cookie设置Cookie:服务器返回客户端的信息,下一次请求带上表示登录过Last-Modified资源最后的修改时间Content-Type响应的类型和字符集:如:Content-Type:text/html;charset=utf-8Content-Length内容长度Connection如Keep-Alive,表示保持Tcp连接不关闭,不会永久保存连接,服务器可设置Location指重定向的位置,新的URL位置,如304的情况

    5、Fiddler工具条

    工具条

    备注信息:可以给请求添加备注信息 应用场景重放请求 快捷键 R:重放一个请求 Shift+R:重复请求多个请求 删除会话 正向删除:选中一个请求,点击键盘的[Delete]键 反向删除:选中一个请求,点击键盘的[Shift+Delete],删除除了其以外的其它请求 删除全部:Ctrl+X

    删除:images|Connects|

    断点设置,转发请求

    流模式

    解码

    保存会话数

    查找 Crtl+F5:查找请求+响应+url等的内容

    保存

    清除IE缓存

    编码或解码

    6. Session面板

    添加IP 列 参考文章:https://www.cnblogs.com/X404/p/12464088.html 可以通过这里修改

    7. 命令行+状态行

    Quick Exec:命令行

    参考:https://docs.telerik.com/fiddler/knowledgebase/quickexec

    ?sometext :高亮请求 As you type sometext, Fiddler will highlight sessions where the URL contains sometext. Hit Enter to set focus to the selected matches. ?searchtextbpu string:设置包含有string的断点 bpu 结束断点

    Capture:捕获 设置全局断点

    请求前断点 响应后断点

    8. 辅助标签+工具

    统计数据(Statistics) 检查器(Inspectors)

    以不同的格式展示请求信息 表单格式 使用不同的格式展示响应(部分)报文

    AutoResponder(自动响应器):可用于拦截某一请求,进行如下操作: 1)重定向到本地的资源 2)使用Fiddler的内置响应 3)自定义响应 案例:拦截请求+更改logo为本地的图片 使用Fiddler提供的响应状态 更改之前 更改之后 选择本地的文件响应 选择Find a file :替换成本地的图片 更改之后

    案例2:实现重定向效果

    直接更改响应报文 更改响应报文 编辑响应体内容 更改后效果 JS 提示框设计 直接篡改响应报文:实现重定向功能 还可以进行Mock测试,将接口隔离开来 Composer:设计者 做简单的接口测试

    对多个请求进行相关的设计处理:

    Filters:过滤器 断点 直接在这里点击切换状态即可

    参照前面的[设置全局断点]部分 主要作用: 1)请求前:获取URL+更改请求报文+转发给服务器+查看响应状态 2)响应后截获:模拟断网模式,服务器返回的信息被Fiddler截获,客户端会体现出超时提示信息.

    局部断点(Quick Exec) 请求前 bpu sometxt:给包含有string的添加断点 bpu:再次输入取消断点 请求后 bpafter sometxt bpafter

    弱网测试 可以通过脚本来设置

    9. 设置Fiddler获取HTTPS流量

    抓取Chrome或IE的HTTPS Chrome和IE是使用系统的证书 打开Tools->Options->HTTPS 证书: Actions:Reset ALL Certificates 重置证书 删除证书 重载证书 这样就可以抓取HTTPS的数据包了. 抓取firebox浏览器的数据包 1)从Fiddler导出证书 Export Root Certified To Desktop

    2)在FireBox导入证书 导入成功,重新开启浏览器即可抓取Firebox的HTTPS的数据包 原理:客户端发送请求给中间代理,需要信任代理,所以要证书; 代理通过证书跟服务器建立通信信任

    Processed: 0.014, SQL: 9