1. 程式人生 > >uiautomator runtest命令列向jar檔案傳參

uiautomator runtest命令列向jar檔案傳參

命令列如下:

adb shell uiautomator runtest  Test.jar -e runtype repeat -c com.yuchaolee.lau.MyTest.MTest

裡面有個引數e,後跟的runtype和repeat分別是值的key和value。

程式碼段:

?
1 2 3 4 5 public void testLau() throws Exception {           Bundle bundle = getParams();         
String runType = bundle.getString( "runtype" );          System.out.println(runType); }



  • 支援三個子命令:rutest/dump/events
  • runtest命令-c指定要測試的class檔案,用逗號分開,沒有指定的話預設執行測試指令碼jar包的所有測試類.注意使用者可以以格式$class/$method來指定只是測試該class的某一個指定的方法
  • runtest命令-e引數可以指定是否開啟debug模式
  • runtest命令-e引數可以指定test runner,不指定就使用系統預設。我自己從來沒有指定過
  • runtest命令-e引數還可以通過鍵值對來指定傳遞給測試類的引數

同時我們這裡會涉及到幾個重要的類,我們這裡先列出來給大家有一個初步的印象:

Class

Package

Description

Launcher

com.android.commands.uiautomator

uiautomator命令的入口方法main所在的類

RunTestCommand

com.android.commands

代表了命令列中‘uiautomator runtest'這個子命令

EventsCommand

com.android.commands

代表了命令列中‘uiautomator events’這個子命令

DumpCommand

com.android.commands

代表了命令列中‘uiautomator dump’這個子命令

UIAutomatorTestRunner

com.android.uiautomator.testrunner

預設的TestRunner,用來知道測試用例如何執行

TestCaseCollector

com.android.uiautomator.testrunner

用來從命令列和我們的測試指令碼.class檔案收集每個測試方法然後建立對應的junit.framework.TestCase測試用例的一個類,它維護著一個List<TestCase> mTestCases列表來儲存所有測試方法(用例)

UiAutomationShellWrapper

com.android.uiautomator.core

一個UiAutomationwrapper類,簡單的做了封裝,其中提供了一個setRunAsMonkey的方法來通過ActivityManagerNativeProxy來設定系統的執行模式

UiAutomatorBridge

com.android.uiautomator.core

相當於UiAutomation的代理,基本上所有和UiAutomation打交道的方法都是通過它來分發的

ShellUiAutomatorBridge

com.android.uiautomator.core

UiAutomatorBridge的子類,額外增加了幾個不需要用到UiAutomation的方法,getRotation