一、应用 

定位bug:界定bug是由前端产生的,还是后端产生的。可以是两种策略:

1,抓包--抓取请求或者响应的数据包

2,改包--修改请求或者响应的数据包

使用Fiddler抓包,查看前端发送的请求和后端返回的响应。如果请求有问题,那就是前端的bug;如果响应有问题,那就是后端的bug。

 二、改包

        方式:拦截、修改、放行

        对象:请求、响应

        流程:

        对请求进行拦截(打断点、设置断点)-修改请求消息-放行请求消息-取消拦截(取消断点)

        对响应进行拦截(打断点、设置断点)-修改响应消息-放行响应消息-取消拦截(取消断点)

三、拦截(重点) 

        拦截也叫打断点(设置断点)。断点的设置有两种:全局断点、局部断点。全局断点设置如下:

        三种方法:

        (1)状态栏

        没有任何拦截的设置图标,如下:

        

Android网络错误拦截 安卓拦截数据并修改_接口

由空白处,如上图红框中,第一次点击(拦截请求-对请求打断点)--第二次点击(拦截响应--对响应打  断点)--第三次点击(也就是恢复空白--取消所有拦截--取消所有断点)

        拦截请求的设置图标如下:

        

Android网络错误拦截 安卓拦截数据并修改_软件测试_02

拦截响应的设置图标如下:

        

Android网络错误拦截 安卓拦截数据并修改_Android网络错误拦截_03

         (2)菜单栏

        

Android网络错误拦截 安卓拦截数据并修改_测试工具_04

        (3)快捷键,如上图所示 

 四、应用场景

        (1)拦截请求,修改请求,放行请求

                ①构造请求场景(地址栏已有参数“南瓜”)

Android网络错误拦截 安卓拦截数据并修改_测试工具_05

         ②设置断点

        

Android网络错误拦截 安卓拦截数据并修改_测试工具_06

        ③发送请求(单击“百度一下”)

请求只有被拦截,才能被修改。放行之后的或者未被拦截的请求,是不能被修改的)

        

Android网络错误拦截 安卓拦截数据并修改_接口_07

        ⑤放行请求 (点击绿色按钮)

         

Android网络错误拦截 安卓拦截数据并修改_软件测试_08

         ⑥观察效果

响应报文下方的webview视图中可看见是“板栗南瓜”相关字段。

                2)浏览器中可看到,搜索框是“南瓜”,但实际显示信息是“板栗南瓜”(如下图所示)

Android网络错误拦截 安卓拦截数据并修改_fiddler_09

        (2)拦截请求,修改响应,放行请求

拦截百度首页的请求,修改该请求的响应,为1个图片,返回浏览器。

        实现方案:


1,构造请求场景(输入百度网址,但未按回车键的状态)

 

Android网络错误拦截 安卓拦截数据并修改_Android网络错误拦截_10

 

2,设置断点--对请求打断点

Android网络错误拦截 安卓拦截数据并修改_测试工具_11

3,发送请求(在浏览器,点击刷新或者键入百度首页按回车)


4,修改响应

        ①选择fiddler自带的一些样例      

从本地文件中选择一个文件,比如html文本,图片

        

Android网络错误拦截 安卓拦截数据并修改_测试工具_12

 

5,放行

       

Android网络错误拦截 安卓拦截数据并修改_测试工具_13

              6,观察效果

        (3)拦截响应,修改响应,放行响应

拦截百度首页请求后的响应,将响应报文的标题修改为:百度一下,你就怎么也知道不了

        实现方案:

1,构造请求场景(输入百度网址,但未按回车键的状态)

Android网络错误拦截 安卓拦截数据并修改_软件测试_14

2,设置断点--对响应打断点

Android网络错误拦截 安卓拦截数据并修改_接口_15

3,发送请求(在浏览器,点击刷新或者键入百度首页按回车)

4,修改响应

        ①选择fiddler自带的一些样例,从本地文件中选择一个文件,比如html文本,图片

        ②可以对原始的响应报文进行修改

      

Android网络错误拦截 安卓拦截数据并修改_Android网络错误拦截_16

5,放行响应

Android网络错误拦截 安卓拦截数据并修改_测试工具_13

              6,观察效果

                

Android网络错误拦截 安卓拦截数据并修改_测试工具_18

 (4)拦截请求,修改请求,拦截响应,修改响应

场景:请求百度首页,返回163首页的页面,并且标题变为:百度一下,你就来到了网易。

实现方案:


0,获取163首页的请求消息

1,构造百度请求场景

2,设置断点--对请求打断点

3,发送百度请求

4,修改百度请求

        将百度请求,修改为163请求

                ①复制163请求消息体,覆盖百度请求消息体


                ②对比两者的区别,只改不一样的主要部分

Android网络错误拦截 安卓拦截数据并修改_软件测试_19

5,放行请求,拦截响应(本场景的重点)

Android网络错误拦截 安卓拦截数据并修改_测试工具_20

6,修改响应

将标题的标签改为:百度一下,你就来到了网易。

Android网络错误拦截 安卓拦截数据并修改_测试工具_21

7,放行响应

8,观察效果

(5)对特定请求,实现自动重定向响应

场景:请求百度首页,不打断点,直接返回163的首页

实现方案:

        ①使用自动回复器,实现自动响应

Android网络错误拦截 安卓拦截数据并修改_软件测试_22

Android网络错误拦截 安卓拦截数据并修改_软件测试_23

Android网络错误拦截 安卓拦截数据并修改_Android网络错误拦截_24

Android网络错误拦截 安卓拦截数据并修改_Android网络错误拦截_25

重新构造已发送的请求