移动测试基础 提供一个自动获取安卓 desired_caps 信息的方法和简化 SDK 方法

醉清风 · 2016年05月17日 · 最后由 陈恒捷 回复于 2016年05月18日 · 1834 次阅读

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

共收到 8 条回复 时间 点赞

分享是好的。但麻烦使用 markdown 。

不会用的话可以看 排版说明 。好文章应该配上好的排版~

没有大神。。。请查看https://testerhome.com/markdown

#1 楼 @chenhengjie123 额,刚开始编辑的时候不小心把```python 删掉了,然后也忘记预览了。。现在加上了。看看可以通过了吗

通过了。

PS:package name 和 app-activity 的获取方法你可以看看 appium 的实现。当你没给这两个参数时,它会通过解析 apk 文件自动获取这两个参数。

#5 楼 @gaofating 你可以看 appium 的 log, 他已经把这些事情都做了. 未填写的都会自动被 appium 补充上.

#6 楼 @seveniruby 谢谢大神

#7 楼 @gaofating 再次强调,没有大神。。。

9楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册