本系类是我学习极客学院的测试类的学习笔记。
这次学习了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>//打开快速设置
亮屏->解锁->单击网址输入框->输入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();
}
}