Android | 自动化测试辅助服务

简介: 今天聊聊Android的自动化测试,但这里先不讨论具体的技术方案,这些放到后面章节讨论,本文主要来跟大家分享一下自动化测试过程中一定会遇到的一些问题以及针对这些问题提供的一系列辅助服务。

UI自动化测试


不管是通过什么方案实现的UI自动化,录制回放也好、写自动化脚本也好,都会遇到同样的问题:在不同手机上安装被测应用时弹出的系统提示框,这部分肯定是没办法通过脚本实现的,而且存在兼容性问题:不同手机的安装流程一般是不一样的,那么怎么才能让安装这部分流程自动化呢?


想想去年很火的抢红包插件,其实解决的问题是类似的就是检测屏幕的UI变化然后让系统自动去点击相应的控件元素,我们的主角登场了:AccessibilityService 具体实现参考:https://github.com/logan62334/Jarvis


安装好辅助应用后,点击图标会打开系统的辅助功能页面,这里会看到系统服务中已经注册好了一个叫智能安装服务的条目,打开该服务即可。


大家可以根据不同手机的安装提示进行适配,目前项目只适配了华为和小米的机型。


Monkey


大家做Android稳定性测试的时候一定用过Monkey吧,但是实际跑的过程中会出现各种各样的问题,比如:关掉WIFI、关掉数据流量、锁掉屏幕等,接下来针对这些问题分析下如何解决:


针对关掉WIFI这种情况比较简单的做法就是通过起一个服务监听网络状态,一旦出现WIFI关闭的情况就自动打开当然这里涉及到权限的一些问题,只适用于root过的手机或者版本比较低的系统没有很严格的权限管理;另外一种情况就是利用部分手机可以调整快捷入口的方式将WIFI这个入口隐藏掉,还有就是可以通过遮挡住通知栏这样下拉操作就不会打开WIFI的快捷入口,数据流量也是一样的道理。


对于锁屏屏幕自动熄灭这样的情况,一种方式就是通过手机系统设置让屏幕常亮,另外一种方式就是通过PowerManager、KeyguardManager等来唤醒解锁Android设备或模拟器,具体实现方式参考:https://github.com/logan62334/Jarvis


Settings


另外可能在自动化测试的过程中我们希望控制系统的wifi、数据流量、动画等的状态,那么可以通过广播的形式来实现,具体方式参考:

https://github.com/logan62334/Jarvis

相关文章
|
14天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
49 3
|
1月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
24 1
|
2月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
178 4
Android性能测试——发现和定位内存泄露和卡顿
|
2月前
|
JavaScript 前端开发 Android开发
让Vite+Vue3项目在Android端离线打开(不需要起服务)
让Vite+Vue3项目在Android端离线打开(不需要起服务)
|
2月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
55 6
|
2月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
55 5
|
2月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
53 5
|
2月前
|
测试技术 Shell 定位技术
Android 性能测试初探 (五)
聊聊大家不常关注的测试项- 功耗
53 3
|
2月前
|
算法 测试技术 Android开发
Android 性能测试初探 (二)
上回大体介绍了下在 android 端的性能测试项,现在我们就细节测试项做一些阐述(包括如何自己 DIY 测试)
48 4
|
2月前
|
测试技术 API Android开发
Android 性能测试初探 (一)
Android 性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试;一类为应用的性能测试。
53 3
下一篇
无影云桌面