charles工具使用

charles除了之前介绍过模拟弱网的功能外,还有很多强大的功能。最近客户端测试用到的功能介绍如下:

一.准备工作

1.手机设置代理

charles设置代理端口号8888:Proxy→ Proxy Settings

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

2.SSL代理设置,允许抓取https协议

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

二.拦截某个软件的接口数据

手机代理到电脑,charles会出现弹窗,询问allow还是deny,选择allow,连接成功。

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

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

如果只测试一个功能的情况下,可以只截取单个接口,例如测试阿波罗首页广告,只需截取splash接口,添加并勾选。

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

Charles主要提供2种查看封包的视图,分别名为“Structure”和"Sequence"。

  1. Structure视图将网络请求按访问的域名分类。
  2. Sequence视图将网络请求按访问的时间排序。

大家可以根据具体的需要在这两种视图之前来回切换。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果响应内容是JSON格式的,那么Charles可以自动帮你将JSON内容格式化,方便你查看。

三.更改返回数据来测试各种情况

1.强大的mapping功能

a.Map Local

可以将远程的某个文件代理到本地文件,进行调试。使用方法如下:

Tools→Map Local→勾选Enable Map Local→Add→填入需要映射本地文件的协议,主机地址,端口号

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

b.Map Remote

Map Remote的功能原理和Map Local的原理相同,都是替换请求,只不过Map Local替换的请求为本地文件,而Map Remote替换的请求为线上请求。

使用方法:Tools→Map Remote→勾选Enable Map Remote→Add→填入需要替换请求的协议,主机地址,端口号。

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

2.断点功能

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

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

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

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

跳转到断点界面,先点击下方执行按钮“Execute”。

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

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

不断更新。。。

charles工具的使用的更多相关文章

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

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

  2. 【已采纳】charles工具使用心得

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

  3. 抓包(Charles工具入门)

    一.charles工具简单使用 1.录制操作 录制请求.清空录制请求: 两种展示请求的视图方式: 2.录制请求的简单分析 (1)请求的总览页面Overview:可查看请求路径.请求方式.请求时间等有关 ...

  4. Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息

    Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器 ...

  5. charles 工具菜单总结

    本文参考:charles 工具菜单总结 主要是下面的功能,具体可以点击对应菜单查看 工具菜单总结 禁用缓存 禁用Cookies 远程映射到URL地址 映射到本地 重写工具 黑名单 白名单 DNS欺骗 ...

  6. charles工具教程

    本文的内容主要包括: Charles 的简介 如何安装 Charles 将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https ...

  7. charles工具过滤腾讯视频播放器广告

    Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据.它允许一个开发者查看所有连接互联 ...

  8. charles工具页面介绍

    charles的主页面介绍 手机连上代理之后,每在手机上进行操作我们便会在charles上接收到请求.此时的charles页面将会变成如下密密麻麻的内容,故这节课我们来讲解一下Charles的主页面 ...

  9. Charles工具内存不足时解决办法

    Charles runs out of memory After recording for a while Charles will run low on available memory. To ...

随机推荐

  1. Web前端性能优化之图片优化

    我自己的Blog:http://blog.cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到了互联网内容总量的62%,也就是说超过 ...

  2. 20145325张梓靖 实验三 "敏捷开发与XP实践"

    20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...

  3. 【wikioi】2216 行星序列(线段树)

    http://wikioi.com/problem/2216/ 这题太让我感动了QAQ,让我找到了我一直以来写线段树的错误!!!! 就是,pushdown一定要放在最前面!要不然顺序会错.也就是说,当 ...

  4. log4j的配置信息

    首先,在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对Logger.Append ...

  5. SSH自定义分页标签

    本文参考文章:http://blog.csdn.net/qjyong/article/details/3240303 一.标签处理类: package cn.conris.sys.form; impo ...

  6. python基础数据类型

    整形:(不可变类型) >>> a = 123>>> type(a)<class 'int'> 长整形:(在python3中已经废弃了) >> ...

  7. JQuery asp.net 简单入门

    1.A标签 <a href="javascript:setURL('Invelogin.aspx');">Login.aspx</a> <a href ...

  8. Html - 仿QQ空间右下角工具浮动块

    仿QQ空间右下角工具浮动块 <style type="text/css"> .cy-tp-area>.cy-tp-fixbtn>.cy-tp-text { ...

  9. 学习SSH框架

    1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框架之下来简化还有名了我们相关的网站的开发. SSH框架实则为Struct + spri ...

  10. 【转】Java跨平台原理

    原文地址:http://www.cnblogs.com/gw811/archive/2012/09/09/2677386.html 1.是么是平台 Java是可以跨平台的编程语言,那我们首先得知道什么 ...