目录

目录 

一、 常用功能

二、 Mock数据的应用: Breakpoints(断点)

三、 Map Local:将指定的网络请求重定向到本地文件

四、 Map Remote:将指定的网络请求重定向到另一个网址

五、 ip、域名和url的区别


一、 常用功能

 1.Filter (筛选):在Charles左下角的Filter输入框中输入要抓的数据包的Host的全部或部分字符,即可在Structure列表里显示筛选后的Host

charles 批量导出数据 charles保存数据_数据

2. Repeat(重发):选中某url后,点击工具导航栏中快捷键“Repeat selected requests”图标,即可实现接口再次请求

charles 批量导出数据 charles保存数据_xml_02

 3. Throttle Settings(节流设置):模拟慢速网络

  点击Proxy -> 选中Throttle Settings -> 勾选“Enable Throttling” -> 根据需求设置"Throttle preset"为不同的网速

charles 批量导出数据 charles保存数据_charles 批量导出数据_03

二、 Mock数据的应用: Breakpoints(断点)

   拦截接口的请求和返回,修改请求和返回的内容

  1. 编辑请求(Request):选中某个想要mock数据的接口,点击右键并选中Breakpoints -> 重新请求接口(刷新页面等操作)后 -> 选中"Edit Request" -> 编辑修改请求的某项内容,比如Form中的参数 -> 点击Execute按钮,即可拦截到修改后的请求对应的响应内容

charles 批量导出数据 charles保存数据_charles 批量导出数据_04

  2. 编辑响应(Response):点击“Edit Response” -> 修改返回的内容 -> 点击Execute按钮,即可重新发送请求,且响应内容显示为修改后的内容

charles 批量导出数据 charles保存数据_xml_05

 3. 应用场景实例:修改响应数据中的值,测试app端页面显示情况,提高测试效率

  1)比如某产品的的初始”近5日年化“的值都一样时,折线图如下图”修改前“所示。那如果想测试一下五天的值不一致的情况,

那么就可以通过抓包、打断点、修改Response里的值,来测试前端页面的显示。如果不知道修改哪些参数,可以请教开发哦~

 

charles 批量导出数据 charles保存数据_charles 批量导出数据_06

 2)再比如想测试app页面中数据过多(或者翻页功能)时的处理方式,则可以通过修改Response里的值,制造更多假数据来测试

charles 批量导出数据 charles保存数据_charles 批量导出数据_07

4. 取消断点的两种操作:

 1)选中mock数据的接口(此时查看”Breakpoints“处于选中状态),右键后点击”Breakpoints“即可取消断点

 2)点击”Tools“图标,再点击”Breakpoints“即可取消断点

三、 Map Local:将指定的网络请求重定向到本地文件

  即拦截需要mock数据的接口后,将本地的json文件作为response返回

 1. 该方式类似于设置断点修改Response的操作,不过它的优势在于:

  1)适合修改大量的数据。如果设置断点修改大量数据,可能会导致请求超时。

  2)不需要每次拦截接口,手动修改response。因为每次请求接口时,charles不会访问服务器,而是采用本地的响应(json文件)返回给客户端

 2. 操作步骤:

 1)把接口的response(JSON Text格式)复制出来,保存成一个json类型的文件。推荐使用SubLime Text,文件命名比如:detail.json,保存时选择Json类型(点击右下角”Plain Text->JavaScript->JSON“)

 2)修改response,比如修改第三节提到的”近5日年化“中的五个值(修改前的五个值都是0.5588),修改后保存

charles 批量导出数据 charles保存数据_xml_08

 3)选择需要mock数据的接口请求,右键选择”Map Local“,然后在”Edit Mapping“窗口中选择json文件,并点击”OK“按钮

charles 批量导出数据 charles保存数据_xml_09

 4)然后就可以重新请求接口了(刷新页面等操作),请求后查看页面。可以尝试多次请求,会发现返回的数据都是修改后的数据

charles 批量导出数据 charles保存数据_重定向_10

 5)取消Map Local的方式:点击”Tools“图标,再点击”Map Local“即可取消(与取消Breakpoints一样)

charles 批量导出数据 charles保存数据_数据_11

四、 Map Remote:将指定的网络请求重定向到另一个网址

 1. 应用场景:当前的测试环境A还未提供某接口X,但是另一个环境B存在接口X,那么就可以重定向到环境B的接口。

 2. 实例:比如app中某个产品介绍页面,重定向到百度首页,则可以设置如下:其中”Map From“是原本的接口信息,”Map To“是要重定向的接口信息

charles 批量导出数据 charles保存数据_数据_12

 3. 关闭Map Remote的方式:选择菜单栏中的 Tools->Map Remote,然后取消勾选”Enable Map Remote“,然后点击”OK“按钮即可

charles 批量导出数据 charles保存数据_重定向_13

五、 ip、域名和url的区别

 1)ip:每台主机专门的地址,就是ip地址。比如:127.0.0.1(本机地址)

 2)域名:用域名来替代不好记忆的ip地址,比如:www.baidu.com

 3)url:传输协议+域名+路径,比如:https://www.baidu.com/content-search.xml

六、接口下的其他功能介绍(未完待续。。。)

 1. Copy URL:复制URL

比如针对这个接口:https://www.baidu.com/content-search.xml

复制出来的URL就是完整的接口url:https://www.baidu.com/content-search.xml

 2. Copy cURL Request:复制接口请求,CURL命令发送请求

  1)请求格式如下:

curl -H 'Host: www.baidu.com' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'Cookie: BDSVRTM=20; H_WISE_SIDS=164576_164372_146000_161925_161579_161283_163320_165737_156288_163806_159610_162896_155226_165552_165328_159383_163233_164290_160879_157261_163390_164696_127969_164405_164163_160248_165291_164941_163982_165236_163290_131423_164148_162413_153148_161840_164492_107320_165627_160573_161965_162154_144966_164259_165134_158994_164854_158640_156848_160980_163114_161396_164199_162549_161774_165206_164449_162642_165820_162155_110085_162025_164959_165073_163274_165144_165646_165712; BAIDUID=B6D6351A809157291F0F4E7CD6632DE8:FG=1; rsv_i=5a395k1NC12kS4JNs69f5nap0kVLi%2BlooNAj3nxXXfwIYnAmQ8f6KkIDv%2BREOglKZJgfbgfWrZpnT57AdoK8g92ZThy7hgs; Hm_lpvt_12423ecbc0e2ca965d84259063d35238=1608866711; Hm_lvt_12423ecbc0e2ca965d84259063d35238=1608866711; plus_cv=1::m:49a3f4a6; plus_lsv=925eaeeb8a31fdab' -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' -H 'Accept-Language: zh-cn' --compressed 'https://www.baidu.com/content-search.xml'

  2) 在终端运行结果,类似于直接发送请求:

charles 批量导出数据 charles保存数据_charles 批量导出数据_14

3. Copy Response:

 4. Save Response:

 5. Find In...

charles 批量导出数据 charles保存数据_数据_15