AutoTestProjects第一个模块python控制adb,获取adb的连接状态
一.adb安装
adb是安卓自带一个架构,我们用来测试移动端必不可少的,adb的安装和环境配置我就不在这里说了,大家自行搜索.
二,我们先创建目录ADB,新建一个adb_devices的模块,此模块只是用来判断设备的连接状态
原代码如下:
import subprocess
"""
判断adb的连接状态
"""
def check_adb_status(device_id=None):
"""
out执行结果 成功返回0
info 执行输出结果
:param device_id: 设备id
:return:
"""
out, info = subprocess.getstatusoutput("adb -s " + device_id + " get-state")
print(out, info)
if out == 0:
if 'device' in info:
print("[INFO] ADB is on")
return True
elif 'offline' in info:
print("[WARNING] ADB device is dumb")
return False
else:
print("[WARNING] ADB is abnormal: " + info)
else:
print("[WARNING] ADB is bad: " + info)
return False
if __name__ == '__main__':
check_adb_status(device_id="TNS000000044200002fd")
三 .详解:subprocess模块是比os.system()和os.popen()更高级的语法
subprocess.getstatusoutput()类介绍
Python官方推荐使用subprocess.getstatusoutput()类来调起其他命令(即创建子进程),
其具备优质的子进程管理(创建,销毁,进行标准输入,进行标准输出,进行错误输出等)特性。
为什么说他是一个类,而不是一个函数,我们在学习python过程中一定要学会阅读第三方库,请看源码截图:
四 . 调试
我们运行adb_devices.py文件得到如下结果: