安卓自动化测试的时候,总是要浪费时间在填写 desired_caps 上面,我相信不少同学也和我一样烦恼过。最近用 pyton 写了个方法,这样使用起来就方便多了。
SDK 整个包太大,我把我的 SDK 简化了,只保留了 platform-tools 文件夹和 build-tools\23.0.2,不知道你们会不会也和我一样简化。目前我用到的 APPIUM 功能用这些还是够的

import os
localpath = os.getcwd()
print(localpath)
def getDeviceDetail():
    devicedetals = []
    #获取测试机SN名称
    deviceSN = os.popen('{0}\\myminisdk\\platform-tools\\adb shell getprop ro.serialno'.format(localpath))
    devicename = deviceSN.readlines()[0]
    print(devicename)
    devicedetals.append(devicename)
    #获取系安卓系统版本号
    version = os.popen('{0}\\myminisdk\\platform-tools\\adb shell getprop ro.build.version.release'.format(localpath))
    andriodVersion = version.readlines()[0]
    print(andriodVersion)
    devicedetals.append(andriodVersion)
    #获取测试机机型设备名称
    deviceModel = os.popen('{0}\\myminisdk\\platform-tools\\adb shell getprop ro.product.model'.format(localpath))
    deviceModelName = deviceModel.readlines()[0]
    print(deviceModelName)
    devicedetals.append(deviceModelName)
    #获取包名
    badging = os.popen('{0}\\myminisdk\\build-tools\\23.0.2\\aapt dump badging G:\\app-wap-debug.apk'.format(localpath))
    packagename = badging.readline().split("'")[1]
    print(packagename)
    devicedetals.append(packagename)
    desired_caps = {
            'platformName': 'Android',
            'platformVersion': andriodVersion,
            'deviceName': devicename,
            'app': 'G:/app-wap-debug.apk',
            'app-package': packagename,
            'app-activity':'.general.appmanage.AppStart'
     }

有一个问题 app-activity 通过 adb 也能获取,但是因为个人水平不行,在遇到 adb 指令返回结果乱码的时候不知道怎么处理,也就没有获取,不过还好够用了,如果大神看到,请给一个通过 adb 获取 app-activity 指令实例。非常感谢


↙↙↙阅读原文可查看相关链接,并与作者交流