强大的Charles的使用以及Mock数据 for iOS & (牛逼的)测试工程师

安装软件

百度搜索charles,第一个地址官方连接了:www.charlesproxy.com,下载安装即可。json

设置网络,进行抓包

  • 将移动设备和电脑设备设置为同一个网络,即链接同一个Wi-Fi。
  • 利用电脑查询IP地址,以下图:

  • 或者经过Mac的终端查询,打开终端,输入ifconfig,以下图:

  • 设置移动设备的网络代理模式 进入链接的无线网的高级模式,上滑倒最底层,进入HTTP代理模式,而后选择手动,并在服务器中填写本身查到的IP地址,而后在端口中填写8888,最后存储设置。

  • 而后用手机打开你要抓包或者mock的App,电脑端会显示一个弹窗,而后选择 allow

再进行手机操做,每一个请求都会被拦截,使用Charles可查看。浏览器

证书配置,拦截HTTPS请求

对于https的请求,拦截的是乱码,以下图,须要作一些额外的操做。服务器

须要设置SSL Proxying Settings,将对应的域名以及端口添加进去,使用*:*便可,以下图网络

另外还有相关证书的配置,经过help->SSL Proxying去安装证书,Mac与iPhone都要进行安装而且信任,以下图测试

配置电脑端证书,选择install Charles Root Certificate,而后安装,最后选择始终信任url

配置手机端证书,选择install Charles Root Certificate on a Mobile Device or Remote Browser,而后在手机浏览器里输入chls.pro/ssl下载,进行安装。最后一步就是进入手机设置,通用->关于本机->证书信任设置,而后信任刚刚安装的证书便可。3d

这样就能够成功的拦截https的请求。代理

Mock连接的数据

截取到连接的数据是这样的: 调试

若是列表有不少的请求,能够经过左下角的Filter:进行筛选code

方法一

首先要选择出想要mock数据的接口,设置断点

而后须要再次触发访问该接口。Charles会停留在断点接口,提供一个Edit Requese页,可提供修改参数以及请求类型、请求连接的校验。

接着点击Execute进行执行下一步,选择JSON Text能够看到断点连接返回的参数,这个时候就能够改动返回值的结果,以达到想要测试的目的。

好比这里修改的是参数 "Community": "东方御花园一期",改为 "Community": "测试Mock数据",执行Execute,即可看到下面结果(确保没有请求超时)。

方法二

按照方法一的步骤,获取到断点连接返回的数据后,把数据源拷贝出来,本地新建一个JSON类型的文件,把返回的数据复制到该文件中。 具体步骤以下:

打开软件Sublime Text

把数据源复制,而后选择JSON类型,保存,以下图:

把保存好的json文件放置在桌面,同时修改你要mock的数据,一样这里修改的是参数 "Community": "东方御花园一期",改为 "Community": "测试Map Local"

在你须要调试的接口,右键有个Map Local

选择你在本地提早写好的json文件,而后点OK

最后再次触发该请求便可。

以上是两种方法Mock数据,我的感受第二种更方便一点,毕竟网络请求通常都是会有超时状况,若是Mock数据需改比较麻烦的话,会带来不便。

最后若是须要取消断点Breakpoint或者Map Local,能够进行下面的操做。

限速

利用上面的小乌龟,能够达到控制网速的效果,不过须要设置一下代理模式。 步骤以下:

进行网络请求限制网络时,可调节Download的相关参数;若是要限制上传速度的话,可调节Upload的相关参数。

相关设置搞定之后,点击OK进行保存,即可以进行各类弱网测试,此时你也会发现,小乌龟变绿了,貌似在睡觉,表示限制网络了。

重写功能

Charles的Rewrite功能很是强大,能够重写接口全部元素的内容,例如:header、host、url、path、query、param、response status、body。

首先选择Tools->Rewrite,会弹出下面弹窗,选中Enable Rewrite以及点击左下角的Add

具体须要重写的对象,能够在Location下点击Add去添加。具体重写操做可点击右下侧add按钮进行添加。

当全部都添加完毕,点击OK保存便可。

最后感谢好友 @倩楠 的帮助,让我从陌生到了解的认识Charles

相关文章
相关标签/搜索