Android无线测试之—UiAutmator运行命令介绍与快速调试

一、运行命令介绍:

#Test.java

package com.uiautomatortest;

import android.os.Bundle;
import android.os.RemoteException;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Test extends UiAutomatorTestCase {

    public void testHome(){

        UiDevice.getInstance().pressHome();
        sleep(2000);
    }

    public void testMenu(){

        UiDevice.getInstance().pressMenu();
        sleep(2000);
    }

    public void testRecent() throws RemoteException{

        UiDevice.getInstance().pressRecentApps();
        sleep(2000);
    }

    public void testDemo(){

        UiDevice.getInstance().pressHome();
        sleep(2000);
        Bundle bundle=getParams();
        String phone=bundle.getString("phone");
        System.out.println("PHONE="+phone);
    }

}

Test.java

例1:运行某个测试类(运行该类下所有测试用例):

  adb shell uiautomator runtest demo.jar -c com.uiautomatortest.Test
例2:运行某个测试类下的某个测试用例:

  adb shell uiautomator runtest demo.jar -c com.uiautomatortest.Test#testHome

例3:同时运行多个测试用例:

  adb shell uiautomator runtest demo.jar -c com.uiautomatortest.Test#testHome -c com.uiautomatortest.Test#testRecent

例4:使用-e参数传入一个键值对到测试程序中:

  adb shell uiautomator runtest demo.jar -c com.uiautomatortest.Test#testDemo -e phone 12345678

二、快速调试:

  原来存在的问题:

  1)无法在eclipse直接调试

  2)使用命调试繁琐效率低

  解决办法:

    将调试步骤转换成脚本,调试步骤共5步:

    

    那么获取快速编译脚本的方法如下:

    1)单击eclipse中open Perspective按钮,选择Git Repository Exploring,单击OK:

    

    2)点击Clone a Git repository,在弹出的窗口中URI处输入https://github.com/fan297/UiAutomatorHelper.git,一路next,直至finish

    

    3)导入工程,一路next直至Finish:

    

    

    4)多出一个工程UiAutomatorDebug,将工程里面的UiAutomatorHelper.java拷贝到相应的工程下面

    

    5)在要运行的工程类中添加如下的代码
    

#将此段代码添加到Test.java的Test类的最后面

public static void main(String[] args){

    String jarName, testClass, testName, androidId;
    jarName="DemoTest";
    testClass="com.uiautomatortest.Test";
    testName="testDemo";
    androidId="1";
    new UiAutomatorHelper(jarName, testClass, testName, androidId);

}

Test.java

    6)在eclipse中选择run as Java Application,观察模拟器的变化。

    

时间: 2024-08-06 11:58:37

Android无线测试之—UiAutmator运行命令介绍与快速调试的相关文章

Android无线测试之—UiAutomator UiSelector API介绍之三

四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串   0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10} 4.起始匹配: 012.01234.01234567 三.程序举例: package com.testuiselector; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiO

Android无线测试之—UiAutomator UiDevice API介绍八

获取包名.开启通知栏.快速设置.获取布局文件的方法 一.包名.通知栏.快速设置.布局文件等相关知识: 1)包名:标示应用的符号,每个应用的名字 2)通知栏:从主界面的顶端向下拉,就可以打开通知栏 3)快速设置:打开通知栏,右上角有个设置,快速设置可以进行设置.无线网络等等 4)布局文件:界面布局的文件,显示界面各个控件元素信息的文件 二.相关API: 返回值 包名 描述 void getCurrentPackageName() 获取当前界面的包名 void dumpWindowHierarchy

Android无线测试之—UiAutomator UiScrollable API介绍三

获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch) 是否允许滚动查看获取具备UiSelector条件元素集合后再以文本描述条件查找对象 UiObject getChildByDescription(UiSelector childPattern, String text) 默认滚动获取具备UiSele

Android无线测试之—UiAutomator UiSelector API介绍之四

四种匹配关系介绍 一.四种匹配关系介绍: 二.举例: 匹配字符串   0123456789 1.完全匹配: 0123456789 2.包含匹配: 45678.456.678 3.正则匹配: \d{10} 4.起始匹配: 012.01234.01234567 三.程序举例: package com.testuiselector; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiO

Android无线测试之—UiAutomator UiCollection API介绍

UiCollection类介绍 一.UiCollection类说明 1)UiCollection类是UiObject类的子类,即UiObject类的所有方法都被UiCollection继承下来了,都可以使用 2)UiCollection代表元素条目的集合 二.UiCollection功能说明 1)先按照一定的条件枚举出容器类界面所有符合条件的子元素 2)再从符合条件的元素的和集中再次通过一定的条件最终定位需要的组件 三.UiCollection使用场景 1)一般使用容器类组件作为父类 2)一般用

Android无线测试之—UiAutomator UiObject API介绍六

手势操作 1.手势相关操作 2.相关API介绍 返回值 API 描述 boolean performMultiPointerGesture(PointerCoords[]... touches) 执行单手触控手势,可定义任意手势与形状 boolean performTwoPointerGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps) 执行任意两个手指触控手势,模拟两

Android无线测试之—UiAutomator UiDevice API介绍四

拖拽与滑动 一.概念介绍: 1)拖拽:将组建从一个坐标移动到另一个坐标 2)移动:从一二坐标点移动到另一个坐标点 3)步长:从一点滑动到另一点使用的时间 二.拖拽与滑动的相关API: 返回值 方法名 描述 boolean drag(int startX, int startY, int endX, int endY, int steps) 拖动对象从一个坐标拖动到另一个坐标 boolean swipe(Point[] segments, int segmentSteps) 再点阵列中滑动,5ms

Android无线测试之—UiAutomator UiDevice API介绍五

屏幕旋转 一.屏幕旋转相关知识: 1)旋转方向:0度,90度(向左转),180度,270度(向右转) 2)重力感应器:重力感应器是旋转所依靠的 3)固定位置:指将屏幕方向固定在0度,90度或者180度等 4)物理旋转:物理旋转与重力感应器关联在一块,关闭物理旋转就是关闭了重力感应器,反之亦然) 二.旋转屏幕相关API: 返回值 方法名 描述 void setOrientationLeft() 通过禁用传感器,然后模拟设备向左转,并且固定位置 void setOrientationNatural(

Android无线测试之—UiAutomator UiSelector API介绍之二

Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧布局:子类会出现在布局的左上角 5)网格布局:类似于表格布局,但比表格布局更灵活,可以比较随意的调整其中的分区模块 6)绝对布局:使用绝对坐标来堆放组件 二.常用组件: 三.常Android组件属性介绍 属性值 值类型 例子 index int 0 instance int 5 class Stri