python如何获取设备ID、设备版本号和设备测试APP的appActivity

最近这段时间的工作主要是做功能交互性压力测试,测试时需要连接手机、设备来进行。

之前的压测脚本是运用appium、python来写的。由于大家对python都不熟悉,appium也是处于刚开始学习阶段,所以脚本写得有点凌乱。做压测时,脚本我只能说能跑起来,能进行简单的压力测试,如果细看代码,你会发现是乱七八糟的,看着令人头疼。

由于时间关系,测试就暂时使用的之前的脚本进行测试。目前工作已告一段落,我决定去重新梳理一遍脚本,重构一下代码。

目前对appium、python的使用仍然不是很熟练,准备先一步一步来。

今天首先完成的是运用脚本获取连接的多台设备的设备ID、设备安卓系统版本号、设备测试APP的appActivity信息,为之后appium启动多个APP做准备。

代码如下:

import os
import re

class GetDeviceMsgs:

    # 获取连接设备的设备ID
    def getDeviceIds(self):
        # 获取连接的设备信息 ['List of devices attached\n', '20080411\tdevice\n', 'GWY0216C15005982\tdevice\n', '\n']
        Ids = list(os.popen("adb devices").readlines())
        # 存储设备ID
        deviceIds = []
        # 使用正则获取连接设备的设备ID 20080411  GWY0216C15005982
        for i in range(1, len(Ids)-1):
            id = re.findall(r"^\w*\b", Ids[i])[0]
            deviceIds.append(id)
        return deviceIds

    # 获取设备信息,即设备ID,设备版本号,设备的appActivity
    def getDeviceMsgs(self, deviceIds):
        # 存储所有设备的设备信息,即设备ID,设备版本号,设备的appActivity
        deviceMsgs = []
        # 获取连接设备的版本号、appActivity
        for i in range(0, len(deviceIds)):
            id = deviceIds[i]
            # 获取连接设备的安卓系统版本
            versionMsg = list(os.popen('adb -s {} shell getprop ro.build.version.release'.format(id)).readlines())
            version = str(versionMsg).split("'")[1].split("\\")[0]
            print("adb命令获取的设备版本号为:", versionMsg)
            print("处理后获取的设备版本号为:" + version)

           # 获取连接设备测试APP的appActivity 这里是根据应用包名来获取的  APP的包名可以问开发
            activityMsg = list(os.popen('adb -s {} shell dumpsys package 替换为自己测试的APP的应用包名 | findstr 替换成自己的过滤词'.format(id)).readlines())
            activity = str(activityMsg[0]).split("/")[1].split(" ")[0]
            print("adb命令获取的appActivity为:", activityMsg)
            print("处理后获取的appActivity为:" + activity)
            deviceMsgs.append({'deviceId': id, 'deviceVersion': version, 'appActivity': activity})
        return deviceMsgs

备注信息:

  1. adb shell dumpsys 指令的用法


    image.png
  2. 代码中获取设备测试APP的appActivity,使用的是 adb shell dumpsys指令,过滤词我使用的是welcome,因为从开发那里获知测试APP的appActivity里面包含welcome,大家根据自己的实际情况来运用。

你可能感兴趣的:(python如何获取设备ID、设备版本号和设备测试APP的appActivity)