Вопрос

Мы создаем Селен протестируйте кампанию в большом веб-приложении.Первое, что мы сделали, — это создали структуру, которая инициализирует данные SQL в базе данных перед тестом, запускает тест, архивирует результаты и затем очищает данные.

Мы интегрировали это в процесс Maven 2, который каждый день запускает TeamCity в специальной базе данных.

Сейчас мы настроили несколько тестов Selenium, но они используются не так, как планировалось.

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

Я хотел бы знать, есть ли большие успехи в тестировании пользовательского интерфейса, и если да, то причины этого.Ошибки сообщества также могут меня заинтересовать.

Это было полезно?

Решение

Тестируемость очень помогает.Самый большой выигрыш в тестируемости веб-приложений — это если все HTML-элементы, с которыми вам нужно взаимодействовать на странице, будут иметь уникальные и последовательные атрибуты.Если атрибуты, которые вы используете для идентификации элементов HTML (Selenium использует xpath), не являются согласованными/надежными от сборки к сборке или от сеанса к сеансу, ваши тестовые сценарии потерпят неудачу.Кроме того, эти атрибуты должны быть уникальными, чтобы инструмент автоматизации (в данном случае Selenium) мог надежно найти объект на веб-странице.

Другие советы

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

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

Я использую http-unit, у которого есть дополнительное преимущество: он работает до того, как на страницу будет добавлен какой-либо стиль.

http://httpunit.sourceforge.net/Вы можете прикрепить тесты для запуска на этапе интеграционного тестирования для maven2.

С сайта

Написано на Java, Httpunit эмулирует соответствующие части поведения браузера, включая представление формы, JavaScript, базовую аутентификацию HTTP, файлы cookie и автоматическое перенаправление страницы, и позволяет тестовым коду Java для проверки возвращенных страниц в виде текста, XML DOM или контейнеров форм , таблицы и ссылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top