实际测试工作中少不了重定向,面对特定场景,特定数据,需要自己手动修改request或response的数据,而在这个时候,就会用到Mock来模拟被调用的api,可以使我们构造一个稳定运行的测试环境。

charles提供了四种Mock方式:

  • Map Remote:将请求的域名重定向的到一个网络地址
  • Map Local: 将请求的返回重定向到本地
  • Rewrite:请求重写
  • Breakpoints:将请求打断点

1、Map Remote 

选择【Tools】-【Map Remote】

chrales如何mock数据 charles怎么mock测试_右键

 

chrales如何mock数据 charles怎么mock测试_右键_02

 这种方法需要自己填写被重定向的请求,所以我一般用下面另一种,在一个请求上直接右键选择【Map Remote】,只需要填写重定向的域名即可

chrales如何mock数据 charles怎么mock测试_数据_03

 

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_04

图中红色框的部分是自己需要填的重定向的网络地址 ,然后点击【OK】,再次重新请求即可看到自己原来请求返回的是自己重定向的内容。

 2、Map Local

第一步、将想要自定义返回值的请求,右键单击,【Save Response】到本地计算机,可以存储为.txt文件,方便后续修改。

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_05

修改保存的txt文件,如果测试对应的需求,可找对应开发找具体的response 

第二步选择【Tools】-【Map Local】 

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_06

在【local path】里选择刚刚修改过的TXT文件,点击【OK】

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_07

 也可以右键选择【Map Local】

chrales如何mock数据 charles怎么mock测试_重定向_08

 这样再次请求对应接口的时候,就可以返回自己设置的返回内容拉

3、Rewrite重写

适合对网络请求进行一些正则替换

【Tools】-【Rewrite】 

chrales如何mock数据 charles怎么mock测试_数据_09

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_10

填写要重写的Host,点击【OK】 

点击最下方的【Add】,可对重写进行设置,【Type】,选择重写的类型,可选择url/body等。

Request:重写到请求

Response:重写到响应

chrales如何mock数据 charles怎么mock测试_数据_11

设置完成后重新请求即可。 

4、Breakpoints断点

适合临时对请求响应的修改

 选择【Proxy】--【Breakpoints Settings】打开断点设置

chrales如何mock数据 charles怎么mock测试_chrales如何mock数据_12

chrales如何mock数据 charles怎么mock测试_数据_13

上图是开启断点的两种方式

开启断点后,对请求【右键单击】选择【Breakpoints】来打断点

chrales如何mock数据 charles怎么mock测试_重定向_14

chrales如何mock数据 charles怎么mock测试_右键_15

 设置完成后,再次请求,会发现进入该请求断点会话界面,【Edit Request】这里可以修改数据,然后点击【Execute】执行

chrales如何mock数据 charles怎么mock测试_右键_16