前言

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

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

测试设备

真机

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

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

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

解决方案

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

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

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

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

各系统设备覆盖全面

虚拟机设备

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

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

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

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

解决方案

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

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

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

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

数据 Mock

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

Mock 平台选择

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

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

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

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

移动端应用请求处理

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

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

自动化测试脚本

支持配置是否需要 Mock 数据

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

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

总结

虚拟机相关问题解决

数据 Mock 平台搭建

移动应用请求转发

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

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

  1. Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查

    Android SDK 连接安卓手机过程演示 第一章:一加8手机连接过程 ① 启用开发者模式 ③ 开发者选项启用 USB 调试 ③ 手机连接 USB 调试 ④ 手机连接不显示 USB 调试选项问题排查 ...

  2. Appium 移动端自动化 - Android SDK的安装与配置,使用安卓SDK连接手机实例演示

    Android SDK 的安装与配置演示 第一章:Android SDK 的安装 ① 下载 ② 安装过程 ③ 配置 第二章:连接手机 USB 调试 ① 一加8手机连接演示 第一章:Android SD ...

  3. 面经---测试工程师web端自动化---大厂面试题

    前言: 一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改 ...

  4. APPium+Python编写真机移动端自动化脚本

    前置条件 完成软件和环境的安装后就可以开始移动端自动化脚本的编写了. 连接设备 手机打开USB调试模式,连接手机.此时去命令窗口查看自己的设备是否已经连接. 让后打开Appium Server,进行配 ...

  5. 如何使用Postman和Newman在CI环境中自动化REST API端到端测试

    Postman is a great tool to explore REST APIs. You can build requests and try them out to get quick f ...

  6. 移动端自动化工具概述

    AutomateIt.Automate.按键精灵.AutoJS-等Android自动化工具有什么特点? 这几款工具,都是自动化工具,大致可以分为两类,全自动化工具及半自动化脚本工具.各有千秋,建议根据 ...

  7. 【金阳光测试】Android自动化 -- 学习历程:自动化预备知识上下

    章节:自动化基础篇--自动化预备知识上&&下 网易云课堂: 上:http://study.163.com/course/courseLearn.htm?courseId=712011# ...

  8. App 端自动化的最佳方案,完全解放双手!

    点击上方 "AirPython",选择 "加为星标" 第一时间关注 Python 原创干货! 1. 前言 大家好,我是安果! 之前写过一篇文章,文中提出了一种方 ...

  9. Android Studio Gradle实践之多渠道自动化打包+版本号管理

    转: Android Studio Gradle实践之多渠道自动化打包+版本号管理 上次介绍了Android Studio的安装.配置和基本使用.这次讲一下Android Studio用到的打包工具G ...

  10. Web 端自动化神器Automa,批量下载美图,可做封面

    文章目录 Automa介绍 Automa安装 本文的目标 自动搜索 自定义数据下载 批量下载美女封面 实现的效果 品尝下载的美图 总结 参考 低代码 | 美图秀色可餐 | 可做封面 Automa介绍 ...

最新文章

  1. Linux(Nginx)+Java SpringBoot视频微服务搭建
  2. CVPR2019 日程安排
  3. c++内存管理-VC6
  4. Unity协程(Coroutine)原理深入剖析再续
  5. python声明编码为gbk_Python字符串编码坑彻底详细解决
  6. 必须使用初始化列表的情况
  7. centos 安装git_在Centos8上安装Git的方法
  8. 人到中年生活不易,特别是工作压力很大
  9. Python字符串isalnum()
  10. mysql2014版本下载_Microsoft SQL Server 2014 Express
  11. 【汇编】DOS系统功能调用(INT 21H)
  12. 高性能游戏计算机cpu的选择,玩游戏的电脑cpu选哪个
  13. Droopy v0.2 靶机渗透(drupal 7.3版本漏洞)
  14. 清华EMBA课程系列思考之六 -- 比较文明视野下的中华领导智慧、企业管理与经济解析
  15. js实现 打开网页自动弹出添加QQ好友邀请窗口、或直接打开聊天窗口
  16. 苹果app退款_??充值消费退款
  17. centos 挂载 cos云存储服务器,centos文件目录挂载docker实现共享操作步骤
  18. 【微信小程序】video视频(77/100)
  19. Linux学习整理-网络防火墙iptables-实践篇1
  20. 抖音跳转到微信引流的方法,私信页面如何添加微信

热门文章

  1. linux如何秀爱swap大小,老毛桃PE启动U盘集合CDlinux,BT5可保存设置,wifislax,sliatz中文定制版的方法[存档......
  2. html attr src,jQuery中css()和attr()方法的区别
  3. 把文档所有的字体都缩小一号_美观且专业的macOS字体管理工具
  4. JavaWeb:Redis
  5. Node.js:node项目中连接postgresql以及基础使用
  6. android 批量扫描,Android:连续扫描所有AP(接入点)
  7. python_四元数q转旋转矩阵R(已验证)
  8. 论文笔记_S2D.24_2014-ECCV_LSD-SLAM: 基于直接法的大范围单目即时定位和地图构建方法
  9. 【一天一个C++小知识】003.C++中的void指针类型
  10. 加密设备攻防(二)- 智能设备篇