Android 谈谈自动化测试

前言

最近,手头上的项目基本开发完成,优化也做的差不多了,本以为可以安心准备上线。然而老板却反映说测试人员发现 App 总会出现一些莫名的 bug.

bug 来了,那就解决呗。但是这 bug 又贼迷,偶尔出来一个调戏一下你,就问你服不服。所以为了让 App 中的 bug 尽可能的减少,只能暂时苦逼地转行测试。这几天花了不少时间和精力,好好研究了下 Android 平台的自动化测试,在此总结一下。

概述

Android 平台的自动化测试可以从两个方向入手

  • Android 端的自动化测试框架

  • 各大云测试平台

  • 腾讯优测云测试平台

  • 华为开发者联盟

  • 贯众云测试

  • Testin 云测

测试的内容包括:

  • 兼容性测试:安装、启动、卸载

  • 功能测试:手势操作、功能验证

  • 稳定性测试:app 是否容易出现闪退等现象

  • 场景测试:模拟真实网络场景,2G、3G、4G、wifi 网络的切换

上面介绍了 Android 自动化测试的两个方向以及测试的具体内容,接下来谈下他们之间的区别和优缺点。

  • Android 自动化测试框架

利用 Android 端的自动化测试框架,可以通过代码完成相应的测试用例,尽量覆盖所有使用场景,让人工的重复性操作,转换成脚本的自动化执行,解放程序猿宝贵的右手(嗯,也可能是左手)。emmmm,上面的优点是不是看起来很不错。别急,还没说缺点呢,缺点就是对测试人员来说编写代码能力要求较高,而且由于要覆盖大多数的使用场景,所以很考验测试人员对于 App 的整体理解和把握,而且一般多用于 UI 测试,而无法进行兼容性的测试,毕竟手机有限。

  • 各大云测试平台

利用云测试平台的好处还是很多的,毕竟人家是专业搞这个的,所以很多你没考虑到的东西,别人都已经帮你集成到平台里面了。而且相对于 Android 自动化测试框架,各大云测试平台还能给你提供各种各样的机型,例如华为开发者联盟就提供了大部分华为和荣耀系列的手机,手机版本从 4.4 到 7.0 都有,看着这些优点是不是觉得美滋滋。缺点嘛,其实不多,就一个「收费」。这当然也能理解,毕竟人家也是要吃饭的,如果免费给你用,那还要不要人活了。

自动化测试框架

2.1 Espresso

Espresso 是 Google 针对 Android 平台开源的一款 Android 自动化测试框架,主要是用于 Android App UI 自动化测试。

在这里简单说下 UI 自动化测试:我们作为 App 的使用者,要让机器模拟我们的测试过程,那么就需要针对我们肉眼看到的那些界面,那些按钮,也就是 UI 组件进行相应的操作以及对结果正确性的验证。

比如说,作为用户我们并不关心某个网络请求返回值的具体数据是否正确,我们关心的是在界面上看到我们想要看到的结果。因此,做 UI 自动化测试用例的时候,一个通用的思路就是:找到某个元素,做一些操作,检查结果,把自己当成用户,只关注我能看到的东西。

Espresso 毕竟是 Google 自己出的,优点还是很多的

  • 用 Java 来写代码,对 Android 开发者很友好

  • API 相当的小,当然也会对拓展开放的

  • Espresso 的测试跑起来那是相当的快(没有等待、睡眠)

  • Gradle 和 Android Studio 的支持

更多 Espresso 的例子请戳:https://github.com/vgrec/EspressoExamples

2.2 UI Automator

UI Automator 所运行的 JUnit 测试用例是有特殊权限的,这意味着测试用例可以 跨越不同的进程,它提供了五种不同的类给开发人员使用:

com.android.uiautomator.core.UiCollection;
com.android.uiautomator.core.UiDevice;
com.android.uiautomator.core.UiObject;
com.android.uiautomator.core.UiScrollable;
com.android.uiautomator.core.UiSelector

不过,比较遗憾的是,UI Automator 只能工作在 API 16 或更高级别的 Android 设备上,而且也没有办法直接访问 Android 对象。

2.3 Appium

Appium 是一款「移动」的自动化测试框架,牛逼的地方在于支持 iOS 和 Android 原生和混生的移动 Web 应用程序。它内部使用的 JSONWireProtocol 通过 Selenium 的 WebDriver,来与 iOS 和 Android 应用进行交互。通过 UI Automator 和 Seledroid 支持 Android,通过 UI Automation 支持 iOS。上面这些话,看看就好了,反正我也看不懂。

Appium 最大的优点在于你几乎可以用任意一种编程语言(例如,Java、Objective-C、JavaScript、PHP、Ruby)来编写 Appium 脚本而不必选择工具,兼容最重要的pigtail(Android 和 iOS)而不必安装和配置设备适应测试等等。

云测试平台

3.1 腾讯优测云测试平台

拥有超过1000款测试终端,机型数量庞大,机子比较全。但仅支持 Android 系统,暂时不支持 iOS 系统。

不过,该平台的收费还是蛮高的,一分钟一块钱,而且最低充值 100 元。

3.2 华为开发者联盟

优点:免费
缺点:只能测试华为的机子

测试主要包括:

  • 兼容性测试:华为这边提供所有华为手机的测试

  • 稳定性测试

    • 安装、启动、注册登录、遍历、卸载

    • Crash、ANR、UI、功能异常

    • 提供问题上下截图及异常截图

3.3 Testin

Testin 是国内较早涉足云测试领域的公司之一。Testin 在云端部署了 300 多款 1000 多部测试终端,终端种类及数量都比较全面。

该平台也是收费的,具体的收费标准,并没有在官网上显示出来,只说了有需要服务的请联系客服。

与之相关

手把手教你从零开始做一个好看的 APP

从未如此惊艳!你好,SuperTextView

(0)

相关推荐

  • TestOps自动化测试之Appium(Java)专项入门

    课程目标: 面对DevOps的热潮来临,TestOps作为测试运维也逐步萌芽.作为测试运维中非常重要的UI自动化测试,如何有效进行,配合持续集成&持续发布,构建自动化体系是很多TestOps急 ...

  • 程序员眼中的测试

    码农的产品和服务大都是以软件形式存在的,我们存在的价值之一就是快速提供高质量的软件产品或服务.如何保障软件的高质量呢?这与软件测试分不开的,测试是保证软件质量的关键环节之一. 老码农早年曾经做过两年的 ...

  • <自动化测试方案_8>第八章、手机端UI自动化测试

    第八章.手机端UI自动化测试 (一)APP测试分类 1,原生APP:Native页面是使用原生系统内核的,相当于直接在系统上操作 2,H5APP:先调用系统的浏览器内核,相当于是在网页中进行操作,较原 ...

  • Appium+python自动化29-toast消息

    前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported Platforms 1.查看 ...

  • 10年磨一剑,云测试头部玩家如何为数万家客户落地AI自动化测试

    服务百万级企业和开发者,致力于利用 AI 自动化技术助力企业数字化转型 2021 年 7 月 7 日,第四届"世界人工智能大会(WAIC)"在上海世博展览馆开幕.大会围绕" ...

  • 【自动化测试】自动化测试框架与工具

    文章目录 1)什么是自动化测试框架? 1.1 什么是框架? 1.2 什么是自动化测试框架? 1.2.1 优点: 1.2.2 框架的基本组件 1.需要配置文件管理: 2.业务逻辑代码和测试脚本分离 3. ...

  • Android App 自动化测试: OPEN-STF环境搭建

    前言 背景 1. 测试是检验程序质量的保证,而自动化测试是提高测试效率的最好方式.就目前来说,通过 UiAutomator,Robotium.Monkey,Appium 等工具.配合测试开发所写的测试 ...

  • Airtest 自动化测试2 - AirtestIDE 安装与启动 Android模拟器

    前言 windows 环境准备: 雷电模拟器,下载最新版:v4.0 AirtestIDE: v1.2.9 下载安装 官网下载地址http://airtest.netease.com/changelog ...

  • 周末复盘:谈谈牛股的启动时机

    周四晚上直播时第一次吹票,观点鲜明的阐述了华自科技必涨的原因,也确实有几个朋友隔夜挂单买入成交,而我自己周五9:15:24的委托单直到收盘前面还有5000多手未成交.有需要的朋友可以去微博看一下当天的 ...

  • 谈谈最近对做项目的思考,扶摇生财思维

    一 做项目在前期,一定要按照别人探好的路规规正正的走. 多做多问,任何细节都要得到答案,直到打通流程,获取收益回馈. 收益稳步上升,然后再进行放大操作. 放大无非就是两点,批量操作和培训抽成. 前段时 ...

  • 谈谈一般人想不到的口腔学冷门小知识

    ​​第一恒磨牙很重要,而且是非口腔医学专业人士想象不到的重要,没错是想象不到的. 先说第一恒磨牙是什么? 第一恒磨牙,俗称六龄齿,也就是六岁左右所萌出的牙齿,是口腔内萌出的第一颗恒牙. 在这里需说明一 ...

  • 迅为IMX6开发板Android应用-AndroidStudio-calculator测试

    本章配套资料在网盘资料"迅为iTOP-i.MX6 开发板资料汇总(不含光盘资料)\06_iTOP-iMX6 开发板 Android应 用 开 发 环 境 软 件 以 及 源 码 \08_An ...

  • 谈谈腰椎射频治疗腰椎间盘突出

    中国疼痛找桑迪 文章仅供参考,不作为临床依据,如有不当之处,请联系我们删除!

  • 谈谈在耶路撒冷发现的灯

    灯是古代人民日常生活中不可缺少的一种物品,一般被称作为"油灯".在古代地中海时期,油灯可以分为七个类别,其中一个是可以转动的灯,特点就是简单,没有任何装饰,没有手柄,这种造型早在3 ...

  • 谈谈应用文的结构项问题

    谈谈应用文的结构项问题 邓旺林 任何一种应用文体都有其一定的结构项.应用文的结构项,指的是构成一种应用文体的各个部分和项目,是一种应用文体形式方面的基本构件.例如现代普通书信一般由称呼.正文.祝颂致敬 ...