初探UiAutomator(二)

原创 2015年11月20日 14:51:22

本系类是我学习极客学院的测试类的学习笔记。

这次学习了UiDevice对象。

1、uidevice 获得实例的方法

UiDevice.getInstance();

getUiDevice();

推荐使用第一种方法,第二种方法在封装方法进行调用的时候会出现空指针的情况。

2、模拟按键

UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);

3、模拟拖动和滑动

drag和swipe

UiDevice.getInstance().drag(533, 1498, 1000, 1498, 40);
UiDevice.getInstance().swipe(533, 1498, 1000, 1498, 40);

4、屏幕操作

UiDevice.getInstance().setOrientationLeft();<span style="white-space:pre">	</span>//通过禁用传感器,设备向左旋转并且固定位置
UiDevice.getInstance().unfreezeRotation();<span style="white-space:pre">	</span>//重新启用传感器和允许物理旋转<span style="white-space:pre">	</span>
UiDevice.getInstance().isNaturalOrientation();<span style="white-space:pre">	</span>//检测设置是否处于默认旋转状态
UiDevice.getInstance().getDisplayRotation();<span style="white-space:pre">	</span>//返回当前的显示旋转
UiDevice.getInstance().freezeRotation();<span style="white-space:pre">	</span>//禁用传感器和冻结装置物理旋转在其当前的旋转状态

5、灭屏和唤醒

UiDevice.getInstance().sleep();
UiDevice.getInstance().wakeUp();

6、截图和等待空闲

UiDevice.getInstance().takeScreenshot(new File("/sdcard/123.png"));
UiDevice.getInstance().waitForIdle();

7、获得包名和开启通知栏

UiDevice.getInstance().getCurrentPackageName();<span style="white-space:pre">		</span>//获得当前界面的包名
UiDevice.getInstance().dumpWindowHierarchy("layout");<span style="white-space:pre">	</span>//获取当界面的布局文件
UiDevice.getInstance().openNotification();<span style="white-space:pre">		</span>//打开通知栏
UiDevice.getInstance().openQuickSettings();<span style="white-space:pre">		</span>//打开快速设置


8、一个小小的示例

亮屏->解锁->单击网址输入框->输入www.baidu.com->按回车键->旋转屏幕->截图

<span style="white-space:pre">	</span>public void testExample(){
		//亮屏->解锁->单击网址输入框->输入www.baidu.com->按回车键->旋转屏幕->截图
		try {
			//亮屏幕
			UiDevice.getInstance().sleep();
			UiDevice.getInstance().wakeUp();
			sleep(2000);
			//解锁
			UiDevice.getInstance().drag(533, 1498, 1000, 1498, 40);
			sleep(2000);
			//点击浏览器
			UiDevice.getInstance().click(923, 1798);
			sleep(2000);
			//点击输入框并删除
			UiDevice.getInstance().click(525, 158);
			UiDevice.getInstance().pressDelete();
			sleep(2000);
			//输入www.baidu.com
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_I);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_D);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_U);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_O);
			UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_M);
			sleep(2000);
			//按下回车键
			UiDevice.getInstance().pressEnter();
			sleep(2000);
			//旋转屏幕
			UiDevice.getInstance().setOrientationLeft();
			sleep(2000);
			//截图
			UiDevice.getInstance().takeScreenshot(new File("/sdcard/123.png"));
			sleep(2000);		
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

9、使用UiAutomatorHelper快速测试


public class Text extends UiAutomatorTestCase {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String jarName, testClass, testName, androidId;
		jarName="Dome1";<span style="white-space:pre">		</span>//测试名
		testClass="com.jky.Text";<span style="white-space:pre">	</span>//包名+类名
		testName="testDome";<span style="white-space:pre">		</span>//需要测试的方法名
		androidId="6";<span style="white-space:pre">			</span>//id号
		new UiAutomatorHelper(jarName, testClass, testName, androidId);
	}

	public void testDome(){
		UiDevice.getInstance().pressHome();
	}
}



点击UiAutomatorHelper下载



相关文章推荐

四、UiDevice API 详细介绍

1.UiDevice按键与keycode使用 返回值 方法名 说明 boolean pressBack() 模拟短按返回back键 boolean pressDPadCenter()...

编译报错+解决方法:错误: 找不到符号

【0】README 1)本文主要解决“错误,找不到符号” 【1】 console error info 1)error :  E:\bench-cluster\mybatis_in_action_...

UiAutomator的使用方法

1 Eclipse新建Java Project test01 2 添加JUnit库 3

关于 Android 下的自动化测试方法介绍

本文主要转自宋立新的CSDN博客: http://blog.csdn.net/zjujoe/archive/2010/06/02/5641477.aspx http://blog.csdn...

初探UiAutomator(一)

UiAutomator环境配置: 1、java环境,这个网上有一堆 2、增加android 环境变量,sdk环境变量:*\sdk\platform-tools  *\sdk\platform-tool...

UiAutomator笔记之UiDevice API(二)

一、UiDevice类简介 1、UiDevice代表设备状态。如屏幕的大小、旋转方向、按压各种按键等。 2、UiDevice为单例模式,可有2种方式获取其实例。 (1)UiDevice.get...

android uiautomator学习(二)主要类的功能简单介绍

各个类的主要作用如下: 可用UiDevice表示设备 getUiDevice().pressHome(); UiSelector表示一个搜索条件以获取一个特定的组件。 UiObje...

TrustZone初探 (二)

5. trustzone和中断 中断也是隔离的,安全世界和普通世界有独立的VBAR寄存器,中断向量表。唯独monitor模式下有自己的中断向量表,寄存器是MVBAR,smc指令就是跳到这个向量表。G...

我的Spark学习之路(二)geotrellis初探:如何发起WEB服务显示地图

刚看一下,我的上一篇博客竟然是在8.10写的,到今天已经差不多40天了,时间过的可真快,最近太忙,一直没时间整理看过的东西,索性这会没事随便写点。 我的专业是地图学与地理信息,听这个名字就知...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初探UiAutomator(二)
举报原因:
原因补充:

(最多只允许输入30个字)