快学UiAutomator各种框架介绍
Monkey
编写语言:命令行 运行环境:使用adb连接PC运行
测试对象:Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。主要测试客户端应用的稳定性,健壮性
测试限制:主要是做随机模拟用户操作移动端的操作
MonkeyRunner
编写语言:py 运行环境:py环境,使用adb连接PC运行 测试对象:UI测试,功能测试,回归测试,并且可以自己定义测试扩展,灵活性较大。 测试限制:主要使用坐标,逻辑判断较差
UiAutomator
编写语言:java 运行环境:使用adb连接PC运行,启动测试 测试对象:主要用于UI功能自动化和UI测试,快速、运行简单 测试限制:是通过以控件的方式来定位,当然也是支持坐标轴的方式来定位,权限控制不足,无法像Instrumentation那样使用
Instrumentation
编写语言:java 运行环境:使用adb连接PC运行,启动测试 测试对象:主要用于白盒测试和UI测试 测试限制:单个Activity测试,需要与测试相同应该的签名
Robotium
编写语言:java基于Instrumentation封装 运行环境:使用adb连接PC运行,启动测试 测试对象:主要用于白盒测试和UI测试 测试限制:单个Activity测试,需要与测试相同应该的签名
各种框架编写代码风格
Monkeyrunner代码风格实例
device = Monkeyrunner.waitForConnection()等待连接手机设备 device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP)点击Home键
Robotium
solo.clickOnMenuItem("Add note") solo.goBack();
Instrumentation
mActivity.runOnUiTread(new Runnable(){ public void run(){ mSpinner.requestFocus(); } })
UIAutomator
public class Test extends UiAutomatorTestCase { public void testDemo() throws UiObjectNotFoundException{ UiDevice.getInstance().pressHome(); UiObject browserObject = new UiObject(new UiSelector().text("Browser")); browserObject.clickAndWaitForNewWindow(); UiObject editoObject = new UiObject(new UiSelector().className("android.widget.EditText")); editoObject.click(); UiDevice.getInstance().pressDelete(); editoObject.setText("www.baidu.com"); UiDevice.getInstance().pressEnter(); sleep(2000); } }