• 0
  • 0
分享

  做过 APP 测试的同学都会接触抓包工具,通过抓包工具可以获取到客户端与服务端接口的交互数据,在实际测试APP的过程中,我们往往会发现服务端返回 的参数字段错误、数据统计错误等问题,通过抓包可发现这些问题,对开发修复 BUG 提供有效的帮助。

  那么今天给大家继续介绍一下抓包工具 Charles工具。

  一、Charles简介

  Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request,response和HTTPheaders(包含cookies与caching信息)。

  主要功能如下:

  ·支持SSL代理。可以截取分析SSL的请求。

  · 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  · 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

  · 支持AMF调试。可以将FlashRemoting或FlexRemoting信息格式化,方便查看。

  · 支持重发网络请求,方便后端调试。

  · 支持修改网络请求参数。

  · 支持网络请求的截获并动态修改。

  · 检查HTML,CSS和RSS内容是否符合W3C标准。

  Charles是一款很实用,界面很友好(至少跟fiddler比起来),功能强大的抓包神器,因为它是基于java开发的,所以跨平台,Mac、Linux、Windows下都是可以使用的,并且在Android和iOS设备上通用。

  它的原理是通过成为电脑或者移动设备的代理截取请求和请求结果达到分析抓包的目的。

  二、Charles下载与安装

  官网下载地址:(百度一下~ )

18.png

18-1.png

  下载后,直接点击下一步,就可以安装才能安装成功。安装后打开Charles如下:

18-2.png

  三、Charles配置

  (1)Charles-PC端的配置如下:

  第一步:设置端口号Proxy--ProxySettings默认端口号是8888。

18-3.png

  第二步:查看电脑IP,Help--LocalIPAddresses。

18-4.png

  第三步:手机设置代理后(步骤参考上一节的手机端配置),设置代理服务器和端口号。

18-5.png

  第四步:打开APP,发送请求,Charles弹出是否允许该手机访问,点击Allow。

18-6.png

  第五步:点击允许后,可以在Proxy--AccessControlSettings里看到允许访问此代理服务器列表。

18-7.jpg

  注意:如果点击了拒绝,可以手动添加手机IP/Mac地址到允许访问列表,后者重启Charles,手机再次访问即可。

  设置完成后,即可抓包。

18-8.png

  (2)过滤网络请求:

  从上图中,可以看出网络请求很多,我们能否过滤出我们指定的URL地址呢?有以下两种方法:

  方法一:在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字,例如我们的服务器地址时:*.xxxx.wsmall.com,那么只需要在Filter栏中填入wsmall即可。

18-9.png

  方法二:在Charles的菜单栏选择Proxy--RecordingSettings,选择Include,输入需要监控的协议,主机地址,端口号,这样就可以只截取目标网站的封包了。

18-10.png

18-11.png

  (3)Charles抓取HTTPS请求包前置条件:

  手机已经设置代理,可抓取到http包,未抓取HTTPS包的情况:

18-12.png

  抓取到HTTPS包的情况:

18-13.png

  安装SSL证书到手机设备:点击

  Help--SSLProxying--InstallCharlesRootCertificateonaMobileDevice。

18-14.png

  在手机浏览器输入地址chls.pro/ssl,出现证书安装页面,点击安装部分手机需要设置手机密码才可以安装。

18-15.png

  Charles设置Proxy:

  Proxy--SSLProxyingSettings。

18-16.png

  设置需要抓取的域名,端口输入443,设置完后,即可抓取HTTPS包。

18-17.png

  (4)Charles抓取HTTPS双向认证包:

  双向认证,简单的理解就是服务器端和客户端都有证书,目前有部分APP就采用双向认证,如果我们按照上面的章节操作是抓取不到包的,那么我们怎么处理呢?我们这里比抓取https请求包多了一步上传客户端证书,前置条件是:

  · 可抓取到HTTPS包

  · 客户端证书:xxxt.p12(可以找开发获取)

  · 点击Help--SSLProxying--InstallCharlesRootCertificate,安装证书

18-19.png

18-20.png

  Proxy--SSLProxyingSettings,设置域名和端口号。

18-21.png

  设置域名和端口号,上传客户端证书,上传证书时,需要输入证书密码。

18-22.png

  上传根证书,上传时需要输入证书密码。设置完成后,即可抓取APP的请求包。

18-23.png


作者:佚名    

来源:http://www.51testing.com/html/16/n-7789616.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1.按测试阶段划分(1) 单元测试单元测试(模块测试):针对软件设计最小的单位-程序模块,进行正确性检查的测试工作单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试单元定义:C中个一个函数,Java中的一个类在图像化软件中是一个窗口( Android的首页,我的,商品详情)(2) 集成测试集成测试(组装测试):在单元测试基础上,将所有的程序模块进行有序的,递增的测试,重点测试模块之间的接口部分(3) 系统测试系统测试:整个软件系统,全面的在进行一次测试2.是否覆盖源代码白盒测试白盒测试:看代码,研究程序源代码,和程序结构黑盒测试黑盒测试:没有代码,就是看表面的效果,...
            13 13 2494
            分享
          •   对于没有进入IT领域的同学而言,软件测试并不陌生,但若听到测试开发,有些人可能会感到十分困惑,这到底是测试还是开发?是懂测试的开发人员还是懂开发的测试人员呢?通过目前国内的业务团队来看,无论是从手工测试不断提升上去的还是从开发岗位转岗的,“测试开发”这个岗位都是归为测试领域的,小编也亮明观点,“测试开发”是测试岗位,所以代表的一定是懂开发的测试人员。  为了让大家更全面而深入地了解“测试开发”,接下来小编详细介绍一下测试开发岗位:  ·测试技术的发展历程  · 测试开发的薪资待遇  · 如何转向测试开发  一、测试技术的发展历程  第一阶段:国内测试行业发展之初(201...
            0 0 951
            分享
          • 在我们测试过程中,需要把发现的bug纳入系统,并指派给对应的开发人员修改,开发修改完成后更新bug状态,bug回到测试手中,进行验证,验证完毕关闭bug或重新打开bug。在这个过程中就需要借助bug管理工具,目前常用的是tapd软件缺陷管理系统。点开缺陷详情,右侧更多里面有针对这个缺陷的一系列功能,比如重新编辑缺陷,删除缺陷,复制缺陷,移动缺陷,合并缺陷,关联缺陷,转需求,转用例等。常用的是复制,移动和关联缺陷,当提交完bug发现bug对应的项目选错了,这个时候我们可以用移动功能把bug移动到对应的项目中,当发现的问题与之前提交的一个问题比较类似,这个时候就可以用复制功能,把问题的主体复制过去...
            1 1 23235
            分享
          • 1、页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTMLLinkValidater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTMLLinkValidater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,xenu测试链接包括内部链接和外部链接,在使用的时候应该注意,同时能够生成html格式的测试报告。如果系统用QTP进行自动化测试,也可以使用QTP的页面检查点检查链接。2、相关性检查:功能相关性:删除/增加一项会不会对其他项产生...
            12 12 1069
            分享
      • 51testing软件测试圈微信