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();         }     } }


发布了17 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/actionwind/article/details/51913928