1.应用场景:
1.1 测试环境中,可能存在部分依赖外部系统的http接口,因为外部系统未部署或服务不可用等其他原因,导致接口无法正常响应(特别是qa1环境);
而平时的测试主要还是以界面上的功能测试为主,所以需要自行mock接口。这里可以利用charles抓包工具来实现。
2.环境准备:
2.1 下载charles,并且配置好代理
这一步比较简单,经常使用 抓包工具的应该都熟悉,可以参考以下文章 https://www.jianshu.com/p/187afc1049ca
3.实践步骤:
3.1 charles 提供了 map local 和 map remote 两种方式来实现mock(PS : 个人觉得比对某一接口打断点,然后修改返回参数 这种骚操作好用)
对于 map local 来说,其实是将构造好的返回结果,以json文件的形式存在本地,然后charles会自行构造响应头,返回数据。这种方式实现成本比较低,但是可能灵活性不是很高;
而 map remote,则是需要有一个可用的mock server,将响应头和返回结果都构造好,然后直接返回。这种方式,如果自己写代码实现,成本会比较高,但是灵活性也相对较高,能适用更多场景。
3.2 下面以具体例子,演示一下 map local 的使用:
打开charles,让接口请求都中转到charles,先右键接口,在弹窗中按以下步骤配置:

PS:这一步需要先将构造好的接口返回参数,以json文件格式保存;(一个小技巧:可以在其他接口能正常响应的环境,复制一份正常的响应数据,然后做对应的修改)
例子

这一步配置完之后,其实已经成功了一半;
重新回到界面,点击对应的功能,触发接口请求,大概率会看到接口还是报错的,但是charles上已经是正常返回数据的了;
打开F12 的console界面,可以看到报错提示,这里出现的问题其实是跨域问题

跨域问题的解决:
点击Charles的Tools菜单,点击 Rewrite Settings ,在弹窗中配置重写规则,针对指定的接口,重写响应头

配置完成之后,点击OK,再重新回到界面触发请求,会发现接口已经正常返回Mock的数据了
到这里,利用map local 做接口 mock 就已经成功了,可以解决大部分使用场景,缺点在于返回结果是放在本地的文件中,可能需要每次都去修改一下;
 
3.3 使用map remote
配置的方式和map local差不多,不进一步展开。使用这个功能的关键点在于,需要有一个可用的mock server,并且能自行构造响应头,以解决跨域问题;
如果使用map remote的话,个人更倾向于自己搭一个python web 应用来作为 mock server,可以灵活定制响应结果。

关于使用charles进行mock步骤的更多相关文章

  1. 测试同学必备抓包工具--charles之mock数据

    charles中有三个是我经常用到来mock数据的. 一. 打断点--Breakpoints 1. 先切换查看‘Structure’模式 2. 找到目标链接,对其父级进行打断点,如图 3. 取消掉再次 ...

  2. 利用Fiddler或Charles进行mock数据

    使用场景:服务器数据不符合测试条件时,我们可以通过在本地创建虚拟数据来打到测试用例所描述的条件. fiddler使用方法 1.首先在本地创建txt数据:将抓到的response中的json数据拷贝到记 ...

  3. 利用Fiddler或Charles进行mock数据创造测试环境

    使用场景:服务器数据不符合测试条件时,我们可以通过在本地创建虚拟数据来打到测试用例所描述的条件. fiddler使用方法 1.首先在本地创建txt数据:将抓到的response中的json数据拷贝到记 ...

  4. 用Fiddler或Charles进行mock数据搭建测试环境

    转载:http://blog.csdn.net/qqYJ5/article/details/62216582 应用场景:服务器数据不符合测试条件或者服务器未开发完成时,我们可以通过在本地创建数据来达到 ...

  5. charles安装破解步骤

    访问该地址https://www.zzzmode.com/mytools/charles/ 安装——生成破解工具charles.jar——替换

  6. react中使用charles实现本地数据mock

    首先下载charles软件地址,更详细的使用方法都包含在操作文档里,包含汉化版补丁(下载后查看) 链接:https://pan.baidu.com/s/1Q5rMbcX0Wus7AwdGUWa-Wg ...

  7. Charles抓取https请求

    最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...

  8. Charles的HTTPS抓包方法及原理分析

    原文地址:http://www.jianshu.com/p/870451cb4eb0 背景 作为移动平台的RD,项目开发过程中一项比较重要的甩锅技能——抓包应该大家都比较熟悉了,毕竟有些bug可能是由 ...

  9. 怎样使用charles抓包

    本人因为是做前端的工作,需要后台写的一些数据,所以我需要一个神器能够抓到pc端或是移动端的后台数据,近期我发现一个神器“Charles”抓包神器. 需要操作的步骤如下: 1.先在网上下载Charles ...

随机推荐

  1. 详解 Apache SkyWalking OAP 的分布式计算

    SkyWalking的OAP(Observability Analysis Platform,观测分析平台)是一个用于链路数据的分布式计算系统. 因为它巧妙的设计,使得在链路数据计算和聚合过程中,不需 ...

  2. python 百宝箱

    百宝箱 1. 正则表达式 删除缓存文件 os.system("/sbin/fuser -k .nfs*") os.system("rm -rf .nfs*") ...

  3. c++ 程序编译后运行时的内存分配

    程序编译后运行时的内存分配 太好的文章了,看到不得不转,转自:http://blog.sina.com.cn/s/blog_5420e0000101a0w1.html 一.编译时与运行时的内存情况 1 ...

  4. ThinkPHP5中使用第三方类库

    在TP5中有两种方式使用第三方类库,如果类库支持composer方式安装那就很方便了,使用composer安装的类库存储在Vendor目录下,可以直接使用,以phpmailer为例,使用如下命令安装: ...

  5. ZCC2410同步升压变换芯片

    ZCC2410???? 22V/25A同步升压变换器  ZCC2410是一种高效率.高功率密度.宽输入范围.电流模式升压变换器.该转换器集成了一个10mΩ.24V电源开关和一个同步门高转换器效率的驱动 ...

  6. Java NIO Selector 的使用

    之前的文章已经把 Java 中 NIO 的 Buffer.Channel 讲解完了,不太了解的可以先回过头去看看.这篇文章我们就来聊聊 Selector -- 选择器. 首先 Selector 是用来 ...

  7. 盘点Go中的开发神器

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 在Java中,我们用Junit做单元测试,用JMH做性能基准测试(benchmark),用as ...

  8. 漏洞CVE 2017-8464

    概述 微软的Patch Tuesday更新发布了多达95个针对Windows.Office.Skype.IE和Edge浏览器的补丁.其中27个涉及远程代码执行,18个补丁被微软设定为严重(Critic ...

  9. [题解]UVA10054 The Necklace

    链接:http://vjudge.net/problem/viewProblem.action?id=18806 描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把 ...

  10. IDEA 配置安卓(Android)开发环境

    今天用idea配了一下环境,安装了SDK和Gradle.找了一些学习的资源,明天正式开始学习,配置环境的(3条消息) 用IntelliJ IDEA 配置安卓(Android)开发环境(一条龙服务,新手 ...