Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Thucydides как пометить шаг и продолжить выполнение теста


(Игорь Артемов) #1

Добрый день есть потребность при прохождении теста пометить step его как failed или другую метку и продолжить выполнение теста.
Сейчас нашёл такое решение thucydides.ignored , но дело в том что при полной сборке отчёта в диаграмме не отображаются мои игноры а в отчете шагов отображаются . Кто сталкивался с такой проблемой и как её решили ?
Используется webdriver+thucydides+junit+maven


(Руслан) #2

а можно смысл? :slight_smile:
упавший шаг в любом случае должен валить драйвер


(Игорь Артемов) #3

Смысл есть в этом, этот тест на проверку картинок в интернет магазине , периодически картинки пропадают нужно указать где и сколько. И пройти до конца раздел. Так как реализация этого теста в цикле, то естественно надо чтобы шаг помечался и цикл шёл проверять дальше.


(Руслан) #4

а если задать ему isPresented = false -> делать дальше?


(Игорь Артемов) #5

Так а что толку главное в репорт записать а если туда прилипить любой ассерт то тогда тест упадет а я читал что есть dry mode который позволяет это делать но вот как его реализовать я не знаю


(Игорь Артемов) #6

Пока решение такое считаю сколько ошибок в одном тесте и вконце ассертом валю его если ошибки есть а в степах те что не соответствуют условию выделяю как игнор и делаю скриншот с обведенной картинкой в красный цвет. Конечно хотелось бы видеть процентное соотношение не для сьбюта а для каждого теста ну ниче пока так если есть решения предлагайте


(Pavlo Basiuk) #7

Вот одно из возможных решений для такой задачи:
https://groups.google.com/forum/#!searchin/thucydides-users/several$20asserts/thucydides-users/3q6Tmiv18r0/GeTbD6A35N8J


(heartwilltell) #8

В TestNG для этого есть софт асерты, поищите что-то аналогичное в JUnit

Хотя я вообще не понимаю зачем так мудрить - если вы хотите проверить наличие картинок. Собираете нужные вам элементы в коллекцию - пробегаете по ней циклом проверяя картинки (например выдираете из ваших элементов значение src, и посылаете get запрос по ссылке картинки, соответственно если респонс >= 400 то имейдж не отобразится) каждый зафейленый имейдж добавляете в другую коллекцию. А в конце теста просто делаете ассерт что коллекция зафейленых картинок пуста. Если она не пуста и битые картинки есть - выводите содержимое коллекции в репорт, можно и элемент привязать из которого ссылку выдернули.
Имея ссылку и элемент - для дева найти не валидный имейдж в коде - раз плюнуть.

Пишется в пару строк.
Хотя я мог не догнать что вам нужно


(Игорь Артемов) #9

Спасибо надо попробывать
не могу сказать про Testng так как не использую, в junit на сколько мне известно после асерта падает, сейчас покажу что мне надо, возможно вы правы вот ссылка
https://drive.google.com/folderview?id=0B1cu5dnmSDIgZndMa25LX25nQ1E&usp=sharing
это мой такой suite :smile:
так вот видете тест кардиган зафейлин а в самом тесте он игноре так как если ставить ассерт то он упадет а мне дальше надо , ну и скрин само собой. Так вот мне бы его пометить фейл или error чтоб он подсчитался в диграмме, сори за флуд завтра попробую… но в официальной документации я не нашел


(Александр Таранков) #10

@heartwilltell предложил отличный способ для того теста, который тебе нужен. И работает в 100 раз быстрее. Для чего тут WebDriver использовать?


(heartwilltell) #11

Можно еще проще - подключить BrowserMob Proxy и просто открывать страничку. Абсолютно все запросы пройдут через него, и если у тебя где-то покоцается статика то просто делаешь так:

for (HarEntry entry : bmp.getServer().getHar().getLog().getEntries()) {
  if (entry.getResponse().getStatus() >=400) {
    log.error("bad response from" + entry.getRequest().getUrl())
  }
}

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


(Игорь Артемов) #12

Pavlo большое вам спасибо verifyThat это нечто, очень круто, ну я так понимаю что все равно диаграмма внутри теста не будет показываться по соотношению step и failure так как тест у нас один и всеравно валится, правда всеравно большое спасибо