gpt4 book ai didi

java - 获取浏览器日志,如果浏览器控制台有任何严重日志,则使 TestNG 测试失败

转载 作者:行者123 更新时间:2023-12-02 00:18:40 29 4
gpt4 key购买 nike

我正在使用 Selenium+TestNG+Java 设计一个自动化框架。我想检查浏览器日志,如果执行任何测试时有任何 SEVERE 日志,则应将测试标记为 FAIL。

我能够确定获取浏览器日志的方式并将其添加到我的内部记录器中。

public void analyzeBrowserLogs() {
String type = "browser";
List<LogEntry> entries = driver.manage().logs().get(type).getAll();
System.out.println(entries.size() + " " + type + " log entries found");
for (LogEntry entry : entries) {
//if(entry.getMessage().contains("SEVERE"))
System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
}
}

我陷入困境,如何在执行测试用例时不断检查日志,如果日志中发生任何严重错误,我需要将相应的测试状态标记为“失败”。

如果我能够设计这个记录器功能,这将是对我的框架的一个很好的补充。

最佳答案

在浏览器基本上运行测试时持续轮询日志不仅是一种过度杀伤力,而且还可能导致不稳定的结果。

因此,在测试运行时,不建议同时从浏览器获取轮询日志。

你应该做的是:

  1. 当您的框架实例化 WebDriver 时,利用 EventFiringWebDriver(请参阅 javadocs here )作为您的 WebDriver 实现,而不是 RemoteWebDriver
  2. 插入 WebDriverEventListener 的自定义实现(请参阅 javadocs here ),其中您将识别导致 javascript 执行的事件(通常是在加载新页面时),并且对于这些事件,在在其 afterXXX 方法中,您调用 analyzeBrowserLogs(),如果出现严重错误,则会抛出异常,这会导致 TestNG 自动使您的测试失败

关于java - 获取浏览器日志,如果浏览器控制台有任何严重日志,则使 TestNG 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082502/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com