• 稳~😉

  • 大佬好!程哥

  • 如果需要连续执行多条adb shell命令,则可以采用命令adb shell "cmd1 && cmd2 && cmd3",如下:

    import subprocess

    cmd = 'adb shell "cd sdcard && cd tmp && pwd"'

    def adb_shell(cmd):
    p = subprocess.getstatusoutput(cmd)
    return p

    result = adb_shell(cmd)
    print(result)

    执行结果:
    (0, '/sdcard/tmp')

  • 请问这个是多设备并行run还是串行run的测试用例?

  • 不用没条case都重启app吧,可以封装一个通用的方法,执行完case返回到首页或特定页面,放在AfterMethod里面,而如果要处理执行case崩溃的问题,可以再封装一个方法,先判断当前app是否处于前台状态,不在的话,再重启app,也放在AfterMethod中调用

  • 看了下,不知道哪个地方需要注释呢?这个不涉及到主线程和子线程的问题,所以不需要stop子线程啥的,这个代码两个线程执行完毕会自动停掉了

  • 不是,多线程的执行不是我们想的那样等一个执行完毕才执行另一个,启动执行的时间是随机的,但从感官上基本是同时执行😁

  • 如果需要带参传入test_meizu16_app_start或test_vivo_X9_app_start,则用args带入即可

    t1 = threading.Thread(target=thread_mulitple_devices.test_meizu16_app_start, args=('882QADT9UWTBW',), name='meizu16')
    t2 = threading.Thread(target=thread_mulitple_devices.test_vivo_X9_app_start, args=('e9d3a867',), name='vivo X9')
  • 重建工程,已解决

  • 还有一个办法,就是安装u2的时候,执行adb shell dumpsys activity | grep "Run #"不断拿当前页面的activity,如果有弹窗了,肯定是一个grantPermisson相关的activity,这时候,根据不同型号的手机,点坐标好了,也可以把安装弹窗给点掉。😃