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 腾讯优测云测试平台

Android移动端自动化测试Android移动端自动化测试Android移动端自动化测试Android移动端自动化测试Android移动端自动化测试

原文地址:https://www.cnblogs.com/cs1188/p/11514258.html

时间: 2024-10-09 15:34:28

Android移动端自动化测试的相关文章

移动端自动化测试Appium 从入门到项目实战Python版

移动端自动化测试Appium 从入门到项目实战Python版 说到APP自动化测试,Appium可是说是非常流行了, 不仅支持多语言.多平台的优势,同时支持Andriod.iOS.H5的自动化测试:本课程会从初级的Appium框架讲起,涉及业界常见的po模型.关键字模型.服务自动化.持续集成等实战讲解,让你快速上手移动端自动化测试工作 appium做app自动化测试,环境搭建是比较麻烦的.也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用.

移动端自动化测试实战

课程目录:01.课程介绍_SmdLU02.内容综述_xehOr03.自动化测试的价值04.自动化测试常见误区05.自动化测试的技术体系06.UI分层测试体系07.Androidapp的常见概念08.Android调试桥adb命令详解09.自动化测试常用命令10.Appium架构介绍11.AppiumDesktop安装12.AppiumServer安装13.AppiumDesktop用例录制14.用例结构解析15.使用隐式等待让用例更稳定16.控件定位方法17.常用自动化API18.长按-滑动等T

erlang-百度云推送Android服务端功能实现-erlang

百度云推送官方地址http://developer.baidu.com/wiki/index.php?title=docs/cplat/push 简单的介绍下原理: 百度云推送支持IOS和Android的云推送.Android支持的还不错,但是IOS一般很难调通.百度云对于IOS的推送来说,他只是做了一个中间的代理,为用户提供接口,优点是使用百度云推送,Android和IOS可以统一管理:缺点是:调通不容易,用户的IOS证书需要上传验证,会直接暴露给第三方,并且IOS的apns支持用户自己构建p

android金阳光自动化测试——学习历程:电池续航上&&下

章节:自动化基础篇——电池续航自动化测试上&&下 网易云课堂: http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878098&courseId=712011 http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878099&courseId=7120

Android 自己的自动化测试(2)依据ID查找对象(java)

前一篇文章是写 Android 自己的自动化测试(1)如何安装和卸载应用程序(java) ,以下再探索一下假设在普通java应用程序中,依据ID来查找对象 1.类库依赖: The library dependencies are: chimpchat.jar,common.jar,ddmlib.jar,guava-13.0.1.jar,sdklib.jar,hierchyviewer2lib.jar They can all be found in the sdk/tools/lib subdi

android金阳光自动化测试——学习历程:自动化预备知识上&&下

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

如何使用腾讯信鸽向Android移动端推送消息(一)—如何注册Android应用

以前实现服务器端向Android移动端推送消息的功能主要借助开源的AndroidPN,但是它有一个致命的缺陷--无法向IOS终端发送消息,腾讯信鸽的出现打破了这一切,在接下来的几篇博客中将逐一地.详尽地总结一下腾讯信鸽的使用方法: 1.打开信鸽首页:http://xg.qq.com/ 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

移动端自动化测试Appium从入门到项目实战Python版 学习 教程

移动端自动化测试Appium从入门到项目实战Python版 学习 教程 原文地址:https://www.cnblogs.com/itye/p/11679036.html

关于移动端自动化测试-Appium的搭建

web端我们常用的开源自动化用的是selenium,而移动端我们选择的是Appium,当然也可以使用monkey或者阿里的macaca,他们在理论上都使用了webdriver: 关于Appium环境的搭建,我这里就不copy了,虫师的博客中说明的很详细的四篇文章,而且还有个demo例子.大家可以直接跳过去看一下~ 虫师使用的是Python哦~ Appium移动自动化测试(一)--安装Appium Appium移动自动化测试(二)--安装Android开发环境 Appium移动自动化测试(三)--