charles抓包工具分享

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

1、charles简介api

2、安装与配置浏览器

3、功能服务器

4、Q&A网络

1、charles简介并发

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

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

2.它容许一个开发者查看全部链接互联网的HTTP通讯。测试

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

2、安装与配置

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数据为例

       

   

3、功能

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:并发数

4、Q&A

相关文章
相关标签/搜索