3.1.1 调试不同url的网络请求
为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要在以往的网络请求上点击右键,选择 “Edit”,即可创建一个可编辑的网络请求。如下所示:
我们可以修改该请求的任何信息,包括 URL 地址、端口、参数等,之后点击 “Execute” 即可发送该修改后的网络请求(如下图所示)。
edit网络请求
Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便
3.1.2 覆盖服务器接口返回的不同异常情况
举个例子:有一个订单状态接口 order_state,有已过期、已失效、已支付、待支付、已取消、待审核等10个状态返回,如果是在没有mock的情况下,我们需要实际造10个状态的订单数据,甚至去修改数据库订单字段状态来看前端订单显示情况。利用Mock方法,我们可以借助一些工具例如charles打断点,截取接口返回的response的json数据,进行一些模拟:比如
订单接口发生服务器错误 or 系统繁忙时app是否崩溃;
订单接口的各种状态在前端显示的覆盖测试;
订单状态空的时候前端如何显示的覆盖测试;
订单数据异常的时候前端如何显示的覆盖测试,
订单接口请求超时的情况等等等总之想要什么返回就模拟什么返回。
3.2 简单的小例子:xx app 登录login Mock测试
3.2.1 安装测试包
打开手机,连接电脑安装开户组件app 成功,点击app启动成功,登录成功,moudle名称输入模块名称(xxBanklogin进入xx app 登录流程,利用charles抓包,如下截图
登录
3.2.2 登录测试Mock最基本实践
breakpoints方法实践过程:
在charless上要mock数据的url上右点击,弹出的列表选中breakpoint,要点击两次 Excute 才能完成一次 HTTP 请求,原因是,Charles 的断点功能分别提供了修改 HTTP Request 和 Response 的机会映射本地文件
先了解登录接口定义:
login接口一般有登录超时、操作超时、登录被挤下线、登录系统繁忙、账户和密码错误、账户锁定、账户解密失败等情况
每个接口对应的response请求json记录(可编辑修改):
一般有两种处理方式可选择:
一是直接在charels设置好断点,请求相应的接口时修改编辑response里面json格式的相关数据后点击excute执行模拟请求提交
二是将所有接口的json数据在一个Sublime text 中以json格式保存,进行数据管理,最后利用 charles Map 规则的导入导出功能,方法是点击菜单 Tools → Map Local,在弹出界面中点击 Export
登录login接口返回json记录如下:
1、登录成功
{
"code": "000000",
"data": {
由于涉及到业务信息,部分data信息隐藏
"status": "0"
},
"msg": "成功"
}
2、操作超时
{
"code": "030801",
"msg": "操作超时"
}
3、登录报系统繁忙
{
"code": "000001",
"msg": "系统繁忙,请稍后再试!"
}
4、登录超时
{
"code": "000002",
"msg": "登录超时!"
}
5、登录掉线
{
"code": "000004",
"msg": "账户在另一台设备已登录,当前登录被挤下线!"
}