一、Charles mock数据:

前提:确保手机已和PC上的Charles代理链接成功。

我们在平时的业务开发中,经常有端上已开发完成,但后端接口还没有Ready的情况;或者需要接口频繁变更数据来测试各种case的情况。这样如果过度依赖接口,肯定会极大降低我们的开发效率,所以我们需要mock数据来提高开发效率。

网上有很多开源的mock框架如Apifox、Apipost等,大家有兴趣的可以研究研究。今天要介绍的是使用Charles进行数据mock。

1、保存response数据:

选中接口→右键→选中Save Response→保存。

这样就把该response数据保存到了本地文件。

2、开启map映射:

选择Tools → Map Local → 勾选Enable Map Local

选中Add后出现如下图,根据提示填写接口信息即可:

这样即完成了response mock数据映射。

3、修改mock数据:

比如:我将步骤1中response数据中的title字段由原来"注册领取80RMB"改成"登录领取80RMB",只修改本地存储的response mock数据并保存即可:

可以看到返回的数据已经完成了变更。

4、取消mock数据:

如果此时接口已经ok,想取消mock数据,通过如下步骤即可:

选择Tools → Map Local → 【取消勾选】Enable Map Local

二、Charles 弱网测试:

Charles 通过修改Throttle Setting可以模拟各种网络如:2G/3G/4G等也可以手动设置网速限制等,是我们开发/测试模拟弱网环境,复现弱网问题的较好的方案:

使用步骤如下:

  1. Proxy → Throttle Setting
  2. 勾选Enable Setting
  3. Only for elected hosts 勾选中可以添加需要限速的接口,如果不勾选表示所有接口都执行以下限速设置
  4. Throttle preset 可以选择已经设置好了的网络【一般弱网测试选择该项后,下面的内容则不需要再修改】
  5. 打开App/网页等请求就会变慢,可以通过修改Throttle preset,来调节网络的快慢。

Throttle的打开和关闭,也可以通过如下几种方式快速操作:

  • 方式一:Proxy →Start/Stop Throttle
  • 方式二:Charles小水壶邮件→Throttling

  • 方式三:点击Charles面板上部的小乌龟--变绿则表示打开;变灰则表示关闭。

三、Charles 复制运用curl 指令:

日常业务开发中,我们可以使用curl命令直接在终端发送GET/POST请求,以快速获取服务端返回的数据,来查看数据。那么如何快速的获取准确完整的curl请求呢,可以在Charles快速获取:

1、选中对应接口(右键) → 2、Copy cURL Request

GET请求一般会获得(类似)如下指令:

curl -H  "Content-Type: application/json;charset=UTF-8" -H "appVersion: 923" -H "User-Agent: okhttp/3.8.0" -H "Host: www.testview.com" --compressed "https://www.testview.com/config/dialog-comm-test?deviceType=2&version=0&deviceId=8999899"

如果是POST,则获得(类似)如下指令:

curl -H  "Content-Type: application/json;charset=UTF-8" -H "appVersion: 923" -H "User-Agent: okhttp/3.8.0" -H "Host: www.testview.com" --data-binary "{\"type\":4,\"uid\":\"456\"}" --compressed "https://www.testview.com/config/dialog-comm-test?deviceType=2&version=0&deviceId=8999899"

copy到终端 →回车 可快速获取服务端数据,也可以通过修改请求参数进行数据联调,极大的提高开发效率。

参考:

Linux curl命令最全详解

四、Charles 修改请求参数:

如果我们在平时的开发测试中,希望通过修改请求参数,查看服务端返回的不同数据,那么就可以在Charles中通过以下两种方式来完成:

方式一、

1、选中对应接口 → 2、点击如图的笔 → 3、在Compose区域修改请求参数  → 4、执行

方式二、

1、选中对应接口 → 2、选中Breakpoints【断点】

然后执行接口请求【真实数据请求 或 点击下图箭头】:

就会出现断点调试Breakpoints页面,再进行如下操作即可:

1、选中EditRequest → 2、选中Headers → 3、在3区域修改请求参数  → 4、执行

这种方式是通过断点调试的方式去修改,也可以在下图步骤中,进行具体的断点设置:

五、Charles 模拟阻塞(Block)接口:

1、选中对应接口(右键) → 2、Block List → 3、重新请求接口:

block接口后,重新请求接口数据,响应结果如下:

会发现并没有数据返回,表明block成功。

此种方法可用于一些容错测试,进而对代码进行相关的优化,避免接口真的出现异常时,能够显示出我们希望的兜底或容错的页面。

持续更新中...

Charles 常用功能记录总结相关推荐

  1. charles常用功能使用说明

    Charles 是常用的网络封包截取工具,在做移动开发时,为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求 ...

  2. mac笔记本开发环境——常用功能记录

    1.F1.F2...F12功能键设置: 我们都知道F1这些键都具有通用的功能(例如:F5是刷新),在mac下这些键被赋予来两种功能,除了通用的功能外还具有特殊的功能,例如:F5有刷新.增加对比度两种, ...

  3. dotdotdot.js文字超出隐藏常用功能记录

    1.引用插件: <script src="jquery.js"></script><script src="jquery.dotdotdot ...

  4. Charles使用及常用功能介绍

    Charles是一款常用的网络抓包工具,启动Charles后,会自动开启的浏览器代理进行网络请求截取,Charles和Fiddler基本功能差不多,只是Fiddler是免费的,但是没有MAC版,Cha ...

  5. Charles工具常用功能

    背景:Charles工具常用功能使用 前提条件:使用抓包功能确保手机和电脑处于同一个局域网 http抓包: 忽略(和抓取https步骤重复,忽略..) https协议抓包(操作以Charles 4.5 ...

  6. 达梦数据库操作记录_达梦数据库常用功能及命令记录 -- 持续更新

    达梦数据库常用功能及命令记录 -- 持续更新 达梦数据库常用功能及命令记录 达梦数据库语句的使用总体来说跟 oracle 很接近的, 这篇文章主要是把常用的情况和语句做了记录, 并且后续还会不断的持续 ...

  7. Charles抓包神器常用功能,常见问题解决

    提供一个密钥:[转自]https://blog.csdn.net/jiang314/article/details/80846569 注册名称:https://zhile.io 许可证密钥:48891 ...

  8. 抓包神器之Charles,常用功能都在这里了(转自https://blog.csdn.net/mxw2552261/article/details/78645118)...

    我们在开发网站项目的时候,我们可以通过浏览器的debug模式来看request以及response的数据,那么如果我们开发移动端项目没有网页呢?如何抓取数据呢? 前几天有个做服务端的师弟跟我说他不用抓 ...

  9. 用python写自动化测试脚本常用功能:结果记录,运行日志,测试配置,带颜色打印在控制台

    用python写自动化测试脚本常用功能:结果记录,运行日志,测试配置,带颜色打印在控制台 利用csv库来记录测试结果 利用logging库来记录脚本运行信息 利用ConfigParser库来读取测试配 ...

最新文章

  1. 你真的了解软件测试行业吗?
  2. 如何在github发布个人网站或开源项目-手把手教您制作并发布个人网站或主页(二)
  3. linux字符串转大写_在 Linux 命令行中转换大小写
  4. [Leetcode总结] 102.二叉树的层序遍历
  5. oracle数据库imp导入,imp 导入 没有数据库
  6. OpenCV_03 图像的算数操作:图像的加法+图像的混合
  7. C语言,向函数传递一维数组,计算最高分,平均分,人数(要求输入负值时输入结束,且不能超过40人)
  8. docker mysql 阿里云_阿里云docker部署mysql
  9. SpringBoot整合Redis 之 StringRedisTemplate、RedisTemplate 基础
  10. 汇编学习--7.10--循环
  11. OP和DBA相关的一些有用资源
  12. 人机工程学的50条原则
  13. PPT,我的视频制作利器
  14. Javascript常用函数、方法速查手册
  15. 常见的日期计算问题(模板)
  16. 怎么看公司邮箱服务器地址,怎么看企业邮箱是哪里的
  17. 熟练的运用计算机英语怎么说,熟练的英文翻译,熟练英语怎么说
  18. php采集今日头条出现问题,使用php蓝天采集抓取今日头条ajax的文章内容
  19. 计算机英语断句,英语断句方法
  20. pip 如何指定国内源安装

热门文章

  1. 顶尖商业模式:只用3万就能收购30万的实体店,绝对让你震撼
  2. Chrome浏览器常用的很方便的快捷键
  3. python argparse_python argparse使用
  4. Android Studio中移动.gradle文件夹的方法
  5. IP地址虚拟网络与虚拟机网络配置
  6. ARM---异常和特权
  7. 对金融领域而言,联邦学习的实际价值是如何体现的?
  8. node中使用superagent、cheerio进行爬虫
  9. w10备份系统无法启动服务器,Win10 备份应用程序无法启动 0x80070424 指定服务未安装 的解决方法!...
  10. ajax无刷新聊天室,实现一个无刷新的基于ajax的简易聊天室