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. 《PHP程序员面试笔试宝典》——如何准备集体面试?

    本文摘自<PHP程序员面试笔试宝典>. PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 集体面试也被称为群面.无领导小组面试.由于计算机发展至今,软件 ...

  2. Solution -「多校联训」古老的序列问题

    \(\mathcal{Description}\)   Link.   给定序列 \(\{a_n\}\),和 \(q\) 次形如 \([L,R]\) 的询问,每次回答 \[\sum_{[l,r]\su ...

  3. 【论文考古】Training a 3-Node Neural Network is NP-Complete

    今天看到一篇1988年的老文章谈到了训练一个简单网络是NPC问题[1].也就是下面的网络结构,在线性激活函数下,如果要找到参数使得输入数据的标签估计准确,这个问题是一个NPC问题.这个文章的意义在于宣 ...

  4. IPMI日常使用

    重启ipmi: ipmitool mc reset  <warm|cold>  warm表示软重启: cold表示硬重启:   设置IPMI地址: ipmitool lan set 1 i ...

  5. 汇聚优质AR应用开发者,技术助力AR领域繁荣生态

    本文分享于HMS Core开发者论坛<EasyAR--汇聚优质AR应用开发者,技术助力AR领域繁荣生态>采访文字稿 EasyAR空间计算平台为应用开发者提供稳定建图.定位能力和完善工具链, ...

  6. IDEA一键部署SpringBoot项目到服务器

    1. 安装Alibaba Cloud Toolkit插件 2. 配置部署环境 2.1 为本次部署设置一个名字 2.2 选择被部署文件的生成方式 IDEA提供了三种方式:Maven Build,Uplo ...

  7. SpringCloud微服务实战——搭建企业级开发框架(三十八):搭建ELK日志采集与分析系统

      一套好的日志分析系统可以详细记录系统的运行情况,方便我们定位分析系统性能瓶颈.查找定位系统问题.上一篇说明了日志的多种业务场景以及日志记录的实现方式,那么日志记录下来,相关人员就需要对日志数据进行 ...

  8. IDE 、SDK 、API区别、库、框架、组件、CLI

    IDE:集成开发环境:包括代码编辑器.代码检测.代码调试器.译器/解释器.以及其他工具 SDK:SDK是IDE的基础引擎 ,比IDE更基本,因为它通常没有图形工具.工程师为辅助开发某类软件的相关文档. ...

  9. C# 事件Event(个人整理)

    内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上)   https://www.youtube ...

  10. Hadoop - HA学习笔记

    Hadoop HA概述 工作要点 通过双NameNode消除单点故障 元数据管理方式需要改变:内存中各自保存一份元数据:Edits 日志只有 Active 状态的NameNode节点可以做写操作:两个 ...