Получить журналы браузера и сделать тест TestNG неудачным, если есть какие-либо журналы SEVERE из консоли браузера - PullRequest
0 голосов
/ 24 сентября 2019

Я занимаюсь проектированием инфраструктуры автоматизации с использованием 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());
        }
    }

Я застрял, как я могу постоянно проверять журналы во время выполнения тестовых случаев, и если в журналах возникает какая-либо серьезная ошибка, мне нужно пометить соответствующий статус теста как FAIL.

Было бы замечательно дополнить мой фреймворк, если бы я смог разработать эту функцию логгера.

1 Ответ

0 голосов
/ 25 сентября 2019

Непрерывный опрос журналов, пока браузер в основном выполняет ваш тест, будет не только избыточным, но и может привести к нестабильным результатам.

Поэтому не рекомендуется получать журналы опросов из браузера во время тестирования.выполняется, происходит параллельно.

Что вам следует сделать:

  1. Кредитное плечо EventFiringWebDriver (см. javadocs здесь ) в качестве реализации WebDriver вместоRemoteWebDriver когда ваш фреймворк создает экземпляр webdriver.
  2. Подключите пользовательскую реализацию WebDriverEventListener (см. Javadocs здесь ), в которой вы бы идентифицировали события, которые вызывают выполнение javascript (обычно это когдазагружается новая страница), и для этих событий в рамках метода afterXXX вы вызываете свой analyzeBrowserLogs(), и если возникает СЕРЬЕЗНАЯ ошибка, выдается исключение, в результате которого TestNG автоматически проваливает ваш тест
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...