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. 北京太速-611号-基于VU9P的5Gsps高速ADDA收发PCIe卡

    1    板卡概述 基于XCVU9P的5Gsps AD DA收发PCIe板卡.该板卡要求符合PCIe 3.0标准,包含一片XCVU9P-2FLGA2014I.2组64-bit/8GB DDR4.2路高 ...

  2. Solution -「CF 923E」Perpetual Subtraction

    \(\mathcal{Description}\)   Link.   有一个整数 \(x\in[0,n]\),初始时以 \(p_i\) 的概率取值 \(i\).进行 \(m\) 轮变换,每次均匀随机 ...

  3. Solution -「NOI 2012」「洛谷 P2050」美食节

    \(\mathcal{Description}\)   Link.   美食节提供 \(n\) 种菜品,第 \(i\) 种的需求量是 \(p_i\),菜品由 \(m\) 个厨师负责制作,第 \(j\) ...

  4. Asp.Net Core: Swagger 与 Identity Server 4

    Swagger不用多说,可以自动生成Web Api的接口文档和客户端调用代码,方便开发人员进行测试.通常我们只需要几行代码就可以实现这个功能: ... builder.Services.AddSwag ...

  5. [c/c++]c++控制台操作(基本操作的代码)

    本文转自:http://blog.csdn.net/stude/article/details/7645056 控制台窗口界面编程控制 〇.摘要一.概述二.控制台文本窗口的一般控制步骤三.控制台窗口操 ...

  6. 好久没写作业了,因为组里分配了任务,学习了Resnet和DenseNet,把概要po上来和大家分享。

    Res: 学长说,不要看别人的博客.看多了就看傻了!俗话说,不听老人言,吃亏在眼前. 第一篇论文来咯!Deep Residual Learning for Image Recognition!国人写的 ...

  7. Maven-compiler-plugin 插件编译过程中报缺失get/set方法

    一般都是由于使用了lombok插件导致的 解决方法: 首先将compiler插件版本升级到3.3以上, 查询资料发现说有可能是版本太低导致 在configuration中添加上annotationPr ...

  8. 入手这个商业智能工具,建设自助式BI平台轻松搞定

    ​数据的重要性无需多言,可数据的获取和使用却依然不是一件容易的事.尤其是对企业中不掌握数据的广大业务人员,对数据又爱又恨,对掌握数据对IT部门,更是恨多爱少,为了拿到数据分析数据,不断的申请.催促.沟 ...

  9. textbox 实现跨操作系统换行的两种写法

    每个操作系统对换坏的解释都不一样.所以写代码的时候要注意这个细节: 要基于.net跨环境的基类去写,才能跨平台. Unix系统里,每行结尾只有"<换行>",即" ...

  10. jq给手机号加密

    效果: HTML代码:     <!-- 1手机绑定 -->     <div class="memberuser_box">         <di ...