Fiddler的使用
一、各字段的含义
(1)如图所示区域为数据包列表
(2)每个Fiddler抓包的数据都在列表里显示,点击具体的一条数据可以在右侧菜单点击Inspector查看详细内容。
(3)以某条数据包为例,我们可以看到以下信息(请求头):
请求方式:GET
协议:HTTP/1.1
Client头域:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
-------------浏览器端可以接收的媒体类型
Accept-Encoding: gzip, deflate, br
------------压缩方法
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
----------语言类型
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52
----------客户端使用的操作系统和浏览器的名称和版本
Cookie头域:将Cookie值发送给服务器
Transport头域:
Connection: keep-alive
当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。
HOST:主机名或域名,若没有指定端口,表示使用默认端口80.
(4)某条数据的响应头分析:
协议:HTTP/1.1
状态码:200
Cache头域:
Cache-Control: private
此响应消息不能被共享缓存处理,对于其他用户的请求无效
Date: Thu, 23 Sep 2021 06:09:02 GMT
生成消息的具体时间和日期
Cookie/Login头域:
------把Cookie发送到客户端
Content-Length: 445046 正文长度
Content-Type: text/html;charset=utf-8 告知客户端服务器本身的对象的类型和字符集
Transport头域
Connection: keep-alive
(5)响应体的界面功能
1)TextView:显示请求或响应得数据。
2)WebForms:请求部分以表单形式显示所有得请求参数和参数值。以网页版得形式显示。
3)Auth:显示认证信息。
4)Cookies:显示所有得cookie
5)Raw:显示headers和Body数据
6)JSON:若请求或响应数据是json格式,以json形式显示响应内容
7)XML:若请求或响应数据是xml格式,以xml形式显示响应内容
总结:
通过fiddler可以抓取请求和响应参数,通过对参数进行分析,可以定位是前端还是后台得问题。例如:我们在测试登录接口时,输入正确得手机号和密码,但前端提示“请输入正确得用户名和密码”;仅仅通过界面提示我们只能描述bug表象,但不能分析出问题原因。假设通过抓包我们发现是由于前端参数错误或参数值为空,从而导致后台报错。这个时候我们将bug指给前端开发人员,并将参数数据和接口文档中对应得报文数据作为附件上传。
Fiddler在实际的功能测试中有很大的作用,一方面帮助我们更好地了解某个业务中客户端和服务器端是通过哪些接口进行请求的,从而更好地了解代码逻辑;另一方面,我们还可以通过响应数据判断哪里出现了问题,例如可能服务器程序挂了,导致前端报“服务器故障”,这时我们通过抓包发现响应数据返回502,这时我们可以手动去重启服务器或是联系运维重启服务器,从而提高问题的解决效率。