安卓自动化测试的时候,总是要浪费时间在填写 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 指令实例。非常感谢