第3章 CHAPTER 3 抓包利器: Fiddler 在接口测试脚本的设计过程中,前期调试接口参数及相关数据工作很重要。特别是在缺少接口API文档的情况下,选择一款适用的抓包工具就显得很重要了。浏览器自带的F12开发者工具可以实现简单抓包,此工具可以完成接口请求及响应参数的查看,但缺少后续调试所需的功能。目前接口测试工作中常用Fiddler进行接口的抓包及调试。本章将系统地讲解Fiddler工具在接口测试工作中常用的功能和技巧。 3.1Fiddler的安装与配置 3.1.1Fiddler介绍 Fiddler最早是作为一款开发调试工具出现的,可以完成基于HTTP调试代理工作。Fiddler工作在客户端的应用层,它能记录所有客户端和服务器端的HTTP和HTTPS请求,可以监视、设置断点,以及修改输入及输出数据。 一个会话在没有Fiddler介入的情况下,首先由浏览器发送一个请求,服务器接收到请求后进行处理,然后将响应报文返回浏览器,最后由浏览器对响应结果进行解析并以可视页面的形式进行呈现,如图31所示。 图31访问流程 Fiddler介入后,相当于在客户端和服务器端设置了一个临时代理服务器。浏览器发送一个请求,Fiddler接收到请求内容后再转发给目标服务器。服务器端接收到请求进行处理后返回响应报文,由Fiddler接收成功后传递给浏览器。在整个过程中浏览器的通信对象是Fiddler,所有的请求与响应都是与Fiddler来完成的,因此,Fiddler在整个通信过程中充当着代理服务器的角色,如图32所示。 图32Fiddler代理访问流程 3.1.2Fiddler下载与安装 Fiddler的安装包可以从Fiddler官网下载,网址为https://www.telerik.com/download/fiddler,进入下载页面,单击Download for Windows进行软件下载,如图33所示。 图33Fiddler下载页面 Fiddler是基于.NET Framework的,安装过程中会根据系统中.NET Framework的版本来确定安装版本。由于在Windows 7 64位下默认安装了.NET Framework 4.0,因此会自动安装Fiddler 4.0或更高版本。当低于此配置时,Fiddler安装包在安装过程中会自动适配成2.0版本。运行安装程序,此时会弹出软件安装界面,单击I Agree按钮进行安装,如图34所示。 图34Fiddler安装界面 安装完成后启动Fiddler软件,进入Fiddler软件主界面,如图35所示。 图35Fiddler主界面 3.1.3Fiddler配置 默认配置下,Fiddler启动后即处于请求抓取状态,可以抓取基于HTTP的请求。需要进行配置以确保软件可以抓取常见的HTTPS协议请求。设置分为两步完成。 1. Fiddler选项设置及关联证书导出 启动Fiddler程序,单击Tools→Options→HTTPS选项卡,依次勾选Capture HTTPS CONNECTs、Decrypt HTTPS traffic、Ignore server certificate errors(unsafe)、Check for certificate revocation选项,启动软件抓取HTTPS功能,如图36所示。 图36HTTPS抓包设置 Fiddler证书的导出也在HTTPS选项卡中完成。单击Actions按钮,在弹出的选项中选择Export Root Certificate to Desktop选项,将证书保存至系统桌面,如图37所示。 图37证书导出 2. Fiddler关联证书的安装 Fiddler在对浏览器进行报文收发监控前,需要安装导出的关联证书。选择Actions按钮下的Trust Root Certificate选项进行证书安装,如图38所示。 图38证书安装 安装过程中会弹出证书安装提示,如图39(a)所示。单击Yes按钮进入下一步。当再次弹出安全性警告提示时,图39(b)框里面的内容DO_NOT_TRUST_FiddlerRoot就是证书的名称。 图39提示 安装完成后可以在Actions下的Open Windows Certificate Manager选项下查看系统证书导入情况,如图310所示。 还有一种特例,即浏览器需要单独的证书导入操作。以Chrome浏览器为例,在浏览器“设置”→“安全和隐私设置”→“安全”→“管理证书”选项中进行证书的导入操作,如图311所示。 图310证书查看 图311Chrome浏览器证书导入 3.2Fiddler捕获与内容解析 3.2.1工作区介绍 Fiddler软件的界面主要由6部分构成,如图312所示。 图312Fiddler界面构成 根据图312中所标注的顺序,Fiddler界面的组成部分依次是菜单栏、快捷工具栏、会话列表、功能面板、命令行、状态栏。 (1) 菜单栏: 在3.1.3节Options选项卡为常用选项。当接口在发送过程中需要设置断点对报文进行拦截及修改时,也会用到Rules菜单下的相关选项。 (2) 快捷工具栏: 放置了常用的功能和命令的快捷使用图标,功能项多数可以在菜单中找到。 (3) 会话列表: 通过Fiddler捕获到的接口会话以列表方式在此视图中展示。 (4) 功能面板: Fiddler的核心功能实现区域,常见的报文解析及接口调试功能均可以此实现。本章重点介绍众多选项卡中的两项常用功能,即报文数据解析与接口验证。 (5) 命令行: 配合会话列表使用的一个命令入口,在3.5.2节会对常用命令进行介绍。 (6) 状态栏: 抓包启动开关、断点开关和过滤选项所在位置,显示配置信息和当前选中URL信息。 3.2.2Fiddler捕获数据 首先演示Fiddler抓包的流程,以百度搜索为例。 第1步,打开浏览器,输入百度搜索URL网址。 第2步,启动Fiddler,默认处于报文捕获启动状态。将软件启动放在浏览器启动之后,是为了避免在捕获目标接口报文之前接收到太多干扰信息,也可以使用3.5.1节中讲解的筛选功能进行辅助完成。 第3步,在百度搜索框中输入搜索关键字“思课帮”,单击“百度一下”按钮,完成搜索,如图313所示。 图313百度搜索内容 第4步,单击Fiddler左下角状态栏中的报文捕获按钮,关闭当前报文捕获状态,查看Fiddler会话列表中捕获到的内容,如图314所示。 会话列表又称为Web Session,捕获到的会话会以列表的方式在会话区展示。每列有不同的属性,常用的列属性有Result、Protocol、Host等。具体作用见表31。 表31会话视图常用列属性 序号属 性 名 称描述 1#捕获会话顺序,从1开始,按照页面加载请求的顺序递增 2ResultHTTP响应的状态,捕获接口请求是否成功的初始判断依据 3Protocol请求使用的协议,常见为HTTP、HTTPS 4Host捕获接口域名部分,可通过Host快速定位会话 5URL捕获接口请求路径与参数部分,作为判断接口功能的依据之一 6Body捕获接口请求的大小,以byte为单位 7Caching请求的缓存过期时间或缓存控制Header等值信息 8ContentType响应类型,来自响应报文Headers中的ContentType值信息 9Process发出当前请求的Windows进程及进程ID 10Comments用户通过脚本或右击菜单给当前Session增加的备注信息 11Custom用户可以通过脚本设置的自定义值 图314Fiddler捕获的会话内容 若当前列表信息无法满足需求,则可以自定义添加列信息。在会话列表的列头位置右击,在弹出的菜单中选择Customize Columns项,然后在Collection下拉列表中选择Miscellaneous项,接下来就可以在Field Name下拉列表中选择需要添加的属性列信息,单击Add按钮完成添加操作。Field Name中会显示所有未在会话列表中显示的属性列信息,如图315所示。 图315Fiddler添加属性列信息 3.2.3Fiddler抓包数据解析 当捕获到所需的会话报文内容后,就需要分析报文内容的正确性了。为了方便演示,将百度搜索的接口参数精简成https://www.baidu.com/s?wd=Thinkerbang,复制并粘贴到浏览器网址栏,按Enter键完成百度关键字搜索操作。Fiddler同步捕获接口报文成功,如图316所示。 图316Fiddler捕获百度搜索报文 在会话列表中选中捕获到的百度搜索会话,在右侧功能面板的Inspectors选项卡中会展示报文内容。Inspectors选项卡分为Request和Response上下两部分,如图317所示。 图317Inspectors选项卡 Request和Response分别带有若干子选项卡,可以从不同维度展示报文内容。子选项卡的描述见表32和表33。 表32Request子选项卡描述 序号选项卡名称描述 1Headers显示Request中的Header信息项 2TextView以文本方式显示请求主体信息(主体为HTML、JSON、XML等格式) 3SyntaxView以句法规则显示请求主体信息(主体为HTML、JSON、XML等格式) 4WebForms以Web表单方式显示请求主体信息(主体为formdata格式) 5HexView以十六进制方式显示请求报文信息 6Auth当请求Header中带有认证信息时,显示认证信息 7Cookies显示请求Headers中的Cookies详细信息 8Raw以原始文本方式显示请求报文信息 9JSON当请求主体为JSON数据时,以JSON格式显示请求主体信息 10XML当请求主体为XML数据时,以XML格式显示请求主体信息 表33Response子选项卡描述 序号选项卡名称描述 1Transformer当响应主体可以被压缩或分块传输时,可在此选择相应处理方式 2Headers显示Response中的Header信息项,包括相关设置信息 3TextView以文本方式显示响应主体信息(主体为HTML、JSON、XML等格式) 4SyntaxView以句法规则显示响应主体信息(主体为HTML、JSON、XML等格式) 5ImageView当响应主体为图片格式时,此选项卡可预览图片信息 6HexView以十六进制方式显示响应报文信息 7WebView当响应主体为HTML页面时,此选项卡可以以浏览器方式预览页面 8Auth当响应Header中带有认证信息时,显示认证信息 9Caching显示响应缓存信息 10Cookies显示响应Headers中的Cookies设置详细信息 11Raw以原始文本方式显示响应报文信息 12JSON当响应主体为JSON数据时,以JSON格式显示响应主体信息 13XML当响应主体为XML数据时,以XML格式显示响应主体信息 另外,在Request和Response模块下方分别带有一个内容查找输入框。当报文内容较多时,可使用查找功能,以便更快地定位到需要查找的内容。 3.3使用Fiddler做接口验证 在接口测试初期,需要对接口相关参数进行调试。通常会使用Postman、JMeter等接口工具完成调试工作。Fiddler也提供了类似功能,功能面板的Composer选项卡可以实现接口调试,如图318所示。 图318Composer选项卡 Composer选项卡由4部分组成,第1部分为首行参数,可以选择协议请求方法、协议版本、输入URL内容。第2部分为请求Headers部分。第3部分为请求主体部分,当协议请求方法为POST、PUT等需携带主体的方法时,此模块被激活,可以输入请求主体。第4部分为历史记录部分,记录了之前调试过的接口信息,单击条目可快速查看具体的接口数据。 调试接口参数填入完毕后,单击Execute按钮发送接口请求。Fiddler会话列表会自动捕获所发送的调试接口信息,与Fiddler是否开启捕获状态无关。 3.3.1验证GET接口请求 在Composer选项卡中发送GET请求,以百度搜索为例,输入的接口请求内容如下所示。 方法: GET。 URL: https://www.baidu.com/s?wd=Thinkerbang。 协议: HTTP/1.1。 头部: UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36。 单击Execute按钮发送请求,会话列表会自动记录百度搜索服务器返回的内容,在Inspectors选项卡中查看报文内容,如图319所示。 需要注意,一个完整的接口请求Headers部分,并不是所有的HEADER信息都是必需的。本示例中只有UserAgent信息为必填项,即告诉服务器访问客户端的基本信息情况。当UserAgent信息缺失或异常时,服务器会返回百度安全验证响应报文,如图320所示。 3.3.2验证POST接口请求 在Composer中发送POST请求,常见用户登录操作或者一次请求携带数据量较大的情况。以孔夫子旧书网登录为例,输入的接口请求参数如下: 图319Composer发送GET请求示例 图320请求异常响应报文 方法:POST URL:https://login.kongfz.com/Pc/Login/account 协议:HTTP/1.1 头部: sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99" sec-ch-ua-mobile: ?0 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 X-Tingyun-Id: OHEPtRD8z8s;r=708313924 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Accept: application/json, text/javascript, */*; q=0.01 X-Requested-With: XMLHttpRequest sec-ch-ua-platform: "Windows" Origin: https://login.kongfz.com Sec-Fetch-Site: same-origin Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: https://login.kongfz.com/ Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Host: login.kongfz.com Content-Length: 100 主体: loginName=13112341234&loginPass=123456&captchaCode=&autoLogin=0&newUsername=&returnUrl=&captchaId= (*注:用户名和密码为示例,需自行注册账号) 单击Execute按钮发送请求,会话列表会自动记录孔夫子网站返回的内容,在Inspectors选项卡中查看报文内容,如图321所示。 图321Composer发送POST请求示例 在验证POST接口测试的过程中,读者可以选用自己常用的网站进行练习。有些网站的登录操作接口会出现用户名和密文,加密主要分两种情况,静态加密和动态加密。当用户名和密码使用静态加密时,加密后的密文每次不会发生变化,在进行登录接口验证时,原样保留加密字段即可。当遇到动态加密时,每次捕获到的登录密文都会发生变化,常规网站对信息安全的级别一般没这么高。如果在测试过程中遇到此类情况,则需要与开发人员进行沟通,在测试期间关闭加密功能。条件允许时,也可以从开发人员处获取加密算法函数,以便接口测试脚本能够正常运行。本书在工具篇涉及此类问题。 3.3.3验证带附件接口请求 在Composer中发送文件上传POST请求,以上传示例网站http://sahitest.com/demo/php/fileUpload.htm为例,输入的接口请求参数如下: 方法:POST URL:http://sahitest.com/demo/php/fileUpload.htm 协议:HTTP/1.1 头部: Connection: keep-alive Content-Length: 419 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 Origin: http://sahitest.com Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzzfiEuSJA6RxfH1G User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://sahitest.com/demo/php/fileUpload.htm Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 主体: ------WebKitFormBoundaryzzfiEuSJA6RxfH1G Content-Disposition: form-data; name="file"; filename="Thinkerbang.txt" Content-Type: text/plain http://www.huaruansheng.com ------WebKitFormBoundaryzzfiEuSJA6RxfH1G Content-Disposition: form-data; name="multi" false ------WebKitFormBoundaryzzfiEuSJA6RxfH1G Content-Disposition: form-data; name="submit" Submit Single ------WebKitFormBoundaryzzfiEuSJA6RxfH1G-- 单击Execute按钮发送请求,会话列表会自动记录文件上传后服务器返回的内容,在Inspectors选项卡中查看报文内容,如图322所示。 图322Composer上传示例 3.4使用Fiddler捕获App请求 移动端App接口也可以使用Fiddler来完成调试工作。笔者在《全栈UI自动化测试实战》一书中提到,Web端基于HTML页面元素的UI自动化测试和App端基于H5页面元素的UI自动化测试没有本质区别,它们都是基于页面元素的定位及用户层的操作展开的。同样,在基于HTTP的接口测试,在PC端基于浏览器和在移动端基于App应用软件,从接口层面上来看,本质也都是一样的。Fiddler可以捕获移动端App软件接口信息。 图323PC端IP地址查看 3.4.1Fiddler参数设置 在开始设置之前,需要确保待配置设备PC与移动设置连接同一台路由器并且可以获取正常使用的IP地址。在PC端打开网络设置,查看PC端当前获取的网络IP地址,如图323所示。 打开Fiddler软件,选择Tools→Options→Connections选项卡,勾选Allow remote computers to connect选项,对Fiddler listens on port输入框中的端口号进行设置,默认为8888,如图324所示。 图324Fiddler参数设置 至此,PC端参数设置完毕。后续操作中PC端将作为代理服务器出现,IP地址为192.168.1.41,端口号为8888。 3.4.2App端证书安装及代理设置 1. 证书安装 打开手机浏览器,输入代理服务器IP地址及端口号: 192.168.1.41:8888,单击“搜索”按钮,打开Fiddler证书下载页面,如图325所示。 图325Fiddler证书下载页面 单击FiddlerRoot certificate链接项,下载Fiddler证书。证书下载完成后,单击下载文件FiddlerRoot.cer进行证书安装。 2. 代理设置 在移动端打开“设置”→“WLAN设置”选项卡,在已连接WLAN选项上长按会弹出选项,如图326所示。 选择“修改网络”选项,此时会弹出网络修改页面。在高级选项中将代理设置为手动模式,填入代理服务器信息,服务器主机名为192.168.1.41,服务器端口号为8888,如图327所示。 图326移动端WLAN选项 图327WLAN代理设置 本节示例中所使用移动端为HUAWEI Nova 5 Pro。在不同品牌和型号的移动端中设置WLAN代理的过程会有差异,读者若在此步骤中遇到设置问题,则需要通过百度搜索合适的解决方法。 设置完成后,需要重启PC端的Fiddler,这一步很重要。 3.4.3捕获App端接口数据 在移动端打开手机淘宝,在输入框中输入搜索内容进行查找。可以看到Fiddler会话视图捕获到了手机相关操作,通过对比分析可以找到淘宝商品搜索的接口信息,如图328所示。 图328Fiddler捕获App端接口信息 3.5Fiddler使用技巧 Fiddler除了可以实现抓包、解析会话内容、接口调试等功能,还有一些辅助功能,如果使用得当,则可以让Fiddler的使用更方便。本节主要介绍3类常用的辅助功能的使用方法。 3.5.1捕获内容的过滤 在抓包过程中,总会捕获到很多与测试接口不相关的Session。Fiddler提供了一整套捕获过滤功能,在Filters选项卡中实现。 Fiddler提供了7组过滤器设置,用来完成Session的过滤,具体作用见表34。 表34Filters选项卡筛选项 序号命 令 名 称描述 1Hosts提供根据给定主机名过滤Session的功能 2Client Process提供根据给定客户端进程过滤Session的功能,当Fiddler与客户端在相同的主机上时此功能可用 3Request Headers提供根据给定Headers参数内容过滤Session的功能,支持正则表达式 4Breakpoints提供根据给定属性的请求或响应设置断点的功能 5Response Status Code提供根据给定响应状态码过滤Session的功能,以隐藏方式实现过滤 6Response Type and Size提供根据给定响应类型或大小过滤Session的功能 7Response Headers提供根据给定信息加粗显示删除响应头信息的功能 本节仅示例3组常用抓包过程中的过滤设置。 1. Host主机过滤 Host主机过滤有两个下拉列表选项,第1个是整体过滤下拉列表,有3个选项: No Zone Filter、Show only Intranet Hosts、Show only Intranet Hosts。开启后可以整体过滤来自内网或互联网的Session。第2个是指定过滤Host下拉列表,有4个选项: No Host Filter(无主机筛选器)、Hide the following Hosts、Show only the following Hosts、Flag the following Hosts。开启后可以显示或隐藏来自指定主机的Session,也可以对指定主机的Session进行加粗标记显示。 如果需要Fiddler只抓取来自百度搜索的Session,则设置及抓取效果如图329所示。 图329Filters设置过滤百度搜索Session 2. Request Headers过滤 Request Headers过滤有5种过滤方式,本示例使用其中的两种来演示过滤效果。勾选Show only if URL contains,当包含URL时,后面可以跟具体的值,例如输入www.baidu.com,其过滤效果与图329中Hosts主机过滤相同。此处输入正则表达式REGEX:(?insx)/[^\?/]*\.(css|js|json|ico|jpg|png|gif|bmp|wav)(\?.*)?$,正则表达式设定规则为过滤后只捕获Request Headers中ContentType为css、js、json、ico、jpg、png、gif、bmp、wav类型的Session。 勾选Hide if URL contains,在后面填入需要过滤的URL,当Fiddler进行捕获时会自动过滤URL中包含指定内容的Session。 设置完成后,规则会在Fiddler新捕获中生效。如果需要在已捕获Session中进行过滤,则需要单击右上角的Actions选项按钮,在弹出的选项中选择Run Filterset now,当前会话列表中的Session会根据设置过滤规则隐藏不符项,如图330所示。 图330Filters设置正则表达式与隐成长过滤 3. Response Status Code过滤 在接口调试时,如果需要关注或排除某类响应状态码,则Response Status Code过滤可以满足这类需求。Response Status Code过滤共包含5组响应状态码隐藏规则: Hide success(2xx)、Hide non2xx、Hide Authentication demands(401,407)、Hide redirects(300,301,302,303,307)、Hide Not Modified(304)。可以根据实际需求进行选择。 本示例选择隐藏响应状态码为2xx开头的Session,勾选Hide success(2xx)后,选择Actions→Run Filterset now选项,执行过滤规则,结果如图331所示。 图331Filters设置响应状态码过滤 3.5.2常用Fiddler命令及快捷键 左下角命令行可以通过输入命令的方式实现抓包或查看过程中的一些辅助操作。Fiddler中的命令主要分为两类,即选择命令和Script命令,常用命令见表35和表36。 表35Fiddler常用选择命令 序号命 令 名 称描述 1?如果选择URL中包含了指定文本的Session,例如?baidu.com,则所有URL中包含baidu.com文本的Session均会被选中 2select type如果选择响应Headers的ContentType中包含选中的type的Session,例如select text/json,则所有响应Headers中ContentType为text/json的Session均会被选中 3@host如果选择请求Headers中的Host中包含了指定Host的Session,例如@baidu.com,则请求Headers中Host中包含baidu.com的Session均会被选中 4>如果选择响应内容大于给定字节的Session,例如>5000,则响应内容大于5KB的Session均会被选中,指定大小可以加单位,例如KB、MB,当不加单位时以千进位 5<如果选择响应内容小于给定字节的Session,例如<5000,则响应内容小于5KB的Session均会被选中 6=Method如果选择请求的HTTP方法是给定值的Session,例如=POST,则所有基于POST方法的请求均会被选中 7=ResponseCode选择响应状态码等于给定值的Session,例如=304、=500 8toolbar如果Fiddler的工具栏之前是隐藏的,输入此命令,则可以让工具栏重新显示 9about:config显示Fiddler的选项配置窗口,它会列出所有的选项及其值 10tearoff将Inspectors选项卡从主窗口中脱离成浮动窗口显示 表36Fiddler常用Script命令 序号命 令 名 称描述 1cls清空会话列表,通常在开始新的一轮抓包之前使用 2bps为响应码是指定值的Session创建响应断点,例如 bps 304,所有响应码为304的Session均会被创建响应断点,如果输入不带参数的bps命令,则可以取消断点 3bpm为HTTP方法是给定值的Session创建请求断点,例如 bpm POST,所有请求方法为POST的Session均会被创建请求断点,如果输入不带参数的bpm命令,则可以取消断点 4bpu为URL包含指定文本的Session创建请求断点,例如 bpu index.html,所有请求URL中带index.html字段的Session均会被创建请求断点,如果输入不带参数的bpu命令,则可以取消断点 5bpafter为URL包含指定文本的Session创建响应断点,例如 bpafter userinfo,所有响应URL中带userinfo字段的Session均会被创建响应断点,如果输入不带参数的bpafter命令,则可以取消断点 6tail截断会话列表,使会话列表中Session总数不大于指定数目,例如 tail 120,可以使会话列表中包含的Session数不大于120 7dump将当前会话列表中捕获到的所有Session保存到Captures文件夹中的dump.saz文件中,dump.saz的位置在C:\Users\Demon\Documents\Fiddler2\Captures(Fiddler的安装路径,读者可根据Fiddler的具体安装位置进行查找) 8start/stop激活/关闭捕获模式 9keeponly删除会话列表中响应不带有给定MIMEtype的所有Session,例如keeponly json/,对会话列表中所有响应内容不是JSON数据的Session进行删除处理 10quit退出Fiddler Fiddler快捷键数量并不多,在使用过程中可以记住几个常用的快捷键,以此来提高使用效率,例如字体大小调节,可以省去在设置中查找修改。Fiddler常用的快捷键见表37。 表37Fiddler常用快捷键 序号命 令 名 称描述 1ALT+Q把光标定位在命令行对话框 2CTRL+R打开FiddlerScript规则编辑器 3CTRL+E打开TextWizard 4CTRL+Down选中会话列表中的下一个Session 5CTRL+Up选中会话列表中的上一个Session 6CTRL+T切换至Inspectors选项卡的TextView子选项卡 7CTRL+H切换至Inspectors选项卡的HeaderView子选项卡 8CTRL++字体大小增加1pt(最大可增加到32pt) 9CTRL+-字体大小减小1pt(最小可增加到7pt) 10CTRL+0将字体大小恢复到默认值(8.25pt) 11CTRL+M最小化Fiddler窗口 3.5.3接口响应挡板设置 当软件处于开发初期阶段时,接口请求无法正确返回响应数据。或者软件接口涉及第三方平台的跳转操作,例如购物平台在结算时会跳转至支付平台,支付成功后会返回支付信息,在测试环境中测试全业务流程会有一定的困难。Fiddler可以设置响应挡板来完成此类接口调试工作。 Fiddler在AutoResponder选项卡中提供了挡板设置功能。本节示例通过浏览器访问百度首页,通过挡板实现返回响应内容为网站正在建设中。创建一个挡板数据文件,命名为responseInfo.txt,代码如下: //chapter3/responseInfo.txt { user : 'Thinkerbang', info : '清明时节雨纷纷,网站内容建设中', Maintainer : '老胡' } 将文件编码格式设置为GB 2312或UTF8格式,防止中文内容显示为乱码。 打开Fiddler,选择AutoResponder选项卡,勾选Enable rules、Unmatched requests passthrough选项,然后单击Add Rule按钮,在Rule Editor输入请求URL和响应内容文件路径,单击Save按钮保存设置的内容,如图332所示。 图332AutoResponder挡板设置 打开浏览器,输入对挡板起作用的URL网址https://www.baidu.com,按Enter键,浏览器页面会显示挡板设置的内容,如图333所示。 图333浏览器返回的挡板内容 至此,Fiddler章节设定的内容就讲解完了。