今天,给大组内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