前言
最近学习android开发,想学习一些android测试相关的技能,所以在网上收集了一些android测试的资料。
今天收集了android自动化测试的一些资料。本文的出处如下:
作者:developerHaoz
链接:https://www.jianshu.com/p/05e6f6292692
來源:简书
一、概述
Android平台的自动化测试可以从两方面入手
- Android端的自动化测试框架
- 各大云测试平台
- 腾讯优测云测试平台
- 华为开发者联盟
- 贯众云测试
- Testin云测
测试的内容包括:
- 兼容性测试:安装、启动、卸载
- 功能测试:手势操作、功能验证
- 稳定性测试:app是否容易出现闪退等现象,压力测试
- 场景测试:模拟真实网路场景,2、3、4G、wifi网路的切换
上面介绍了android自动化测试的两个方向以及测试的具体内容,接下来谈谈他们之间的区别和优缺点。
- android自动化测试框架
利用android端的自动化框架,可以通过代码完成相应的测试用例,尽量覆盖所有使用场景,让人工的重复性操作转化成脚本的自动化执行。但是对代码的要求能力较高,而且由于要覆盖太多的使用场景,所以很考验测试人员对APP的整体理解和把握,而且一般多用于UI测试,无法进行兼容性测试,毕竟收集有限。
-
利用云测试平台的好处还是很多的,毕竟人家是专业搞这个的,所以很多你没考虑到的东西,别人都已经帮你集成到平台里面了。而且相对于 Android 自动化测试框架,各大云测试平台还能给你提供各种各样的机型,例如华为开发者联盟就提供了大部分华为和荣耀系列的手机,手机版本从 4.4 到 7.0 都有,看着这些优点是不是觉得美滋滋。缺点嘛,其实不多,就一个「收费」。这当然也能理解,毕竟人家也是要吃饭的,如果免费给你用,那还要不要人活了。
二、自动化测试框架
2.1 Espresso
它是Google针对Android平台开源的一款Android自动化测试框架,主要是用于Android APP UI自动化测试。
这里简单说下UI自动化测试:我们作为APP的使用者,要让机器模拟我们的测试过程,那么久需要针对我们的肉眼看到的那些界面,那些按钮,也就是UI组件进行相应的操作和结果正确性的验证。
比如说,作为用户我们并不关心某个网络请求返回值的具体数据是否正确,我们关心的是在界面看到我们想要看到的结果。因此,做UI自动化测试用户的时候,一个通用的设计思路就是:找到某个元素,做一些操作,检查结果,把自己当做用户,只关注我们能看到的东西。
Espresso毕竟是Google自己出的,优点还是很多的
-
用Java来写代码,对android开发者也很友好
-
API很小,当然也会对扩展开放的
-
Espresso的测试跑起来那是相当的快(没有等待,没有睡眠)
-
Gradle和Android Atudio的支持
-
更多 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只能工作在API16或者更高级别的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)来编写Applium脚本而不必选择工具,兼容最重要的pigtail(Android 和IOS)而不必安装和配置设备适应测试等等。
三、云测试平台
3.1 腾讯优测云测试平台
拥有超过1000款测试终端,机型数量庞大,机子比较全。但是仅仅支持android系统,暂时不支持IOS系统。
不过收费蛮高。
3.2 华为开发者联盟(类推,xiaomi、OPPO有吗?)
优点:免费
缺点:只能测试华为的机子
测试主要包括:
兼容性测试:
- 华为这边提供所有华为手机的测试
稳定性测试:
- 安装、启动、注册登录、遍历、卸载
- crash、ANR、UI、功能异常
- 提供问题上下截图和异常截图
3.3 Testin
Testin是国内较早涉及云测试领域的公司之一。Testin在云端部署了300多款1000多部测试终端,终端种类以及数量都比较全面,
该平台也是收费的。
作者:developerHaoz
链接:https://www.jianshu.com/p/05e6f6292692
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。