1. 程式人生 > >Android UiAutomator自動化測試時一個儲存log檔案的方法

Android UiAutomator自動化測試時一個儲存log檔案的方法

    有的網友說他們自動化測試時間比較長,全程抓取log,其log檔案達到了好幾G的大小,問有沒有辦法只在發現bug的時候抓log。
    當然辦法是有的,我的設想如下:在每個測試用例開始時同時開始抓log,當測試用例結束時,如果這個用例通過則將log檔案刪除,如果這個測試用例發現了bug則不刪log檔案,這樣每個發現了問題的測試用例都會儲存一個log檔案,便於提交給程式設計師們分析問題。抓log和刪除log的java程式碼如下:   

    String date = new SimpleDateFormat("HH.mm.ss-yyyyMMdd")     .format(new Date()) ;//全域性變數,用於獲取日期,在後面的程式中生成當次測試的BugLog資料夾 Process logProcess;

    //啟動抓log程式,並將其儲存成為一個txt檔案,將此方法用於每個測試用例的開頭     public String catchLog(String LogFileName){         File path = new File("/sdcard/");         if (path.exists()) { //驗證是否存在這個目錄             path = new File("/sdcard/BugLog"+date); //根據需要設定儲存的路徑         } else {             path = new File("/***/BugLog"+date); //根據你的手機實際路徑設定         }         if (!path.exists())             path.mkdir();                        LogFileName = path + "/" + LogFileName+".txt";         try {             logProcess=Runtime.getRuntime().exec("cmd /k adb logcat -v threadtime >"+LogFileName);         } catch (IOException e1) {             e1.printStackTrace();         }         return LogFileName;     }         //刪除Log,將此方法用於每個測試用例的結尾     public void delLog(boolean b,String LogFileName){         File file=new File(LogFileName);         if(b&&file.exists()){

logProcess.destroy();             file.delete();         }     } }