安卓自动化结合adb抓Log时,adb logcat的关闭问题

本文介绍了如何在安卓自动化测试中结合adb logcat处理日志问题,包括通过命令行关闭adb logcat的两种方法,以及在appium+python环境下正确抓取Log的实践。在appium自动化测试中遇到的日志抓取问题,作者推荐使用subprocess.Popen启动logcat,并通过关闭主进程来结束子进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文解决两个问题

1. 使用adb logcat时,如何通过命令行关闭

2. 使用appium结合python实现android自动化时,如何正确的抓取Log


背景:

         目前一直在做安卓自动化的东西,主要是针对项目回归测试用例进行实现。由于设计的用例,所扑捉的问题都是已经预估到的,对于未知的导致用例异常的行为并未有很好的处理,所以尝试将adb logcat与自动化结合。经验尚浅,做一个尝试,如果有朋友有更好的解决办法,希望不吝赐教。

         项目使用的是appium+python,设计了一套框架,基础是python的unittest。

         实现的时候,发现了文章初始提出的两个问题。


解决方式:

        问题一:使用adb logcat时,如何通过命令行关闭

        1. os.system('taskkill /f /t /im cmd.exe')    //这个方式比较暴力,将所有开启的cmd都关闭了
        2. os.system('adb kill-server')                    //这个关闭单个的adb,比较温和,推荐使用


          问题二:使用appium结合python实现android自动化时,如何正确的抓取Log

       1. 使用subprocess.Popen('adb logcat ’,shell=True)  //logcat后可以跟自己存储的目录

        尝试过直接使用 os.system('adb logcat'),但是执行后,测试套件里的测试用例就不执行了,还未弄清楚原因,但推荐的方法是可以直接使用的。

        由于对python子进程不是很了解,所以并未对其单独进行关闭处理,而是通过直接关闭主进程来关闭它。

        

注意:

       1. 抓log的初始行为可以放在测试套件里,但是关闭行为必须放在主进程里

        



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值