平时在使用Charles 中map local功能来本地模拟接口返回的时候,首先需要获取接口的原始数据,然后保存到本地,根据需要mock的字段进行修改,然后再设置map local,接口下发数据大多是json格式,若本地采用json editor编辑器的话,这个过程需要以下步骤:
1、抓取接口原始数据
2、复制原始数据到剪切板
3、新建文本文件(txt),粘贴数据并保存
4、文件后缀名改为.json
如此才能用json editor打开文件,可以利用mac快捷键+Apple Script来将这一过程自动化,实现只要在Charles中选中数据,通过快捷键一键操作就可以直接保存为json格式并打开。具体方式如下。
打开系统的自动操作(automator)
右边的代码就是Apple Script代码,主要做了三件事:
1、command + c 复制选中的文本(key code 8是c键的键码)
2、打开iTerm终端命令行并键入sh copy2JE.sh(运行copy2JE这个shell 脚本,key code 8是回车键的键码)
3、退出iTerm终端
输入代码之后ctrl+s保存一下
其中copy2JE.sh脚本的内容如下,在用户目录新建该文件并粘贴一下代码即可:
rm -f ~/Desktop/charles.json
pbpaste > ~/Desktop/charles.json
open ~/Desktop/charles.json
这个脚本主要就是先删除charles.json文件,然后把剪切板里的内容写入到charles.json文件中然后再打开。
现在复制内容、保存到json文件、打开json文件三个操作都可以自动化了,剩下的就是定义快捷键来触发我们的快速操作(也就是上面的Apple Script)。
在系统偏好设置里面设置快捷键,侧边栏选择服务,在通用里找到刚才新建的快速操作名字
双击右边自定义快捷键,最后在隐私设置里面勾选charles,大功告成
相关代码
on run {input, parameters}
(* Your script goes here *)
tell application "System Events"
key code 8 using {command down}
delay 0.2
end tell
tell application "iTerm"
activate
end tell
tell application "System Events"
keystroke "sh copy2JE.sh"
delay 0.2
key code 36
end tell
delay 1
tell application "iTerm"
quit
end tell
end run