UiAutomator2.0的四种脱机方式

Uiautomator2.0拥有多用例需要集成测试的情况下,我们往往需要考虑如何脱机运行多用例

1、手机root,并开发对应app,由app执行调起U2的多命令来实现

2、取得手机rom的系统签名,并给调起命令的app进行签名后,由app执行调起U2的多命令来实现

如果以上两种方式不可行的情况下,请博友们往下看:

3、一个测试class集成多class中的测试方法,调起命令为一个命令,但执行的是多个class的test方法。

类似于以下这种模式:

@Test
public void testCase() {
    DemoTest_01.testCase();
    DemoTest_02.testCase();
    DemoTest_03.testCase();
    DemoTest_04.testCase();
    DemoTest_05.testCase();
    DemoTest_06.testCase();
    DemoTest_07.testCase();
    DemoTest_08.testCase();
    DemoTest_09.testCase();
    DemoTest_10.testCase();
}

需要注意的是:这种模式下,代码的抛出的异常需要自己try-catch处理掉,不能直接throws出去让JVM catch,否则会中断,从而影响后面用例的执行。

PS:这种方式调起命令,随后移除USB线,部分厂商的机型可能会立刻断掉测试哦。

4、使用Monkey -f 命令来调起。这种调起后,因为调起者为Monkey,所以没有uiautomator进程。

Monkey 的 -f 命令,原本是用来执行monkey的shell脚本,这个脚本中可以模拟用户键盘输入、屏幕操作、等待、执行命令、等等,在这里不做赘述。

这里我们主要是拿到这个shell脚本中的执行命令来实现U2的多case调起。

第一步:新建一个demo.txt文件:

文件中输入以下内容:

type = raw events 
count = 1 
speed = 1.0 
start data >> 
RunCmd(am instrument -w -r   -e debug false -e class com.testcase.debug.Debug1 com.testcase.test/android.support.test.runner.AndroidJUnitRunner)
RunCmd(am instrument -w -r   -e debug false -e class com.testcase.debug.Debug2 com.testcase.test/android.support.test.runner.AndroidJUnitRunner)
RunCmd(am instrument -w -r   -e debug false -e class com.testcase.debug.Debug3 com.testcase.test/android.support.test.runner.AndroidJUnitRunner)

第二步:保存txt文件,并将demo.txt文件push到手机端/data/local/tmp

push命令:adb push %CD%/demo.txt /data/local/tmp

第三步:使用Monkey -f 命令来执行这个txt脚本。

monkey命令:adb shell monkey -f /data/local/tmp/demo.txt -v 2 --ignore carshed 

(ps:Monkey命令中,-v后面跟的参数表示外循环次数)

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值