本文来源 https://blog.csdn.net/Aaroun/article/details/79109917前端
今天,给你们作一次分享,主要面向移动端测试,介绍了我平时接口开发工做中用到的功能。下面介绍我今天分享的内容:api
1、charles简介浏览器
2、安装与配置服务器
3、功能网络
4、Q&A并发
1、charles简介app
1.Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。工具
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:并发数
一 过滤
1 在 Charles 的菜单栏选择 Proxy->Recording Settings,而后选择 Include 栏,选择Add,而后填入须要监控的协议,主机地址,端口号,这样就达到了过滤的目的。
2 还有一种方法就是在一个网址上右击,选择Focus,而后其余的请求就会被放到一个叫Other Host的文件夹里面,这样也达到了过滤的目的。
二 断点
1 断点的功能搞开发不会不知道,在Charles发起一个请求的时候,咱们是能够给某个请求打一个断点的,而后来观察或者修改请求或者返回的内容,可是在这过程当中药注意请求的超时时间问题。要针对某一个请求设置断点,只须要在这个请求网址右击选择Breakpoints就能够断点某一个请求了。
三 模拟网速慢
有时候在开发的时候咱们想要模拟一下网络慢的状况,这时候Charles他是能够帮助到你的,在Proxy->Throttle Setting,而后选择Enable Throttling,在Throttle Preset下选择网络类型便可,具体设置你能够自行拿捏。
四 请求重定向
请求重定向的做用是什么呢?开发中通常都是测试环境,若是咱们想对比一下和线上版本的区别的话,能够讲测试的请求重定向到正式环境下。在选择 Tools->`Map Remote下
五 内容替换
有时候咱们会测一下请求的参数不一样会带来不一样的返回结果以测试是否达到业务需求,或者须要不一样的返回结果来验证咱们对数据的处理是否正确,这时候须要后台的同事配合,可是有了Charles,咱们能够本身把控接口返回来的内容,好比数据的空与否,数据的长短等等。在Tools->Rewrite Settings下