使用charles 修改服务器返回数据


使用charles

修改服务器返回数据


相信大家在做测试时,一定有现有的返回结果不能覆盖到自己需要测试的全部场景的情况,为了方便我们测试一些特殊情况,我们就需要让服务器返回一些指定的内容以实现我们的测试case覆盖的更全面。这个时候,使用 Charles 相关的功能就可以满足我们的需求。下面给大家介绍一下使用charles来修改服务器返回报文的两种方法:

1、 Map功能,适合长期的将某一请求重定向到另一个网络地址或者本地文件

2、 Breakpoints功能,适合做一些临时性的修改。


Map功能


Charles的map功能分为Map Remote 和Map Local,下面简单介绍一下:

在 Charles 的菜单中,选择 “Tools”->”Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。

或者直接选中请求,右键,也可进入到相应功能的设置页面。

对于 Map Remote 功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空,下图是一个示例,我将所有www.test1.com的请求重定向到了www.test2.com

对于 Map Local 功能,我们需要填写的重定向的源地址和本地的目标文件。首先将网络请求结果保存,使用 Charles 提供的 “Save Response…” 功能将请求结果保存到本地(如下图所示),然后根据测试需要,修改我们想要返回的数据,成为我们的目标映射文件。

示例如下:

将一个指定的网络请求通过 Map Local 功能映射到了本地的一个经过修改的文件中。


Breakpoint功能


Breakpoint功能可以截断修改客户端的request、response请求,如在charles返回response请求时,我们可以修改response,从而修改返回给客户端的内容。

如这里,我们要修改返回给客户端的广告类型为H5类型的广告,

1、 客户端先访问相应的页面,可以看到charles抓取了一大堆数据,Filter下过滤我们需要的请求,


2、 在上面的请求中选择右键,勾选Breakpoints。后面再次访问此请求时,charles会分别在这个请求的request、response停留,除非我们excute继续。

设置Breakpoint,也可以通过点击Proxy—>Breakpoint Settings来设置。

点击add选择request或者response,或者同时选择。


3、 再次访问互动页面,可以修改request请求,在此不做修改,点击Execute

修改response,点击Edit Response,根据需求修改为相应的返回值。点击Execute

最终返回的广告为H5类型的广告。


使用charles修改返回数据就介绍完了,当然使用charles修改返回数据不止上面两种方式,以上两种方式只是本人在近期项目中使用到的,网上还有其他方式,感兴趣的同学可以网上查看,charles还有其他实用并且有意思的功能,大家也可以一并查看并分享,共同进步。

Q