转:http://www.th7.cn/Program/java/201512/740518.shtml
Uiautomator向jar包传多个参数,有需要的朋友可以参考下。
先看uiautomator的命令解析,随便输了个uiautomator -help,让其显示用法,打印出来的信息如下:
——————————————————————————————————————————————————————————————
shell@V4:/ $ uiautomator -help
uiautomator -help
Usage: uiautomator
Available subcommands:
help: displays help message
runtest: executes UI automation tests
runtest
the path is relative, it's assumed to be under /data/local/tmp. Use
absolute path if the file is elsewhere. Multiple files can be
specified, separated by space.
a single method, use TestClass#testMethod format. The -e or -c option
may be repeated. This option is not required and if not provided then
all the tests in provided jars will be run automatically.
options:
--nohup: trap SIG_HUP, so test won't terminate even if parent process
is terminated, e.g. USB is disconnected.
-e debug [true|false]: wait for debugger to connect before starting.
-e runner [CLASS]: use specified test runner class instead. If
unspecified, framework default runner will be used.
-e
May be repeated.
-e outputFormat simple | -s: enabled less verbose JUnit style output.
dump: creates an XML dump of current UI hierarchy
dump [--verbose][file]
[--compressed]: dumps compressed layout information.
[file]: the location where the dumped XML should be stored, default is
/storage/emulated/legacy/window_dump.xml
events: prints out accessibility events until terminated
————————————————————————————————————————————————————————————————————
假设我需要想jar包穿三个参数,String uiserName,String password,long runTime,则对应的命令应该如下:
uiautomator runtest TestLogin.jar -e userName CrystalChen -e runTime 1000000 -e password 123 --nohup -c com.example.TestLogin
下划线斜体部分则为对应的参数配置。
在你的UiautomatorTestCase中对应接受参数的地方应该书写如下:
public void test1() throws Exception {
Bundle bundle = getParams(); //获取键值对
String userName=bundle.getString("userName");
String password=bundle.getString("password");
long runTime=Long.parseLong(bundle.getString("runTime"));
System.out.println(runTime+"======="+password+"========"+userName);
}
注意:非String类型的参数不能通过bundle.getLong这种方法获取,这样是获取不到的,这些键值对必须通过getString来获取,然后对应转化成你要的类型。