软件测试相关程序员互联网科技

解决appium安卓自动化测试时安装app需要手动允许的问题

2017-11-28  本文已影响1395人  给你一颗小瓜子

安卓6.0以上,手机对于权限问题又加紧了一步。基本市场上能见到的手机,安装app时都需要手动允许,除非你给了一些应用市场自动安装的权限。

appium使用的是adb install来安装应用的,手动执行adb install安装应用时也会弹窗。那么这个问题怎么解决呢?

1. root到原生系统

2. 手动尝试先把包push到手机上,再pm install

注释掉appium安装:

文件路径:/usr/local/lib/node_modules/appium/lib/devices/android/android.js

//this.uninstallApp.bind(this)

//this.installAppForTest.bind(this)

然后自己写一套install/uninstall的方法,每次执行case集前调用一次。

具体可以参考这篇文章:install/uninstall的方法

3.线程解决

因为appim在启动时会先检查app有没有安装,如果安装成功就不会再去安装。前提是你已经设置了"noReset": true。

搞两个线程,一个负责install app,一个负责发送adb点击事件。一边安装一边检测是否有弹窗。

import time

import os

from threading import Thread

PATH = lambda p: os.path.abspath(

os.path.join(os.path.dirname(__file__), p)

)

def installApp():

os.popen("adb install " + PATH('../config/app_release.apk'))

def inputEvent():

time.sleep(5)

os.popen("adb shell input tap 785 1280")

def install():

t1 = Thread(target=installApp)

t2 = Thread(target=inputEvent)

t1.start()

t2.start()

if __name__ == '__main__':

t1 = Thread(target=installApp)

t2 = Thread(target=inputEvent)

t1.start()

t2.start()

我用了第三种方法完美解决这个问题。


原创,转载请注明出处。

上一篇下一篇

猜你喜欢

热点阅读