Charles Mock测试总结

发表于:2017-3-22 11:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:萧竹    来源:51Testing软件测试网采编

  1、背景
  测试存在问题:
  1、测试环境接口不稳定
  2、业务系统不是孤立存在的,关联方太多,而且关联系统常常出现不稳定的情况
  3、暂时无可用Mock server工具
  4、接口未提测验收完成,前端测试提前介入
  影响:
  测试依赖数据,依赖接口阻塞导致测试延期,干耗时间成本人力成本
  解决方案:
  引入Mock测试,有了Mock,测试童鞋在后端接口未准备好时按照接口文档就可以开始造数据进行测试工作,不会出现测试一直等待开发的情况,也可以开发联调与测试进行。这样的话,开发自测阶段就可以及早开展,从而发现缺陷的时机也提前了,有利于整个产品app测试覆盖率提升和产品项目进度的保证
  2、环境配置及准备
  2.1、安装charles及一些配置项说明
  去 Charles 的官方网站(http://www.charlesproxy.com)下载最新版的 Charles 安装包,是一个 dmg 后缀的文件。打开后将 Charles 拖到 Application 目录下即完成安装。
  2.1.1将 Charles 设置成系统代理
  Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。
  启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。步骤如下:
  * 1、打开Charles程序
  * 2、Mac连接上网络paictest,查看Mac电脑的IP地址:
  系统偏好设置->网络就可以查看到了,比如我的ip地址是:172.16.0.238
  * 3、将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,
  填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。
  * 4、要截取 iPhone 上的网络请求:进入当前wifi连接paictest(Mac在一个局域网内),
  设置HTTP代理Group,将服务器填为上一步中获得的IP,即172.16.0.238,端口填8888.
  * 5、打开 iPhone 上的任意需要网络通讯的程序,就可以看到 Charles 弹出 iPhone
  请求连接的确认菜单(如下图所示),点击 “Allow” 即可完成设置。
  之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中,如下图所示(由于涉及部分业务,马赛克了)。
  
网络抓包
  2.1.2安装证书
  如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。具体步骤如下。
  1、首先我们需要在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。
  需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 SSL proxy,如下图所示:
  
SSL proxy setting
  这样,对于该 Host 的所有 SSL 请求可以被截取到了。
  2、截取移动设备中的 Https 通讯信息
  如果我们需要在 iOS 或 Android 机器上截取 Https 协议的通讯内容,还需要在手机上安装相应的证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 弹出的简单的安装教程。在设备上设置好 Charles 为代理后,在手机浏览器中访问地址:http://charlesproxy.com/getssl
  即可打开证书安装的界面,安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选中SSL proxy 菜单项。
  3、组件mock测试:eg: xx app 登录业务
  3.1 编辑网络请求数据了解
  根据具体的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:
  Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
  Rewrite 功能适合对网络请求进行一些正则替换。
  Breakpoints 功能适合做一些临时性的修改。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号