从 adb logcat 捕获输出
Capture output from adb logcat
我正在自动化一个 Android 应用程序,我需要能够在 运行 进行自动化测试时捕获日志。我试过使用终端仿真器,但这似乎只提供控制台日志。接下来我尝试使用
log = subprocess.check_output(["adb", "logcat"])
但是当我这样做时,我的自动化脚本无限期停止(大概是因为它在 logcat 捕获完成后等待继续),这对我不起作用,因为我需要 logcat在后台 运行,而我的脚本是 运行ning。所以也许 'Popen' 是要走的路,然后通过管道输出?谢谢!
日志总是"running in the background",就看你有没有看。相反,我会建议,当您需要日志转储时,使用
adb logcat -d
它将转储当前拥有的内容,然后退出。
所以在测试开始时 运行:
subprocess.call(shlex.split('adb logcat -c'))
清除日志。
所以最后(在任何重启之前),转储日志:
log = subprocess.check_output(shlex.split('adb logcat -d'))
with open("loggy.file", "w") as f:
f.write(log)
我正在自动化一个 Android 应用程序,我需要能够在 运行 进行自动化测试时捕获日志。我试过使用终端仿真器,但这似乎只提供控制台日志。接下来我尝试使用
log = subprocess.check_output(["adb", "logcat"])
但是当我这样做时,我的自动化脚本无限期停止(大概是因为它在 logcat 捕获完成后等待继续),这对我不起作用,因为我需要 logcat在后台 运行,而我的脚本是 运行ning。所以也许 'Popen' 是要走的路,然后通过管道输出?谢谢!
日志总是"running in the background",就看你有没有看。相反,我会建议,当您需要日志转储时,使用
adb logcat -d
它将转储当前拥有的内容,然后退出。
所以在测试开始时 运行:
subprocess.call(shlex.split('adb logcat -c'))
清除日志。
所以最后(在任何重启之前),转储日志:
log = subprocess.check_output(shlex.split('adb logcat -d'))
with open("loggy.file", "w") as f:
f.write(log)