【问题标题】:Appium how to get adb logcatAppium如何获取adb logcat
【发布时间】:2015-04-17 22:22:11
【问题描述】:

我想知道是否有人知道我可以在使用 Appium for android 移动设备运行自动化测试时获取 logcat 的方法。我正在使用 Java,并且在 windows 环境中。

有什么想法吗?谢谢!!

【问题讨论】:

    标签: java logcat appium


    【解决方案1】:

    你可以使用这个实现:

    List<LogEntry> logEntries = driver.manage().logs().get("logcat").getAll();
    

    在退出驱动程序之前。然后只需将列表打印到外部文件。

    该方法看起来像这样:

    public static void captureLog(AppiumDriver driver, String testName)
        throws Exception {
        DateFormat df = new SimpleDateFormat("dd_MM_yyyy_HH-mm-ss");
        Date today = Calendar.getInstance().getTime();
        String reportDate = df.format(today);
        String logPath = "C:\\automation_capture\\";
        log.info(driver.getSessionId() + ": Saving device log...");
        List<LogEntry> logEntries = driver.manage().logs().get("logcat").filter(Level.ALL);
        File logFile = new File(logPath + reportDate + "_" + testName + ".txt");
        PrintWriter log_file_writer = new PrintWriter(logFile);
        log_file_writer.println(logEntries );
        log_file_writer.flush();
        log.info(driver.getSessionId() + ": Saving device log - Done.");
        }
    }
    

    【讨论】:

    • 知道我该怎么做吗?
    • 我在原帖中添加了一个函数作为示例。
    • 您可能想要添加 logLevel 的用途规范。
    • 当然,你可以在这里找到它:stackoverflow.com/questions/25457858/android-log-levels
    • @EyalSooliman 你能告诉我如何使用按标签名称过滤吗?我只需要获取我的应用程序的日志。
    【解决方案2】:

    但要小心!函数 .getTimestamp() 用于单个 LogEntry 返回不正确的值

    List<LogEntry> adbLogs = driver().manage().logs().get("logcat").filter(Level.ALL);
    log.info("First timestamp: " + adbLogs.get(0).getTimestamp());
    log.info("Last timestamp: " + adbLogs.get(adbLogs.size()-1).getTimestamp());
    

    输出(有点格式化):

    第一个时间戳:1 514 841 545 766

    最后一个时间戳:1 514 841 594 154

    真实logcat的一部分:

    1514841545767 01-01 19:39:48.570 bla-bla-bla-first-record

    1514841594154 01-01 23:19:53.440 bla-bla-bla-last-record

    【讨论】:

      【解决方案3】:

      你可以使用:

      Process process = Runtime.getRuntime().exec("//Users//.....//.....//android-sdk-macosx//platform-tools//adb logcat -d");
      

      【讨论】:

        猜你喜欢
        • 2011-10-25
        • 1970-01-01
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 2015-04-17
        • 2017-03-20
        • 2015-11-02
        • 1970-01-01
        相关资源
        最近更新 更多