下面是整个链接。

http://www.winshy.com/2013/08/something_about_charlesproxy/?utm_source=rss

Charles:移动端抓包工具安装使用和经验小结

从事移动互联网一年多的时间,等到去年才慢慢和开发打交道,由于创业公司人手不足,没有专门测试人员,很多时候产品人员QA质量验收的时候,就会面临黑盒测试测试不全面,通讯请求盲人摸象的局面.通过一段时间的摸索,找到了Charles这款适合移动端抓包工具,的确比之前方便了很多,主要体现在:

1.可以查看具体的请求链接,查看有没有多余对服务器的请求,能否更好的优化和服务器之间的通讯.

2.可以直接查看竞品或者其他优秀app的通讯使用的数据结构,精简自己的数据结构,方便节省流量和提升效率

3.可以直接查看统计请求,方便调试有没有入库,或当发生加载异常等情况时,可以第一时间发现问题而无需等开发人员进行真机调试才能判断是服务器还是客户端的问题.

鉴于以上优点,如果路过围观的小伙伴们对这些优点感兴趣又和我有一样的苦恼,不妨继续往下看,以下是安装过程和在使用中的一些经验.

1.下载并安装Charles.

mac版和window版都有,下载可以去Charles官网(http://www.charlesproxy.com/download/),下载下来的是试用版(截止2013.08.25最新版本是3.7),虽然只是试用版有一定限制,比如开机delay10s,每隔5分钟提示你转为试用版,30分钟后强行关闭,但鉴于他强大的功能,30分钟其实已经足够.目前3.6在百度上有破解版,自行百度之.

2.配置Charles.

1)打开charles后,在proxy标签项关闭自身代理,此选项开启会抓取电脑的网络请求,影响我们测试。实际上我们在测试手机app并不需要,故关闭。

如下:

2)设置pc端代理。如下图选择proxy setting.如下图所示:

Proxies一项设置如下,默认端口为8888,用于手机连上代理的端口.

接下来SSL一项如下设置:

即允许ssl代理,下方的*.*是要通过add按钮添加进去的。在按”add”按钮之后两个输入框均输入”*”,”*”即可.

3) 设置允许代理的ip地址范围。打开proxy->access control setting,如下:

将你允许的ip地址段填写进去。如下图:

确定自己要填的ip地址段,window使用cmd命令行  输入ipconfig回车 即可看到自己目前所在的ip,如192.168.0.108(首先这个ip地址最好是无线路由分配的),即可以设置为192.168.0.0/24.如此设置之后192.168.0.0~192.168.0.255的地址均可以访问你的电脑,通过你的电脑进行代理上网。如下图:

3.设置手机端的相关参数.

不同手机设置方法可能有所不同,以安卓手机(谷歌原生4.0以上系统)为例,进入系统设置-》网络,长按目前和pc端连接一样的路由名称,弹出修改网络,选择修改网络,如下:  

按照以上截图选择显示高级选项。配置刚刚pc的ip地址,和端口即可。

然后关闭pc端的防火墙,测试是否连接电脑成功。(此步骤很重要)

测试方法:点击随便一个应用(笔者启动的是今日头条),看charles的Structure栏中有没有出现一些文件夹,类似下图,如果有则成功;

**********charles常用的一些功能介绍:

1) 忽略请求功能。由于某些时候我们只需要关注某一个应用的请求,所以过滤掉其他不需要显示的请求可以让我们集中精力在该应用.点击某行右键选择ignore(如下图),可以将此链接忽视,将干扰的网络请求屏蔽,防止影响我们测试:

2) 复制原链接。此功能可以复制请求的原链接,只要你使用Chrome浏览器安装了son viewer的插件,黏贴上去回车即可看到返回的数据结构。同时也方便于发给服务器的开发人员调试用。如下:

3) 清空捕获的网络请求,正常状态下在structure栏里按ctrl+a,然后按delete键,就可以清除所有捕获的网络请求,

4) 查看请求的相关数据。如下图,overview可以方便的看出请求的时间长短,请求的大小和返回数据的大小,即数据请求的大概情况;

Request用于查看请求的参数是否携带正确。如下图:

而response可以查看返回的数据结构是不是我们想要的,如下图,可以明确的看到拿到的封面数据是否正确。

    当请求的是一张图片时,还可以直接用response-》image查看图片的尺寸和图片,方便我们确认是否下载正确,如下图:

注:使用代理无法访问一些安全验证网站如新浪微博绑定页面,目前android版使用代理直接访问在某些机器上会直接闪退关掉该页面,故需要绑定时请关闭代理之后再连接上代理验证。

*************Charles目前尚有问题的地方:

1.同样设置在一些机器可以捕获到Google Analytics的请求,但有些不行,暂时还找不到原因.

2.暂时无法捕捉到微信等请求,可能因为使用的协议不同所以无法捕获,这也是其局限性之一.

3.在一些机器开启charles捕获链接时使用新浪微博登录时会出现崩溃现象,原因也暂时不明.

Charles 抓包的工具的更多相关文章

  1. charles抓包工具的中文乱码解决方法

    charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码, ...

  2. Charles抓包工具使用

    Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools  >>  Map Local  >>  勾选enable  >>  add  >> ...

  3. Charles 抓包工具(新猿旺学习总结)

    Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...

  4. Charles 抓包工具安装和采坑记录

    Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...

  5. charles抓包工具使用指南

    前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓 ...

  6. Charles抓包工具的使用(一)

    前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在W ...

  7. Charles抓包工具的用途及应用

    Charles抓包工具的用途: 排查问题,测试异常情况 注意:Charles不能直接抓https请求的包,需要用https://www.jianshu.com/p/ec0a38d9a8cf这个方法去配 ...

  8. charles抓包工具分享

    今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...

  9. Charles 抓包工具的使用

    抓包工具有很多,目前用过的有Charles, Fiddler, burpsuite.下面主要是Charles 的应用实例. 一. 用Charles抓包 1. PC 抓包 打开Charles, 确保“录 ...

随机推荐

  1. android之SlideMenu双向滑动

    开始动手之前先来讲一下实现原理,在一个Activity的布局中需要有三部分,一个是左侧菜单的布局,一个是右侧菜单的布局,一个是内容布局.左侧菜单居屏幕左边缘对齐,右侧菜单居屏幕右边缘对齐,然后内容布局 ...

  2. warning MSB3162: 所选的“Microsoft Report Viewer 2012 Runtime”项需要“Microsoft.SqlServer.SQLSysClrTypes.11.0”。在“系统必备”对话框中选择缺少的系统必备组件,或者为缺少的系统必备组件创建引导程序包。

    warning MSB3162: 所选的“Microsoft Report Viewer 2012 Runtime”项需要“Microsoft.SqlServer.SQLSysClrTypes.11. ...

  3. git 上传项目到仓库

    git 上传项目到仓库 第一步:建立仓库! 1.create new repository! 创建时最好选择 init (Initialize this repository with a READM ...

  4. 一步步制作RPM包

    一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...

  5. Java中方法的重写与成员变量的隐藏

    这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? public class ...

  6. ACM童年生活二三事

    描述 Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. 但年幼的他一次只能走上一阶或者一下子蹦上两阶. 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几 ...

  7. 论文笔记《Hand Gesture Recognition with 3D Convolutional Neural Networks》

    一.概述 Nvidia提出的一种基于3DCNN的动态手势识别的方法,主要亮点是提出了一个novel的data augmentation的方法,以及LRN和HRn两个CNN网络结合的方式. 3D的CNN ...

  8. md5 加解密

    using JGDJWeb.Model; using System; using System.Collections.Generic; using System.IO; using System.L ...

  9. C和C++的关键字区别

    c中数据类型是struct ,c++中可以是struct,也可以是class关于c++中<< 和>>分别是箭头往那边就是流向哪里的 比如cout<<这个就是流向屏幕 ...

  10. Kubernetes UI配置

    #配置,在控制节点上操作#这里的镜像在谷歌上面需要FQ下载#######################################生成windows证书,将生成的证书IE.p12导入到IE个人证 ...