安卓自動化結合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的初始行爲可以放在測試套件裏,但是關閉行爲必須放在主進程裏

        



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章