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

Реализация валидации полей на одной странице


(Александр Чечулин) #1

Добрый день,

У меня есть несколько страниц, на которых находится примерно по 12-13 полей.
У каждого поля как минимум 2 ошибки:

  1. Поле не заполнено
  2. Поле заполнено неправильно

Чтобы дойти до этой формы нужно войти в систему.
Сейчас у меня существует один метод, для каждой страницы, с несколькими assert’ами, чтобы несколько раз не логиниться и не проходить весь путь заново.
Но иногда поля не очищаются (возможно какая-то беда с ожиданиями), и из-за этого тесты валяться.

Хотел узнать, как у вас на проектах создана проверка таких полей? Для каждой ошибки отдельный метод или также всё вместе проверяете.

Так же хотел спросить, проверяете ли вы текст самой ошибки или только её наличие на странице?


(Stan) #2

Имхо тут дело не в том как реализованны эти проверки, это лишь следствие. Копайте причину глубже, почему поля не очищаются? Что за проблема с оджиданиями?


(Александр Чечулин) #3

В проекте стоит всего одно ожидание

defaultDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

Поля очищаются методом, который пробегает по всем полям и для каждого вызывает clear()
Но при повторном внесении данных, оказывается, что предыдущее слово было не удалено.
Ну да ладно, с этим я как нибудь справлюсь.

Всё таки хотелось услышать ответ по реализации проверок, не слишком ли неустойчивая получается конструкция с большим количеством assert’ов?
Или лучше вынести разные ошибки в разные методы и несколько раз приходить на данные страницы?


(Василий Чернов) #4

Сам бы реализовал на разные типы ошибок лучше сделать отдельные проверки, а так же потом докинуть тест, которые проверяет, если на форме есть различные типы ошибок(пустое + некорректное).


(breakmt) #5

В вашей реализации, если у одного поля будет проблема и тест упадет, то остальные 10-12 полей останутся непроверенными. Это плохо. Я бы сделал так - тестовый класс для проверки полей конкретной страницы, before метод, в котором происходит переход на нужную страницу и тесты-методы по одному на каждое поле. Либо, как вариант, можно еще использовать softAssertion (но я лично его не люблю).


(Василий Чернов) #6

По идее и так можно, главное в конце обрабатывать количество ошибок и выводить результаты.


(Роман Валеев) #7

при наведении на поле ctrl+A и пусть сверху печатает, например