# 与磐石协作

# 初衷

磐石是培优的接口自动化测试平台,平台上维护着大量的业务接口和接口用例,但接口的自动化测试无法展现实际app的操作场景,也就是UI层面是接口无法碰触的。

轻舟作为通用性UI自动化测试工具,可以将磐石接口用例整合起来,在轻舟的UI自动化用例中,可以将用例中的步骤与磐石接口用例做绑定,能否绑定取决于步骤是否能触发相应的磐石接口。

做好绑定后,我们可以在执行轻舟UI自动化用例过程中,通过代理拦截绑定的http/https接口请求,篡改响应结果返回给原App,可以主动去模拟(也叫Mock)异常结果,查验App前端是否做了正确处理。

# 代理服务

轻舟内部实现了一个轻量的代理服务,用来替代第三方代理工具,如Fiddlers、Charles等。

# 手机代理服务设置

首先需要启动手机代理服务,设置方法请看:代理服务

注意:手机代理服务启动后,如果轻舟代理服务未启动,此时手机中的任何请求都无法访问。

# 轻舟代理服务启动

  1. 选择一个用例打开,启动轻舟调试 -> 准备调试
  2. 打开开启调试开关,如下图所示

# 接口绑定

在轻舟代理开启之后,我们需要打开拦截请求的开关,打开后,我们调试某个步骤,会自动抓取所有接口请求,如下图所示:

比如,我们与图中的登录接口绑定,点击右侧的绑定,打开绑定磐石接口用例的对话框:

依次选择磐石接口磐石接口步骤以及绑定接口的用例,最后选择一个磐石接口用例调试,调试结果,作为自定义响应结果存储到轻舟自身数据库。

点确定后,会临时保存绑定状态,当保存脚本后,才真正永久绑定。

绑定后,你可以重新修改绑定状态,或者删除绑定状态,或者调试这个接口,调试这个接口的意思是:执行这个步骤,拦截这个请求,将存储到轻舟的响应结果返回给app。

# 执行任务

在用例列表中,选择要执行的用例,在更多操作菜单中,选择执行

会打开创建执行任务的页面,如下图所示:

# 代理设置

代理设置在开启代理后,有个响应数据来源的选择,分别是轻舟和磐石,如果选择磐石,则在拦截到这个步骤后,会向磐石请求绑定的接口用例的响应数据,将它返回给App。

如下图所示:

# 选择用例

用例的数量是根据前者代理设置的情况来定的,分三种:

  1. 不开启代理:用例只有一个,即被选择的用例,此时该用例不会拦截任何请求,也不会启动代理服务
  2. 开启代理,响应数据来源为轻舟:可执行用例数为用例所绑定的磐石接口数
  3. 开启代理,响应数据来源于磐石:可执行用例数为用例所绑定的磐石接口用例数量

以响应数据来源与磐石为例,如下图所示:

一个用例,分化出4个用例,这是因为这个接口绑定了4个磐石接口用例。

# 选择设备

支持选择多个设备,当选择多个设备后,多个设备会并发去执行这些用例,可以减少执行时间。

# 执行报告

任务执行完成后,会在用例报告中展示mock的数据和情况。

  1. 被mock的步骤,会有一个的标记
  2. 在概况以及被mock的步骤会展示mock的信息,如是否mock成功、响应数据、响应来源、磐石接口相关信息等

如下图所示: