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

本文解决两个问题

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的初始行为可以放在测试套件里,但是关闭行为必须放在主进程里

        



猜你喜欢

转载自blog.csdn.net/u014001964/article/details/73555509
今日推荐