Я использую Selenium для тестирования html-страниц java-веб-приложений (на самом деле JSP). Для моего веб-приложения требуется поток для доступа к каждой странице (это небольшое веб-приложение для онлайн-игр), например: чтобы перейти на страницу B, вам нужно перейти на страницу A, ввести текст и нажать кнопку, чтобы перейти на страницу B. Очевидно, что у меня уже есть некоторые тесты для проверки правильности работы страницы A.
Я хотел бы написать больше тестов, чтобы проверить, что после тестов для запуска страницы я получу тесты для запуска страницы (и так далее для остальных приложений). Короче говоря, определите некоторый порядок в моих тестах как-то.
После многих чтений о тестировании за последние несколько дней я не могу найти ничего интересного по этому конкретному вопросу. Поэтому я прошу совета сейчас.
Возможные решения, которые я определил:
-
Определите (в том же тестовом классе) методы тестирования для страницы A, затем проверьте методы тестирования B. Затем закажите выполнение методов тестирования. Но мы знаем, что JUnit (но TestNG) не позволяет упорядочивать выполнение тестовых методов, см. SO question selenium-junit-tests-how-do-i-run-tests-in-a- тест-в-последовательного порядка
-
Группировка всех тестов (для страницы A, стр. B и т.д.) по одному методу тестирования. Но я читал это плохо, см. Вопрос SO: junit-one-test-case-per-method-or-multiple-test-cases-per-method. Неужели это плохо при проведении теста на селен? Я видел, как какой-то код делает это, поэтому я предполагаю, что это может быть не так.
-
Группировка всех тестов (для страницы A, страница B и т.д.) по одному методу тестирования, но используйте класс JUnit ErrorCollector: ErrorCollector позволяет выполнять упорядоченные проверки одним и тем же методом и дает конкретное сообщение об ошибке, если оно не выполняется, но пусть метод (следовательно, проверки) работает до конца. Это решение кажется мне слишком "жестоким".
-
Использовать класс JUnit TestSuite: он запускает тест, указанный в пакете в классах тестирования заказа, определен в пакете. Таким образом, это предполагает наличие независимых тестовых методов для проверки страницы A в тестовом классе (скажем, TestA), затем все тестовые методы для проверки страницы B в тестовом классе (скажем, TestB) и т.д. Затем вставьте те, которые содержатся в наборе тестов, например @SuiteClasses ({TestA.class, TestB.class, TestC.class,...})
-
Используйте класс JUnit TestSuite в сочетании с классом JUnit ErrorCollector. Ну, так как мы можем, вы можете захотеть Групповой тест на страницу в разных классах, а поверх этой групповой страницы проверяет "зоны" с помощью ErrorCollector. Это решение может быть очень полезно, если у вас очень плотная веб-страница или другие причины.
-
Достаточно радикальный: используйте другой инструмент, например TestNG, чтобы иметь доступ к таким функциям, как упорядочение методов тестирования.
Примечание. Я предполагаю, что некоторые из них порекомендуют последнее решение (перенести на TestNG), но я хотел бы услышать другие идеи/мнения, связанные с JUnit. Как и в случае, если я работаю в команде, которая неспособна (по какой-то причине) перейти на другую структуру тестирования, то как бы они справились с этой проблемой при тестировании?