UiAutomatorRunner

public class UiAutomatorRunner
extends Object implements IRemoteAndroidTestRunner

java.lang.Object
   ↳ com.android.tradefed.testtype.UiAutomatorRunner


在设备上运行 UI Automator 测试并报告结果。 UI Automator 测试是一个专用测试运行程序,用于运行利用 UI Automator 框架的界面自动化测试。设备上的测试运行程序会模拟插桩测试输出格式,以便重复使用 ddmlib 和 TF 中的现有解析代码。 从本质上讲,这是对以下命令的封装:adb shell uiautomator runtest (jar files) -e class (test classes) ...

摘要

公共构造函数

UiAutomatorRunner(IDevice remoteDevice, String[] jarPaths, String runnerPath)

创建用于运行界面自动化测试的 UiAutomatorRunner

公共方法

void addBooleanArg(String name, boolean value)

添加一个布尔值实参,以包含在插桩命令中。

void addInstrumentationArg(String name, String value)

添加了要包含在插桩命令中的实参。

void cancel()

请求取消此测试运行。

IRemoteAndroidTestRunner.CoverageOutput getCoverageOutputType()

返回 runner 生成的测试覆盖率类型。

String getPackageName()

返回添加的最后一个 Java 类的软件包名称

String getRunnerName()

返回默认 UiAutomatorTestRunner 类名称

void removeInstrumentationArg(String name)

移除之前添加的实参。

void run(ITestRunListener... listeners)

执行此测试运行。

void run( listeners)

执行此测试运行。

void setAdditionalTestOutputLocation(String additionalTestDataPath)

设置在卸载测试应用之前要复制到主机的其他测试输出的位置。

void setClassName(String className)

设置仅运行此类中的测试。必须在“run”之前调用。

void setClassNames(String[] classNames)

设置仅运行所提供类中的测试。必须在“run”之前调用。

void setCoverage(boolean coverage)

设置相应测试运行的此代码覆盖率模式。

void setCoverageReportLocation(String arg0)

设置生成的覆盖率报告的位置。

void setDebug(boolean debug)

设置相应测试运行的调试模式。

void setIgnoreSighup(boolean value)

在 uiautomator 中设置忽略 SIGHUP 的选项。

void setLogOnly(boolean logOnly)

将此测试运行设置为仅记录模式 - 跳过测试执行。

void setMaxTimeToOutputResponse(long timeout, TimeUnit unit)

设置在设备上运行测试的 shell 命令输出之间允许的最大时间。

void setMaxTimeout(long maxTimeout, TimeUnit unit)

设置检测完成所需的最长时间。

void setMaxtimeToOutputResponse(int maxTimeToOutputResponse)

此方法已弃用。 请改用 setMaxTimeToOutputResponse(long, TimeUnit)

void setMethodName(String className, String testName)

设置仅运行指定的测试方法,必须在“run”之前调用。

void setRunName(String runName)

设置要向 ITestRunListener 报告的自定义运行名称,时间为 run()

如果未指定,将使用软件包名称

void setTestCollection(boolean b)

将此测试运行设置为测试收集模式。

void setTestPackageName(String packageName)

设置运行指定软件包中的所有测试。必须在“run”之前调用。

void setTestSize(IRemoteAndroidTestRunner.TestSize size)

设置为仅运行指定大小的测试。

受保护的方法

String getRunCommand()
String getRunnerPath()

公共构造函数

UiAutomatorRunner

public UiAutomatorRunner (IDevice remoteDevice, 
                String[] jarPaths, 
                String runnerPath)

创建 UiAutomatorRunner 以运行界面自动化测试

参数
remoteDevice IDevice:要与之互动的远程设备:运行测试、收集结果等

jarPaths String:包含 UI Automator 测试用例的 jar 文件的路径;这些路径必须是绝对路径或相对于设备上 /data/local/tmp/ 的相对路径

runnerPath String:要使用的替代 uiautomator 运行程序,可以是 null,在这种情况下将使用默认运行程序

公共方法

addBooleanArg

public void addBooleanArg (String name, 
                boolean value)

添加一个布尔值实参,以包含在插桩命令中。

参数
name String:插桩软件包实参的名称

value boolean:实参的值

addInstrumentationArg

public void addInstrumentationArg (String name, 
                String value)

添加了要包含在插桩命令中的实参。

必须在“run”之前调用。如果已提供具有指定名称的实参,则其值将被覆盖。

参数
name String:插桩软件包实参的名称

value String:实参的值

取消

public void cancel ()

请求取消此测试运行。

getCoverageOutputType

public IRemoteAndroidTestRunner.CoverageOutput getCoverageOutputType ()

返回运行程序生成的测试覆盖率的类型。请参阅CoverageOutput

返回
IRemoteAndroidTestRunner.CoverageOutput

getPackageName

public String getPackageName ()

返回添加的最后一个 Java 类的软件包名称

返回
String

getRunnerName

public String getRunnerName ()

返回默认 UiAutomatorTestRunner 类名称

返回
String

removeInstrumentationArg

public void removeInstrumentationArg (String name)

移除之前添加的实参。

参数
name String:要移除的插桩软件包实参的名称

得分

public void run (ITestRunListener... listeners)

执行此测试运行。

适用于 ERROR(/#run(Collection)) 的便捷方法。

参数
listeners ITestRunListener:监听测试结果

抛出
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

得分

public void run ( listeners)

执行此测试运行。

参数
listeners :测试结果的监听器集合

抛出
AdbCommandRejectedException
ShellCommandUnresponsiveException
TimeoutException

setAdditionalTestOutputLocation

public void setAdditionalTestOutputLocation (String additionalTestDataPath)

设置在卸载测试应用之前要复制到主机的其他测试输出的位置。例如,生成的基准比较报告。

参数
additionalTestDataPath String

setClassName

public void setClassName (String className)

设置为仅运行此类中的测试。必须在“run”之前调用。

参数
className String:完全限定的类名称(例如 x.y.z)

setClassNames

public void setClassNames (String[] classNames)

设置仅运行所提供类中的测试。必须在“run”之前调用。

如果提供多个类,则需要支持多个类实参语法的 InstrumentationTestRunner。

参数
classNames String:完全限定类名(例如 x.y.z)的数组

setCoverage

public void setCoverage (boolean coverage)

设置相应测试运行的此代码覆盖率模式。

参数
coverage boolean

setCoverageReportLocation

public void setCoverageReportLocation (String arg0)

设置生成的覆盖率报告的位置。

参数
arg0 String

setDebug

public void setDebug (boolean debug)

设置相应测试运行的调试模式。如果为 true,Android 测试运行程序将等待调试程序连接,然后再继续执行测试。

参数
debug boolean

setIgnoreSighup

public void setIgnoreSighup (boolean value)

设置 uiautomator 中的选项以忽略 SIGHUP。

参数
value boolean:如果设置为 true,则忽略信号

setLogOnly

public void setLogOnly (boolean logOnly)

将此测试运行设置为仅记录模式 - 跳过测试执行。

参数
logOnly boolean

setMaxTimeToOutputResponse

public void setMaxTimeToOutputResponse (long timeout, 
                TimeUnit unit)

设置在设备上运行测试的 shell 命令输出之间允许的最大时间。

这样,您就可以设置超时时间,以防测试卡住而永远无法完成。这与连接的正常超时不同。

默认情况下,不会指定超时时间。

参数
timeout long:允许命令在最长多长时间内不输出任何响应。值为 0 表示该方法将无限期等待(直到 receiver 取消执行)命令输出,并且永远不会抛出异常。

unit TimeUnit:非零 maxTimeToOutputResponsemaxTimeout 值的单位。

setMaxTimeout

public void setMaxTimeout (long maxTimeout, 
                TimeUnit unit)

设置检测完成所需的最长时间。

这样,您就可以设置超时时间,以防测试卡住而永远无法完成。这与连接的正常超时不同。

默认情况下,不会指定超时时间。

参数
maxTimeout long:允许命令在最长多长时间内不输出任何响应。值为 0 表示该方法将无限期等待(直到 receiver 取消执行)命令输出,并且永远不会抛出异常。

unit TimeUnit:非零 maxTimeToOutputResponsemaxTimeout 值的单位。

setMaxtimeToOutputResponse

public void setMaxtimeToOutputResponse (int maxTimeToOutputResponse)

此方法已弃用。
请改用 setMaxTimeToOutputResponse(long, TimeUnit)

参数
maxTimeToOutputResponse int

setMethodName

public void setMethodName (String className, 
                String testName)

设置仅运行指定的测试方法,必须在“run”之前调用。

参数
className String:完全限定的类名称(例如 x.y.z)

testName String:方法名称

setRunName

public void setRunName (String runName)

设置要向 ITestRunListener 报告的自定义运行名称,时间为 run()

如果未指定,将使用软件包名称

setTestCollection

public void setTestCollection (boolean b)

将此测试运行设置为测试收集模式。如果为 true,则会跳过测试执行,并设置成功收集测试所需的所有相应 runner 实参。

参数
b boolean

setTestPackageName

public void setTestPackageName (String packageName)

设置为运行指定软件包中的所有测试,必须在“run”之前调用。

参数
packageName String:完全限定的软件包名称(例如 x.y.z)

setTestSize

public void setTestSize (IRemoteAndroidTestRunner.TestSize size)

设置为仅运行指定大小的测试。必须在“run”之前调用。

参数
size IRemoteAndroidTestRunner.TestSize:要运行的 TestSize

受保护的方法

getRunCommand

protected String getRunCommand ()

返回
String

getRunnerPath

protected String getRunnerPath ()

返回
String