抓包工具Charles-使用远程映射重定向接口请求(Map remote)
Posted 软件测试必备技能
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抓包工具Charles-使用远程映射重定向接口请求(Map remote)相关的知识,希望对你有一定的参考价值。
- 测试和开发过程中,有时候需要修改接口的返回状态,或是返回值。
- 在Charles中可以通过远程映射,将另一个接口的响应返回给原接口,从而达到修改接口响应的目的。
- 这个功能还能在正式线域名和测试线域名切换上。
文章目录
一、原理
- 在专栏之前的文章介绍过Charles抓包的原理
【抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)】
- 远程映射,就是Charles在捕获到客户端的接口请求后,根据配置的映射更改接口请求地址,获得响应后,再返回给原接口请求。
二、操作步骤
(1)、新增接口映射
1.单个接口
- 选择目标接口,右击,找到“Map Remote”
2.批量添加
- 或者是在“Tool”菜单下,找到“Map Remote”
- 打开远程映射设置后,勾选“Enable MapRemote”,点击“Add”,新增接口映射
(2)、设置匹配映射的接口
- 打开接口映射弹框后可以看到,上半部分是匹配映射的接口URL信息。
- Charles会根据协议、主机、端口、路径、查询参数,用以匹配特定URL。
- 这些设置支持通配符,例如:配置查询参数为“*”,则会匹配该路径下所有的查询参数。
(3)、指定映射的目标地址
- 与配置需要匹配的接口一样,下半部分设置映射的目标接口
- 同样可设置协议、主机、端口、路径、查询参数,
- 这些设置支持通配符。
- 弹框最下方的勾选框为,保留请求头中的原host(Preserve host in header fields),可根据需要设置。
(4)、示例步骤
- 以Charles官网的接口为例:通过远程映射,将其他网页返回给官网地址
- 配置远程映射
- 配置完成后,刷新页面。可以在Charles中看到请求了新的地址,在overview标签页下也标明了这个接口是由原接口远程映射而请求的。
- 查看页面可以看到,现在请求官网的地址,返回的是其他网站
三、注意:不用的时候记得关掉!
- 有的时候遇到数据与实际预期不符的情况,查了半天结果是接口映射忘记关了 [苦笑]
- 在“Tool”菜单下,找到“Map Remote”
- 取消勾选“Enable Map Remote”,并保存即可。
附录:接口功能测试系列教程目录
抓包工具Charles(一)-下载安装与设置
抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)
抓包工具Charles(三)-使用教程之界面介绍、基础功能(弱网、编辑、重发)
抓包工具Charles(四)-常用功能介绍(保存、导入导出、过滤、排序)
抓包工具Charles(五)-使用本地映射修改接口响应内容(Map local)
总目录-零基础入门接口功能测试教程
—————————————————————————————————
Charles的安装包已经上传到了本人运营的博客同名公众号【软件测试必备技能】。
公众也会不定期会上传测试相关资料,有需要可以前往领取。
有需要可点击文章下方二维码,前往领取~
Charles抓包工具的使用
前提:charles的说明
Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。
Charles的主要功能:
(1)截取Http 和 Https 网络数据包。
(2)支持重发网络请求,方便后端调试。
(3)支持修改网络请求参数。
(4)支持网络请求的截获并动态修改。
(5)支持模拟慢速网络。
下面主要介绍Charles的如何抓取HTTPS的数据请求。
第一部分:下载安卓Charles包
1、下载Charles包,地址:https://www.charlesproxy.com/latest-release/download.do
2、根据自己的系统版本选择对应的下载安装包到本地。
3、下载完成后,直接傻瓜式安装即可
4、安装完成后可以通过https://www.zzzmode.com/mytools/charles/,进行Charles的破解(目前只支持到了V4.5.1 版本)
第二部分:设置Windows代理&设置APP代理
一、设置Windows的代理(OS系统基本一致)
1、想通过Charles抓取Windows电脑中的HTTPS包非常的简单,首先打开Charles,界面如下:
2、选择help>ssl proxying>install charles root Certificate 安装证书,
选择安装证书选项后弹出安装证书的弹框,如下图:
点击安装证书,选择本地计算机,点击下一步,进入如下界面:
选择第二个选项,然后选择浏览>受信任的根证书办法机构,点击确定>下一步>完成即可配置成功。
3、选择proxy>Windows proxy,然后打开百度浏览器,发现可以正常抓取到HTTPS的包了。
二、设置APP的代理
1、打开Charles抓包工具,界面如上;
2、选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enabling transparent HTTP proxying
3、配置APP端代理
3.1 首先确定PC电脑的地址,运行 >cmd>ipconfig,如下图:
3.2 以华为手机为例,选择设置>无线和网络>WLAN,选择自己的网络长按,如下图:
3.3 选择修改网络,进入下一页面,勾选高级选项>代理设置为手动,并在下边输入PC的IP地址和端口号,填写完成后选择保存即可,如下图:
4、选择help>SSL Proxying>install charles root Certificate On a mobile Device OR Remote Browser,如下图:
给出弹框,在APP浏览器中输入弹框中的地址,进行证书的下载安装。
5、APP浏览器中输入chls.pro/ssl 地址进行证书的下载。
6、证书下载完成后如果是.cer结尾的则可以直接进行证书的安装,如果是.pem的则需要手动修改一下文件的后缀名在安装
7、证书安装完成后,在通过APP访问www.baidu.com,发现我们可以正常从APP端抓取到HTTPS的数据包。
=====================================================
遇到的问题:
1、Charles配置完成后,在APP端配置完代理后,输入证书下载地址,始终无法下载证书,提示网络错误
解决办法:关闭Windows的防火墙即可。
关闭防火墙办法:
1、进入控制面板系统和安全安全和维护选择高级设置
2、打开如下图所示弹框,选择防火墙属性设置
3、然后将下图三个选项的入站链接全部标记未允许即可。
以上是关于抓包工具Charles-使用远程映射重定向接口请求(Map remote)的主要内容,如果未能解决你的问题,请参考以下文章