Android UiAutomator自動化測試時一個儲存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(); } } }