黑鹰传奇攻略,扒一扒 王小小小予,高潮流很多水 粘稠图片
android系统测试,
开始测试前,我们需要先确认所测试的系统版本是否正确,
还有报bug的时候,开发需要你提供具体的系统版本信息。
还有系统打版时间等,
不同的版本修复了不同的bug,合入了不同的新功能等,
如果测试人员测试的系统版本都不对,会直接被开发怼到哭。
如何一键获取android系统版本信息呢?
一般我们通过读取/system/build.prop这个配置文件来获取,
这套方案基本适合所有的android终端设备获取系统版本信息。
build.prop是android系统中的一个重要的属性文件,
其是在版本编译时自动生成的一个属性文件,
记录了包括系统版本,系统编译时间,android版本号等,
刷机完成后,一般存储在android设备的/system/build.prop文件。
我们可以通过cat /system/build.prop命令查看这个文件.
比如魅族note5的
之前的课程,我们一直用的是os.system()函数执行命令行,
本次我们增加难度,换用os.popen()函数执行命令行,
os.popen()函数的优势是:
# coding=utf-8 import os import re #执行并读取命令行输出 info = os.popen("adb shell cat /system/build.prop").read() # 一般获的的字符串都先建议进行移除字符串头尾的空格和换行符 info = info.strip() # 获取系统版本 try: build_version = re.findall(r"ro.build.display.id=(.*)", info)[0].strip() except: build_version = "unknown" print("build version: %s"%build_version) #获取系统版本打版(编译)时间 try: build_time = re.findall(r"ro.build.date=(.*)", info)[0].strip() except: build_time = "unknown" print("build time: %s"%build_time) #获取系统原生android的版本号 try: android_version = re.findall(r"ro.build.version.release=(.*)", info)[0].strip() except: android_version = "unknown" print("android version: %s"%android_version) os.system("pause")
re.findall()函数,可以进行匹配字符串,如果匹配到这个区域(.*),
就是括号内的东西,则提取出来,返回一个匹配成功的字符串列表。
我们只提取列表里的第一项字符串,
只要是字符串,都建议进行strip()处理。
try...except是尝试去匹配,因为难免有的android设备,
可能字段不一致,导致无法匹配上任何字符串,则返回空的字符串列表,
则无法通过序号[0]访问字典导致直接报错的异常情况,
且当出现异常时,相应的系统版本信息将赋值为“unknown”,
有利于提高程序的健壮性!
# coding=utf-8 import os import re def get_info(): # 执行并读取命令行输出 info = os.popen("adb shell cat /system/build.prop").read() # 一般获的的字符串都先建议进行移除字符串头尾的空格和换行符 info = info.strip() # 获取系统版本 try: build_version = re.findall(r"ro.build.display.id=(.*)", info)[0].strip() except: build_version = "unknown" # 获取系统版本打版(编译)时间 try: build_time = re.findall(r"ro.build.date=(.*)", info)[0].strip() except: build_time = "unknown" # 获取系统原生android的版本号 try: android_version = re.findall(r"ro.build.version.release=(.*)", info)[0].strip() except: android_version = "unknown" return build_version, build_time, android_version # 一次性返回1个列表(3个变量值) build_version, build_time, android_version = get_info() print("build version: %s" % build_version) print("build time: %s" % build_time) print("android version: %s" % android_version) os.system("pause")
# coding=utf-8 import os import re class infogetter(): def __init__(self): self.build_version = none self.build_time = none self.android_version = none def get_info(self): # 执行并读取命令行输出 info = os.popen("adb shell cat /system/build.prop").read() # 一般获的的字符串都先建议进行移除字符串头尾的空格和换行符 info = info.strip() # 获取系统版本 try: self.build_version = re.findall(r"ro.build.display.id=(.*)", info)[0].strip() except: self.build_version = "unknown" # 获取系统版本打版(编译)时间 try: self.build_time = re.findall(r"ro.build.date=(.*)", info)[0].strip() except: self.build_time = "unknown" # 获取系统原生android的版本号 try: self.android_version = re.findall(r"ro.build.version.release=(.*)", info)[0].strip() except: self.android_version = "unknown" return self.android_version, self.build_time, self.android_version if __name__ == '__main__': i_obj = infogetter() build_version, build_time, android_version = i_obj.get_info() print("build version: %s" % build_version) print("build time: %s" % build_time) print("android version: %s" % android_version) os.system("pause")
确保android车机设备通过usb线与电脑连接了,adb设备有效连接,
以上代码的3种实现形式都可以直接运行,比如保存为get_info.py并放在桌面,
每次需要获取系统版本信息的时候,双击运行get_info.py,
运行效果如下(以魅族note5为例),
对比如下(安全补丁时间和系统打版编译时间是两码事)
更多更好的原创文章,请访问官方网站:
自拍教程(自动化测试python教程,武散人编著)
原文链接:
也可关注“武散人”微信订阅号,随时接受文章推送。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论