使用appium框架执行Android自动化测试时,如果移动端程序发生了异常,期望有相应的log辅助分析,于是想到了需要测试过程需要打印logcat,实践了以下的方法:
方法1:执行自动化测试时,同时打开另外一个cmd,用来抓取日志,以下是使用python脚本或直接在命令行获取logcat日志实例:
1)python(log文件名加上了当前时间):
#encoding:utf-8
import os
import time
import re
testdir=r"D:test"
now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
logcatname=testdir+"\"+now+r"logcat.log"
cmd="adb logcat -v time >%s" %(logcatname)
os.popen(cmd)
2)cmd窗口命令行
adb logcat -v time >保存文件的目录文件名.txt
测试结束时,ctrl+c终止
方法2:使用subprocess
import subprocess
import time
调用:
now =
time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time())) #获取当前时间
filename ="D:/test/logs/"+now+r"log.txt"
#日志文件名添加当前时间
logcat_file =open(filename,'w')
logcmd ="adb logcat -v time"
Poplog =subprocess.Popen(logcmd,stdout=logcat_file,stderr=subprocess.PIPE)
使用完后:
logcat_file.close()
Poplog.terminate()
实施过程中,出现过logcat日志为空的情况,后来把Poplog.terminate()放到最后,就符合预期了,在放日志的路径下,可以看到相应的log文件:
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hdandan2015/article/details/78416530
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。