в шаг неудобно аттачить, потому что надо знать, что скрины есть, шаг надо открывать, потом сам скрин
а так если тест упал, то в нём будет видно типо тут скриншот, а тут логи
в шаг неудобно аттачить, потому что надо знать, что скрины есть, шаг надо открывать, потом сам скрин
а так если тест упал, то в нём будет видно типо тут скриншот, а тут логи
прошу обратить сюда внимание, если вам логи не нужны - не пытайтесь тогда с ними работать
так-то логи помогают понять, где ошибка:
да и вообще, у меня на проекте в баг желательно прикладывать реквест айди, скрины, ссылки на тз, .har файл из браузера
так что получить что-то ещё на этапе упавшего автотеста - весьма неплохо
Это неудобно, если не пользоваться вот этим пакетом: GitHub - Noksa/Allure.NUnit: C# NUnit Allure with improvements and SpecFlow3 adapter
А если пользоваться, то достаточно передать лямбдой что делать в случае если в шаге случилась ошибка
Александр, вам и так памятник надо при жизни ставить за развитие дотнет веб тестирования
Всё правильно вы говорите.
Я тоже разработчиков приобщил к тому, чтобы они смотрели отчеты аллюра.
В итоге для них очень удобно, если есть консольный лог браузера, который даст им информацию о том, где проблемное место.
А так же прикладывается видос теста, если у него статус не passed.
А все эти разговоры о том, что автотестирование не должно этим заниматься - ну хз.
Прикрутить логи браузера - 5-10 минут.
Почему бы это не сделать для упрощения поиска ошибок для своих коллег?
Я когда слышу такие заявления как человек написал выше, понимаю что нет там общей цели в коллективе.
Обычно общая цель - сделать продукт качественным и быстро доставляемым к конечному пользователю.
А у кого-то цели видимо другие на работе.
А у кого-то цели видимо другие на работе.
Разделять сферы ответственности. И устанавливать рамки.
опишите ваш flow разработки ui и как вы, будучи тестировщиком, в нем участвуете? я правильно понимаю, что разработчики как-то автоматически получают информацию о том, чем вы занимаетесь в браузере?
У меня как-то проще получилось)
Вначале инициализации драйвера
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
capabilities.setCapability("goog:loggingPrefs", logPrefs);
Затем прикручиваю логи к allure
@Attachment(value = "Browser network log", type = "text/plain")
public static String ABrowserLogNetwork() {
LogEntries logs = WebDriverRunner.getWebDriver().manage().logs().get("performance");
String logsBrowser = "";
for (LogEntry le : logs) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(le.getMessage());
//String prettyJsonString = gson.toJson(je);
if (gson.toJson(je).contains("webSocketFrame")) logsBrowser = logsBrowser + gson.toJson(je);
}
return logsBrowser;
}
@Attachment(value = "Browser console log", type = "text/plain")
public static String ABrowserLogConsole() {
List logList = Selenide.getWebDriverLogs(LogType.BROWSER);
StringBuilder sb = new StringBuilder();
for(Object line : logList) {
sb.append(line);
sb.append("\n");
}
return sb.toString();
}
И вызываю эти функции после тестов)
я игрался с этими перформанс логами, и у меня не получилось, может не так гуглил
у вас в логах там с кодами ответов и вот этим всем добром?
а, так ещё и джава, эти советы я видел, у меня не взлетало почему-то
У меня это выглядит вот так. Поговорил с разработчиками их устраивают такие логи)
Единственный нюанс, на firefox network ничего не возвращает
Странно, у меня довольно быстро взлетело
Вопрос, каким образом получать Performance лог только с конкретным типом, например, xhr?
конкретно в моём кейсе у меня json, в котором нужное я ищу по jpath
посмотрите как у вас пишется лог, есть ли в нем то, что хотите, и уже ищите нужное. наверняка это будет джейсон
а каким образом получать Response со вкладочки в Network. В общей куче их просто нет
извиняюсь если не 100% по теме в хроме можно было
полуяать перфораманс через запуск кода
надеюсь кому нибудь пригодится
есть вариант для дотнет
метод webSocketFrame отсутствует, а в тех что есть, нет ответа нужного
Это не метод, это слово, по которому я фильтровал логи, которые мне нужны!
По сути это метод который содержит в себе нужный ответ, и фильтруете как раз только этот метод. У меня такого метода нет, даже если не фильтровать логи, нужный responce у меня не отображается
Мне сказали разработчики, по какому значению фильтровать. Может у вас как-то по другому называется. Спросите у разработчиков, может они вам подскажут