快学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);
	}
}

  

  

 

  

posted @ 2017-06-13 14:09  逍遥无名  阅读(4630)  评论(0编辑  收藏  举报