Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Выводите ли вы проверки в тестах как шаги в отчетах по тестированию?

step-object
allure
Теги: #<Tag:0x00007fedb8b08e18> #<Tag:0x00007fedb8b08cd8>

(Pavel Volkov) #1

Привет.

Выводите ли вы проверки в тестах как шаги в отчетах по тестированию?

Например, есть тест:

  1. Открыть главную страницу
  2. Перейти на форму авторизации
  3. Ввести логин и пароль
  4. Отправить форму на сервер

Если использовать Allure и аннотации @Step, то положительный отчет по тесту будет такой:

  1. Открыл главную страницу
  2. Перешел на форму авторизации
  3. Ввел логин и пароль
  4. Отправил форму на сервер

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

Тогда можно вынести проверки в хелперы и добавить к ним @Step. В этом случае отчет будет такой:

  1. Открыл главную страницу
  2. Перешел на форму авторизации
  3. Ввел логин и пароль
  4. Отправил форму на сервер
  5. Проверил, что меня перенаправило на главную
  6. Проверил, что доступен личный кабинет
  7. Проверил, что отображается мое ФИО.

(Artem Eroshenko) #2

Привет!

Да, часто эта информация довольно полезная.
Например можно написать аспект поверх assertThat и он превращать вызов этого метода в AllureStep.
Вот пример аспекта для библиотеки assertj.

Ты пользуешься стандартными junit4 ассертами?


(Pavel Volkov) #3

Привет.
Я пользуюсь стандартными ассертами и ассертами harmcrest. Есть todo перейти на assertj, т.к. мне сказали, там можно выводить разницу между коллекциями.
Спасибо за ответ.


(Artem Eroshenko) #4

Если будут еще вопросы про allrue - обращайся, я теперь буду мониторить этот тег и стараться оперативно отвечать на возникающие вопросы.


(Sergey Korol) #5

С AssertJ можно и без AOP обойтись в случае написания custom assertions на бизнес сущности. Тогда все степы будут внутри класса с ассертами.

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