android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇

前言

前面提到,面对 android 系统的碎片化问题,如何在应用快速迭代的过程中,尽可能早地发现应用的版本兼容问题。

当前我们的想法是通过 多机并发运行测试用例,以此检测应用针对不同机型,不同系统的兼容性问题,提升开发,测试人员的工作效率。

测试设备

真机

使用真机进行并发测试存在问题

使用真机来运行测试用例,对资源的要求较高(测试机比较紧缺)

真机存在网络切换,电量, usb 连接等问题

解决方案

针对真机测试的种种问题,我们决定使用虚拟机设备来模拟多机并发自动化测试,好处如下

不抢占真机资源,方便测试的正常运行

不存在网络切换,电量,usb 连接问题

可从 PC 端统一管理,创建开启虚拟机(只要硬件设备足够,可开启多台虚拟设备)

各系统设备覆盖全面

虚拟机设备

使用虚拟设备,同样存在一些问题

被测应用不允许在虚拟设备上运行

虚拟机网络切换问题(需要通过切换网络来测试指定环境的应用)

在运行测试用例的过程中,后台接口的波动会影响用例的正常运行

解决方案

针对上面的问题我们的解决方案如下

应用适配虚拟机设备运行(某些 sdk 的调用增加指令集兼容)

搭建 dns server 来模拟网络环境切换(虚拟机无法读取宿主机本地 host 文件)

实现部分网络请求数据 Mock,降低与后台接口的依赖程度

数据 Mock

本文主要描述的是关于接口数据 Mock 的实践流程,咱们先看看效果(基本流程使用的都是 Mock 接口数据)。

Mock 平台选择

我们选择 EasyMock 作为数据 Mock 平台,有如下原因

支持随机生成接口数据(通过正则表达式,占位符等方式)

支持基于 Swagger 创建 Easy Mock 项目,根据现有 Swagger 文档动态生成 Mock 接口

响应式数据,支持在接口 mock 文本中加入代码逻辑

android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇_第1张图片

移动端应用请求处理

通过开始的演示图片可以发现,我们将数据 Mock 功能嵌入到了开发者工具当中,在测试应用前先在开发者工具当中选择需要被 Mock 的接口 url,那么这些接口在请求的过程中就会被转发到我们搭建的 Mock Server

android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇_第2张图片

大致原理为应用内部在请求处理的过程中,将请求拦截,转发到对应的 Mock 接口

android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇_第3张图片

自动化测试脚本

支持配置是否需要 Mock 数据

在 Mock 模式下运行时首先需要开启数据 Mock 功能(在 UI 层面控制开关)

在某些步骤下需要区分是否为 Mock 模式(Mock 数据不包含业务逻辑)

总结

虚拟机相关问题解决

数据 Mock 平台搭建

移动应用请求转发

UI 自动化脚本适配数据 Mock 运行

你可能感兴趣的:(android,ui自动化,mock)