一、首先说说手机自动化测试的原理 1、手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。 2、关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。 3、而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义 4、而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制) 5、自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。 二、Android自动化测试方向: 1、CTS,CTS 测试基于Android instrumentation 测试, 其又基于JUnit 测试。说白了, CTS 就是一堆单元测试用例。这也是java 语言的擅长部分。 2、 Monkey工具,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 3、ASE,ASE 意思为Android 脚本环境, 即我们可以通过脚本(比如Python)调用Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java 部分), 并用python 脚本调用这些API, 从而实现丰富的测试功能。用于API 部分可以访问到Android 全部API, python 又能灵活部署测试,所以ASE 的扩展性非常好。 4、Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用 进行测试。Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text 等等。(推举你可以研究一下这个工具,开源的,我有资料) 5、可以自己开发一个手机方面的自动化测试工具,原理上一样的 如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:[email protected]
‘贰’ Android 手机自动化测试工具有哪几种
1、MonkeyAndroid SDK自带测试工具测试程向系统发送伪随机用户事件流按键输入、触摸屏输入、手势输入等)实现发应用程序进行压力测试志输实际该工具能做程序做些压力测试由于测试事件数据都随机能自定义所局限性
2、MonkeyRunnerAndroid SDK提供测试工具严格意义说MonkeyRunner其实Api工具包比Monkey强编写测试脚本自定义数据、事件缺点脚本用Python写测试员说要求较高比较习本
3、Instrumentation早期Google提供Android自化测试工具类虽候JUnitAndroid进行测试Instrumentation允许应用程序做更复杂测试甚至框架层面通Instrumentation模拟按键按、抬起、屏幕点击、滚等事件Instrumentation通主程序测试程序运行同进程实现些功能Instrumentation看类似Activity或者Service并且带界面组件程序运行期间监控主程序缺点测试员说编写代码能力要求较高需要Android相关知识定解需要配置AndroidManifest.xml文件能跨App
4、UiAutomatorAndroid提供自化测试框架基本支持所Android事件操作比Instrumentation需要测试员解代码实现细节(用UiAutomatorviewer抓App页面控件属性看源码)基于Java测试代码结构简单、编写容易、习本编译所设备或模拟器都能运行测试能跨App(比:App选择相册、打相机拍照跨App测试)缺点支持SDK 16(Android 4.1)及支持Hybird App、WebApp
5、EspressoGoogle源自化测试框架相于RobotiumUIAutomator特点规模更、更简洁API更加精确编写测试代码简单容易快速手基于Instrumentation所能跨App配合Android Studio编写测试简单例
6、Selendroid:基于Instrumentation测试框架测试Native App、Hybird App、Web App网资料较少社区跃度
7、Robotium基于Instrumentation测试框架目前内外用比较资料比较社区比较跃缺点测试员说要定Java基础解Android基本组件能跨App
8、Athrun淘宝移测试框架/平台同支持iOSAndroidAndroid部基于InstrumentationAndroid原类基础进行扩展提供整套面向象API详细介绍
9、Appium近比较热门框架社区跃框架应该功能强
-
‘叁’ Android自动化测试工具有哪些
1、 Robotium 安卓测试工具
Robotium是一款经常使用的自动化测试工具软件,支持Android。
Robotium是一个免费的Android UI测试工具。它适用于为不同的安卓版本和子版本测试自动化。软件开发人员经常把它描述为Android Selenium。Robotium测试是用java写的。事实上,Robotium是一个单元测试库。
但通过Robotium创建测试需要花费很多时间和努力,因为为了自动化测试还需要修改程序源代码。该工具也不适合与系统软件的交互,它不能锁定和解锁智能手机或平板电脑。Robotium也没有录制回放功能,也不提供截图。
2、MonkeyRunner 安卓应用测试
Monkeyrunner是一款流行的Android测试工具,用于自动化功能测试。
这个工具比Robotium更低一层次。这个不必处理源代码来做自动化测试。这个测试可以用Python写,并且可以使用录制工具来创建测试。
Monkeyrunner可以连接到电脑或模拟真实设备运行测试。该工具有一个接口,用它来控制智能手机,平板电脑或外部模拟器的Android代码。
这个测试工具的缺点是,它必须为每个设备编写脚本。另一个问题是,每次测试程序的用户界面变化都需要调整测试脚本。
3、Ronaorex 安卓测试应用工具
Ranrex 是一款不仅可以支持最新Android版本,也支持从Android2.2开始的早期版本和分支版本。
Ranorex的优势是它有详细的截屏报告。它能通过Wifi连接智能手机和平板电脑。
一个自动化测试工程师通过这个Android工具可以不用XML数据格式来详细编写数据驱动的测试。Ranorex工作室使自动化测试工程师只要点击鼠标就可容易地创建测试。它允许详细声明额外的程序模块,来用于在后期开发周期中测试更复杂的场景。
它是一个商业的移动应用工具,其许可价格为1990欧元。不过Ranorex搜索功能相当慢;它需要30秒来完成这样的操作。我们必须为Ranorex配备apk文件设备,否则无法通过这个工具实现自动化测试,因为它只能在APK文件设备上工作。