初探UiAutomator(二)

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

这次学习了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下载



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值