美文网首页移动端测试
移动端测试 -- Charles的应用

移动端测试 -- Charles的应用

作者: h080294 | 来源:发表于2017-10-15 01:18 被阅读28次

    Charles介绍

    Charles是一个HTTP代理/ HTTP监视器/反向代理,它允许开发人员查看机器和Internet之间的所有HTTP和SSL / HTTPS流量。这包括请求、响应和HTTP头(其中包含cookie和缓存信息)

    Charles 虽然是收费软件,但即使不购买也能长期使用,并且功能上不会缺斤短两。唯一要付出的代价是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。

    更多详细内容移步官方网站:
    https://www.charlesproxy.com/

    Charles在移动端测试的主要应用

    一、Charles抓包HTTP、HTTPS

    将移动设备和本机置于同一个网络下,在移动设备上的网络中添加代理 -> 手动 -> 填写主机名和端口。一般来说,Charles默认的端口是8888,在Proxy -> Proxy Settings可设置。主机名就是本机的IP的地址,在Charles -> Help -> Local IP Address可查看。

    一般初次连接时会提示是否允许进行连接,点击allow允许就好了。如果不小心点击拒绝,那么有两种方法,第一种重启Charles;第二种,Proxy -> Access Contro Settings中添加移动设备的IP地址。

    Charles抓移动设备HTTPS请求

    点开 Help -> SSL Prox -> Install Charles Root Certificate on a Mobile Devices or Remote Browser

    提示很明显,先让设备连上Chalres,然后在设备上用系统浏览器访问chls.pro/ssl,然后会自动下载一个证书,选择安装证书。之后便可以抓取https协议的包了。
    在需要的请求上,点击Enable SSL Proxy即可。


    或者在Proxy -> SSL Proxy Settings中勾选上Enable,并且添加指定host。例如抓取全部https,host输入通配符“ * ”,port填443。

    Android 7.0 HTTPS抓包

    Android 7.0以上版本,Google更新了网络安全性配置,不再信任用户导入的CA根证书。所以即便是安装了证书,也得不到系统的信任,需要在应用中添加信任才行。解决方法百度一大堆,这里不举例,移步官方介绍:https://developer.android.com/training/articles/security-config.html

    二、Charles过滤请求

    一般来说,我们只关心特定HOST的请求。当我们仅想监控这些请求时,可以使用Charles的过滤功能。

    1、Record Settings设置include/exclude

    Proxy -> Recording Setttings
    include:需要监控的host。如果列表为空时,默认监控所有请求
    exclude:不需要监控的host

    2、Filter

    Filter一栏中输入需要要过滤的host或者关键字。也可以在勾选上Foucsed,并制定focus哪些host。

    三、Charles网速模拟

    Proxy -> Throttle Setting
    Charles内置几种网络模型可直接使用,也可自定义来满足特定需求。
    当然更可以只针对特定host模拟网速,只需要勾选上Only for select hosts就ok了。

    四、Charles修改请求及返回值

    移动端测试中,Charles最常用的应该就是修改请求返回值了,有几种方式可以实现。

    1、breakpoints

    像断点一样,当执行到指定规则链接时,触发breakpoints。即可以在请求到服务端前中断,也可以在返回到客户端前中断。在这个过程中便可以修改Request或者ResponseR。不过值得注意的是,在移动端的测试中,使用breakpoints会大概率导致客户端的请求超时。因为手动修改是需要花时间的

    2、重定向 -- Map Local、Map Remote

    顾名思义,Map Remote 是将指定的网络请求重定向到另一个网址请求地址,Map Local 是将指定的网络请求重定向到本地文件。
    Map Remote简单的实例:

    Map Local简单的实例:

    3、rewrite

    Rewrite 功能功能适合对某一类网络请求进行一些正则替换。
    例如我在map local功能中需要把本地的文件添加一个json的header变成客户端识别的格式,就可以用rewrite。当然Rewrite功能很强大,能很方便的在各种测试环境切来切去,就像图中左侧列表所展示。

    Charles的破解

    jar文件链接:
    链接: https://pan.baidu.com/s/1ctXQaU 密码: cndm
    对破解过程感兴趣的,可移步Charles 4.2 破解for Mac and Win

    更多内容关注我的微信订阅号

    相关文章

      网友评论

        本文标题:移动端测试 -- Charles的应用

        本文链接:https://www.haomeiwen.com/subject/ucsxuxtx.html