基于夜神安卓模拟器的安卓自动化测试解决方案

基于夜神安卓模拟器的安卓自动化测试解决方案概述

一、使用夜神安卓模拟器相比Google原生安卓模拟器的优劣势        

一、优势:        

1. 测试覆盖面广、测试场景多        

2. 启动速度明显提升        

3. 稳定性好        

4. 兼容性好        

5. 提供夜神安卓模拟器特有的功能        

6. 受众对象广,开发、测试、产品验收,上手简单,可深度定制        

7. 支持EclipseAndroid studioIntellij idea等开发平台        

8. 提供ROOT开关,简化ROOT过程的繁琐操作        

9. 支持自定义CPU、内存        

10. 支持自定义分辨率        

11. 支持多开安卓模拟器,等同于同时拥有任意部手机        

12. 支持自定义IMEIISEI属性,无限接近真机环境        

13. 提供中英日韩越语言,随意切换        

二、不足:        

1.自带安卓系统版本为安卓4.4.2,但即将拓展更多安卓版本,且使用者可安装其它安卓版本的系统        

二、夜神安卓模拟器自身提供的测试场景        

一、 命令行        

二、 操作助手        

三、 视频录制        

四、 多开模拟器        

五、 虚拟定位        

三、与第三方测试框架的结合使用能够覆盖的测试场景        

一、第三方测试框架        

1. Robotium        

2. Appium        

3. UIAutomator        

4. Jenkins        

二、能够覆盖的测试场景        

1. 人工测试        

2. 自动化功能测试        

3. 回归测试        

4. 兼容性测试        

5. 性能测试(CPU、内存、流量、帧频)        

6. 深度遍历测试        

7. 安全漏洞扫描        


一、使用夜神安卓模拟器相比Google原生安卓模拟器的优劣势一、优势:1. 测试覆盖面广、测试场景多

能够在夜神安卓模拟器上进行各项测试:功能测试、手工测试、自动化测试(结合monkey、monkeyrunner、robotium、appium等自动化测试框架)、性能测试(监控被测试应用的CPU、内存、流量、耗电量等指标)、回归测试等等;

2. 启动速度明显提升

缩短等待时间,提示效率;

3. 稳定性好

兼容绝大多数PC:能够在windows xp sp3、win7、win8、win8.1、win10系统上运行夜神安卓模拟器,支持Intel/amd,支持32位/64位操作系统;

4. 兼容性好

兼容市场上绝大多数安卓应用:音频、视频应用、社交应用、手机游戏等等;

5. 提供夜神安卓模拟器特有的功能

如摇一摇、键盘操控、虚拟定位、操作助手、视频录制、多开模拟器、手柄功能等

6. 受众对象广,开发、测试、产品验收,上手简单,可深度定制7. 支持EclipseAndroid studioIntellij idea等开发平台8. 提供ROOT开关,简化ROOT过程的繁琐操作9. 支持自定义CPU、内存10. 支持自定义分辨率11. 支持多开安卓模拟器,等同于同时拥有任意部手机12. 支持自定义IMEIISEI属性,无限接近真机环境13. 提供中英日韩越语言,随意切换二、不足:1.自带安卓系统版本为安卓4.4.2,但即将拓展更多安卓版本,且使用者可安装其它安卓版本的系统

目前仅有Android4.4.2版本的ROM,即将升级为Android5.0系统,用户可安装其它Android版本的ROM。

二、夜神安卓模拟器自身提供的测试场景一、 命令行

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试安卓程序。当我们运行Eclipse等开发平台时adb进程就会自动运行。adb可以直接操作管理安卓模拟器或者真实的安卓手机。它的主要功能有:

1.运行设备的shell(命令行)

2.管理模拟器或设备的端口映射

3.计算机和设备之间上传/下载文件

4.将本地apk软件安装至模拟器或android设备

说明:使用夜神安卓模拟器的ADB指令时,需要将adb改为nox_adb,如nox_adb devices对应adb devices,nox_adb shell对应adb shell。

二、操作助手

使用者可以使用夜神安卓模拟器提供的【操作助手】功能。操作助手可以录制使用者在测试应用时的任何操作。以微信应用为例,使用者输入账号、密码,点击登录按钮,等待微信登录成功,然后选择一好友进行聊天,查看朋友圈,注销登录等人为的操作,都能够被夜神安卓模拟器提供的【操作助手】记录,记录的操作保存为夜神特定的脚本形式,可用以回放这些操作。【操作助手】功能极大的方便了开发者调试应用,测试人员进行回归测试自动化,录制一次,任意回放,提高工作效率。

三、视频录制

使用者可以使用夜神安卓模拟器提供的【视频录制】功能。测试人员在发现了bug之后,可以使用【视频录制】功能,一边执行bug复现步骤,一边录制视频,更好的记录bug复现步骤、方便开发人员复现bug和定位bug,节省测试人员与开发人员的沟通时间和成本。

四、多开模拟器

夜神安卓模拟器支持无限多开功能,使用者可以启动任意数量的安卓模拟器,在多个安卓模拟器同时运行待测应用,等同于同时拥有了多台手机,节省购机成本。

五、虚拟定位

对于地理位置有需求的应用,比如微信、QQ、百度外卖、美团等,可使用夜神安卓模拟器提供的虚拟定位功能,使用者不需要因为测试地理位置因素对应用的影响而跑遍全国各地,想定位到哪就定位到哪。

三、与第三方测试框架的结合使用能够覆盖的测试场景一、第三方测试框架1. Robotium

Robotium是一款国外的安卓自动化测试框架,主要针对安卓平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合安卓官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium ActivityDialogToastMenu 都是支持的。Robotium的优点:

1.易于使用

2.代码和文档容易阅读

3.可以不需要访问源代码,可以测试一个APK

4.很容易识别元素

5.可以依靠默认的安卓框架

6.能够得到大力的支持

使用robotium框架写的自动化测试用例,能够很稳定地在夜神安卓模拟器中运行,提高效率。

2. Appium

Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOSAndroid以及firefox的操作系统。原生的应用是指用androidiossdk编写的应用,移动网页应用是指网页应用,类似于iossafari应用或者Chrome应用或者类浏览器的应用。混合应用是指一种包裹webview的应用,原生应用于网页内容交互性的应用。它的优点:

1.开源;

2.用Appium自动化测试不需要重新编译App;

3.支持很多语言来编写测试脚本,Java、Javascript、PHP、Python、C#、Ruby等主流语言;

4.不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手)

3. UIAutomator

UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。基于Java,测试代码结构简单、编写容易、学习成本,一次编译,所有设备或模拟器都能运行测试,能跨App(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)。

4. Jenkins

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:

1、持续的软件版本发布/测试项目。

2、监控外部调用执行的工作。

111.png

二、能够覆盖的测试场景1. 人工测试

在手机上能够执行的测试工作,都能够在夜神安卓模拟器上进行。

2. 自动化功能测试

利用robotiumappiumUIAutomator等自动化测试框架,编写自动化测试代码,将重复性的、机械性的操作自动化,节省测试人员时间和精力,提供工作效率。

3. 回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

4. 兼容性测试

1.安装、启动、Monkey、卸载

2.CrashANR等缺陷分析

5. 性能测试(CPU、内存、流量、帧频)

1.CPU、内存、流量、帧频等关键指标

2.1小时快速完成测试

6. 深度遍历测试

1.模拟真人操作

2.自动遍历所有控件

3.覆盖各种异常分支

7. 安全漏洞扫描

1.安全漏洞、系统权限扫描

2.无需测试脚本

3.潜在危险及时扼杀