当然办法是有的,我的设想如下:在每个测试用例开始时同时开始抓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(); } } }