Python+APPIUM UI自動化程式碼獲取裝置資訊:devicesId、deviceName、platformVersion以及獲取測試的包的package
阿新 • • 發佈:2021-01-11
以下程式碼包含獲取單個或多個裝置資訊,為
import os, re import subprocess # 專案根路徑 BaseDIr = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) def get_app_devicesId(): # 獲取一個裝置的devicesid readDeviceId = list(os.popen('adb devices').readlines()) deviceId = re.findall(r'^\w*\b', readDeviceId[1])[0] return deviceId def get_app_devices(): # 獲取多個裝置devicesId lists = os.popen('adb devices').read() devices = lists.strip().split('\n') devices_list = [] for i in range(1, len(devices)): device = (devices[i].split('\t')[0]) devices_list.append(device) return devices_list def get_devices_version(): # 獲取單個系統版本號 cmd1 = 'adb shell getprop ro.build.version.release' deviceAndroidVersion = list(os.popen(cmd1).readlines()) deviceVersion = re.findall(r'^\w*\b', deviceAndroidVersion[0])[0] return deviceVersion def get_devices_info(devices_uuid): # 獲取多裝置資訊 devices_info = [] cmd1 = 'adb -s {} shell getprop ro.product.model' cmd2 = 'adb -s {} shell getprop ro.build.version.release' if devices_uuid: for de in devices_uuid: device_model = os.popen(cmd1.format(de)).read() deviceos_version = os.popen(cmd2.format(de)).read() devices_info.append((de, device_model.strip('\n'), deviceos_version.strip('\n'))) return devices_info # 獲取測試的包的package def get_appPackage(apkPath): appLocation = BaseDIr + apkPath if os.path.exists(appLocation): appPackageAdb = list(os.popen('aapt dump badging ' + appLocation).readlines()) appPackage = re.findall(r'\'com\w*.*?\'', appPackageAdb[0])[0] return appPackage if __name__ == '__main__': # 列印裝置資訊 devices_uuid = get_app_devices() print(get_devices_info(devices_uuid))