本文来源 https://blog.csdn.net/Aaroun/article/details/79109917

今天,给大家做一次分享,主要面向移动端测试,介绍了我平时接口开发工作中用到的功能。下面介绍我今天分享的内容:

一、charles简介

二、安装与配置

三、功能

四、Q&A

一、charles简介

1.Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。

ps:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。我理解的就是手机设置代理连接charles,此时charles表现为一个反向代理服务器。

2.它允许一个开发者查看所有连接互联网的HTTP通信。

3.Charles是一个简单的基于HTTP协议传输的调试工具,在开发和测试 工作扮演着重要的角色。

二、安装与配置

charles安装:

1.下载地址:官网http://www.charlesproxy.com下载

2.破解:Charles是收费软件,需要破解。破解方法是下载charles.jar替换原来的 jar包。

3.charles.jar下载地址:http://pan.baidu.com/s/1i3Qt24H(我下的charles版本为3.11.2)

ps:jar包对应的charles版本3.11.2 ,可网上搜取最新的

环境配置:

针对移动端测试,测试手机app需要的配置:

1.Charles端口设置
    proxy->proxy Setting,设端口号为8888

2.IOS&Android代理环境配置

连接wifi,点开设置http代理, 选择手动;     服务器填写charles所在本机的ip地址,端口号8888

3.安装SSL根证书,查看/修改https接口

https是SSL协议加密(基于CA证书)的http请求,通过charles抓包看请求,是由charles代替服务器与app实现SSL握手协议。故要用charles抓app的https包,就要在手机上安装charles的SSL根证书,实现charles对手机app的身份认同。
   安装证书:http://www.charlesproxy.com/ssl.zip,解压后导入移动设备。

方法参考:工具栏Help—》SSL Proxying—》Install Charles Root Certificate on Mobile Device or...

按照提示下载证书:  手机设置代理—》浏览器输入网址—》安装证书

4.SSL代理设置:Proxy→SSL Proxying Settings→勾取Enable SSL     Proxying→add→添加想要抓取的域名和端口号,以抓取阿波罗app数据为例

三、功能

1.捕获网络请求

捕获记录控制:过滤网络请求 通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。

"Proxy"->"Recording Settings",然后Include栏选择添加一个项目,填入需要监控的协议,主机地址,端口号,这样就可以只截取目标网站的封包了。如下图截取阿波罗app数据:

勾选Proxy →Start Recording,开启抓取记录,可以在charles界面看到你所过滤的网络请求,以阿波罗app为例:

Charles主要提供2种查看封包的视图,分别名为“Structure”和"Sequence"。
Structure视图将网络请求按访问的域名分类。
Sequence视图将网络请求按访问的时间排序。
大家可以根据具体的需要在这两种视图之前来回切换。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果响应内容是JSON格式的,那么Charles可以自动帮你将JSON内容格式化,方便查看。

2.断点

Breakpoint:适合临时性修改数据

通过使用断点功能来篡改请求的数据或者返回的数据,达到模拟的效果,已测试阿波罗app为例方法如下:

我们可以针对接口右键选择"BreakPoints",这样这个接口就被加入到断点状态了

需要进一步修改断点的属性,可以在菜单栏"Proxy"–>"Breakpoints Settings"里进行添加删除或者修改,并且可以选择这个断点是在request还是response,还是两者都要。

刷新app界面,跳转到断点模版,这个时候你可以在对应状态情况下修改request或者response,然后点击下方按钮“Execute”。

点开Edit Response界面,选择JSON格式,格式清晰,方便修改,直接在上面进行数据修改,改成你想要测试的数据,然后点击执行按钮。

再次刷新app界面,然后app返回的是新改的数据,根据返回数据测试客户端显示是否正确。

3.强大的maping

Map:适合长期将某一些请求重定向到本地文件或另一个网络地址

a.Map Local
    可以将远程的某个文件代理到本地文件,进行调试。使用方法如下:
    Tools→Map Local→勾选Enable Map Local→Add→填入需要映射本地文件的协议,主机地址,端口号

本地文件可以是自己造的测试数据,也可以是接口返回的数据保存到本地再进行修改,只需先将接口返回数据进行保存到本地:点击某接口response,右击save response。

b.Map Remote:模拟域名劫持
    实现方法:通过map remote将请求的域名map到另一个域名
    Map Remote的功能原理和Map Local的原理相同,都是替换请求,只不过Map Local替换的请求为本地文件,而Map Remote替换的请求为线上请求。
    使用方法:Tools→Map Remote→勾选Enable Map Remote→Add→填入需要替换请求的协议,主机地址,端口号

如图:splash接口映射到entry接口,splash接口访问的是entry接口的数据。

4.网速模拟

charles可以模拟不同的网络,比如2G,3G,还可以自定义设置网络速度,用来模拟慢网速。
使用方法如下:
开启网速模拟,主菜单Proxy——Throttle Settings
配置:打开throttle settings页面,可选择内置的一些带宽设置,也可以自定义设置,通过设置上下行的带宽和往返延迟来模拟自己需要的网速。

5.重复发送请求

repeat:
此功能对于测试同学特别有用,可以检验接口的健壮性。 
对于前端的价值是不需要刷新页面,只需要repeat请求,比如检验代理是否成功,修改请求后执行等。
使用方法:
选择请求后,右击Repeat 就是重复发送一次请求。 
Advanced Repeat可以自定义重复次数和重复间隔,重复发送多次请求。

Iteration:迭代次数
                                                                       Concurrency:并发数
---------------------
作者:一亩地
来源:CSDN
原文:https://blog.csdn.net/Aaroun/article/details/79109917
版权声明:本文为博主原创文章,转载请附上博文链接!

说说Charles的更多相关文章

  1. windows charles response 乱码解决办法

    使用windows 版本的charles来做代理,发现服务端返回的response会出现中文乱码的情况, 查看软件设置,遗憾的是并没有关于编码的选项. 好在charles windows版本安装目录下 ...

  2. charles工具抓包教程(http跟https)

    1.下载charles 可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/    根据自己的操作系统下载对应的版本,然后进行安装,然后打 ...

  3. mac 抓包工具charles v3.9.3 安装破解步骤

    一.下载 先到它的官网http://www.charlesproxy.com/可下载到最新版本,这个下载有点慢,我已经将它放到网盘中了:http://pan.baidu.com/s/1skTXRIl ...

  4. 谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles

    在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Re ...

  5. 复习(2)【postman,charles,filezilla server】

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.通常我们可以用它来测试接口. Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的 ...

  6. [Android] charles高级使用总结

    reference to : http://blog.csdn.net/a910626/article/details/52823981 charles高级使用总结 网速模拟 点击菜单“Proxy→T ...

  7. 关于Charles抓取手机访问的Https请求

    准备工作 本次测试的Charles版本为3.9.1 · 首先在Charles中开启HTTP请求的远程监听. · 然后分别在手机和Mac上安装Charles的证书. 注意:证书一定要一致,否则抓取不到. ...

  8. iOS 利用Charles抓包

    1.安装 Mac下好用的HTTP/HTTPS抓包工具Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Retinizer中把文字变清 ...

  9. MAC下使用Charles抓取安卓模拟器数据

    一.安装Charles,这个不多记录 二.Charles数据乱码问题(参照这篇文章 http://blog.csdn.net/huanghanqian/article/details/52973651 ...

  10. charles 抓取eclipse中的请求

    charles抓取eclipse中的请求 有时候,想要监测eclipse中发送get获取post请求,一样可以使用代理方式: 1.eclipse代码设置 代码中添加,可以就写在主函数中,然后再调用请求 ...

随机推荐

  1. [K/3Cloud] 使用操作还是服务

    现在菜单点击事件既可以挂操作又可以挂服务,那到底是应该挂操作还是服务呢? 有个需求是要求一个动作可以在两个时点被触发 1.单据由下推或选单生成的时候: 2.点击单据界面功能菜单: 这样是不是需要做一个 ...

  2. [Nescafé 20] 玉蟾宫

    ★   输入文件:jademoon.in   输出文件:jademoon.out   简单对比 时间限制:1 s   内存限制:128 MB [背景] 有一天,小猫rainbow和freda来到了湘西 ...

  3. hdu_2082_找单词_201404271536

    找单词 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. Linux 攻击防护基础排查

    作者:Zzang 来源:cnblogs 原文:https://www.cnblogs.com/Zzang/p/LinuxHack.html 版权声明:本文为博主原创文章,转载请附上博文链接! 基本网络 ...

  5. windows下编译jpeg

    项目为了脱离OpenCV,直接采用libjpeg,记录在windows下jpeg安装. 项目地址http://www.ijg.org/ 下载解压缩jpeg-9a 看了看OpenCV中对libjpeg的 ...

  6. 【CV论文阅读】+【搬运工】LocNet: Improving Localization Accuracy for Object Detection + A Theoretical analysis of feature pooling in Visual Recognition

    论文的关注点在于如何提高bounding box的定位,使用的是概率的预测形式,模型的基础是region proposal.论文提出一个locNet的深度网络,不在依赖于回归方程.论文中提到locne ...

  7. javascript statically scope

    在javascript 里面, 函数中使用的未定义的变量,会默认变为全局的变量. 而通过 var 这个关键字定义的变量,就是局部变量. As far as the output is concerne ...

  8. iOS单例设计模式具体解说(单例设计模式不断完好的过程)

    在iOS中有非常多的设计模式,有一本书<Elements of Reusable Object-Oriented Software>(中文名字为<设计模式>)讲述了23种软件设 ...

  9. hdu 5386 Cover (暴力)

    hdu 5386 Cover Description You have an matrix.Every grid has a color.Now there are two types of oper ...

  10. Cocos2D实现上下滚动式状态窗体

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来 ...