美文网首页
Android测试--用Python批量给多设备安装app应用

Android测试--用Python批量给多设备安装app应用

作者: h080294 | 来源:发表于2017-10-09 20:13 被阅读946次

今天要在多个设备上验证一个简单的问题(大概20多台设备),嫌弃一个一个安装太麻烦,简单的写了个python的脚本。
基础命令非常简单:需要指定设备名和apk的路径

adb -s devices install -r APK_PATH

思路是这样,先获取到adb devices列出的所有连接设备,至于其他异常情况直接忽略了。(因为只为快速偷懒。。。)然后为每台设备安装就好了。

    apk_path = "/Users/johnhao/Download/yourapp.apk"

    connectdeviceid = []
    p = os.popen('adb devices')
    outstr = p.read()
    print outstr
    connectdeviceid = re.findall(r'(\w+)\s+device\s', outstr)

    for device in connectdevice:
        cmd = "adb -s %s install -r %s" % (device,apk_path)
        subprocess.call(cmd, shell=True)
        print device, "Install finished"

试验发现这种方法慢的要死,设备一个接一个的安装,简直不能忍。所以自然而然地想到用threads处理。

    commands = []

    for device in connectdevice:
        cmd = "adb -s %s install -r %s" % (device,apk_path)
        commands.append(cmd)

    threads = []
    threads_count = len(commands)

    for i in range(threads_count):
        t = threading.Thread(target = excute, args = (commands[i],))

试验下,发现还可以,之前快了许多。。。效率高了不少
下面是完整的code,哪里不对或者应用错误还望指正

#!usr/bin/python
# -*- coding:utf-8 -*-
# Author:John Hao
# 把指定目录的apk安装到所有连接设备中
import os
import subprocess
import threading
import re
import time

apk_path = "/Users/johnhao/Download/yourapp.apk"

def excute(cmd):
    subprocess.Popen(cmd, shell=True)

def get_conn_dev():
    connectdeviceid = []
    p = os.popen('adb devices')
    outstr = p.read()
    print outstr
    connectdeviceid = re.findall(r'(\w+)\s+device\s', outstr)
    return connectdeviceid

def main():
    connectdevice = get_conn_dev()
    commands = []

    for device in connectdevice:
        cmd = "adb -s %s install -r %s" % (device,apk_path)
        commands.append(cmd)

    threads = []
    threads_count = len(commands)

    for i in range(threads_count):
        t = threading.Thread(target = excute, args = (commands[i],))
        threads.append(t)

    for i in range(threads_count):
        time.sleep(1)  # 防止adb连接出错
        threads[i].start()

    for i in range(threads_count):
        threads[i].join()

if __name__ == '__main__':
    main()
关注获取更多

相关文章

  • Android测试--用Python批量给多设备安装app应用

    今天要在多个设备上验证一个简单的问题(大概20多台设备),嫌弃一个一个安装太麻烦,简单的写了个python的脚本。...

  • 上传apk到android设备安装测试

    目的 App正式发布到应用商店前,在真机上进行apk的安装测试; 思路 把文件(apk)传到android设备上,...

  • 用idevicesinstaller给iOS设备安装应用APP

    现在有许许多多的工具,可以对iOS设备安装应用,但是有的太沉了,有的还是完全界面形式,那么有没有符合咱们的需求自己...

  • Android 应用在系统内的存在方式

    Android应用安装到设备中后,是怎样运行的呢? 安装到设备后,每个 Android 应用都运行在自己的安全沙箱...

  • Ad_Hoc方式打包iOS应用程序

    如果想要将做的iOS应用程序安装到自己的iOS设备上测试、或者安装到别人的iOS设备上,或者想发布到App Sto...

  • iOS的ipa安装到设备上测试

    一、背景简介 实现的需求就是将ipa包安装到设备上给运营或者测试去测试这个app 二、iTools安装 1>需要使...

  • adb 命令

    查看连接的设备 安装/卸载Android 应用 查看设备安装包名 查看安装包的路劲 查看输出日志过滤 查看应用启动...

  • Testflight内测使用

    在 app开发工作完成后,进入测试阶段,公司内部测试人员进行测试时,需要在各自设备上安装该应用,古老的方法就是Xc...

  • App not installed

    Android安装app,出现:App not installed。 用Android Studio,点击绿色按钮...

  • 测试要走高冷路线,如何完美测试产品?

    Android 开发者要测试应用发个APK安装包即可,但是对于iOS来说想要参与App的测试一直都很复杂。不过自从...

网友评论

      本文标题:Android测试--用Python批量给多设备安装app应用

      本文链接:https://www.haomeiwen.com/subject/sngpyxtx.html