1、Appium
在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试
- appium使用的是Client/Server的设计模式,实现跨平台,多语言。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,通过Python(python-client )编写了一个appium自动化脚本并执行,appium-Server通过解析,驱动iOS设备来执行appium自动化脚本。或者,我在Windows平台上,通过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通过解析,驱动Android虚拟机或真机来执行appium脚本。
- Appium是基于UIAutomator框架实现的一个开源、跨平台的测试框架。支持跨平台它允许测试人员在不同的平台iOS或Android使用同一套API来写自动化测试脚本,可以增加iOS和Android测试套件间代码的复用性。支持多语言如:java、python;
- Appium测试相当于黑盒测试,测试UI逻辑正确性获取一个AppiumDriver对象。该对象只是有很多findElements()的方法,获取到UI元素。UI元素是WebElement,这个类提供的方法基本是获取信息为主,比如获取name,class,location,text,isSlected,isTouched等信息。这个测试框架,只是测试UI逻辑的正确性.
2、Robotium
Robotium是基于Instrumentation框架开发的一个更强的框架。对常用的操作进行了易用性的封装。用于开发功能性、系统和验收测试场景。它运行时绑定到GUI组件。它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境
优点: 容易在最短的时间内编写测试脚本,易用性高。自动跟随当前activity。由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快,更强大。不访问代码或不了解app实现,也可以工作。支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android SDK控件。
缺点: 不能处理flash和web组件。在旧设备上会变得很慢。 由于不支持iOS设备,当自动化测试同时覆盖android与iOS的情况时,测试会被中断。没有内置的记录和回放功能,使用记录功能需要TestDroid和Robotium Recorder这样的收费工具。
3、UiAutomator
UiAutomator测试框架是AndroidSDK自带的App UI自动化测试Java库。
- UiAutomator——基于UIAutomation的用户界面自动化测试框架,可以跨应用工作;
- UiAutomator只能测试Android native app
- 使用uiautomatorviewer.bat来检索手机界面视图
- 主要功能跟Appium类似
- 运行速度快
- 可以跨进程操作