Коллеги, доброго дня!
Немного предыстории: есть старый проект, который пока что поддерживается, для который тестировался ранее исключительно вручную без какого-то ни было тест-плата - просто все подряд.
Для тестирования на тестовой площадке выкладывается новый релиз, который заменит в последствии текущую версию на бою. Т.е., тестовых данных там нет по определению. На этой же тестовой версии пишутся автотесты и, как вы уже догадались, чтобы что-то протестировать, приходится изощряться с подбором данных.
Например, есть поиск по базам данных. Есть автотест, который заполняет все поля формы и проверят, что поиск выполнен удачно. Критерием удачности здесь является: 1) появляется таблица с результатом; 2) таблица содержит данные в колонках. Но есть сложности: 1) БД обновляется и то, что выдавало результат раньше, с новым релизом может не выдавать ничего - тест фейлится; 2) Нет возможности проверить, что в таблице с результатом находятся все подходящие под критерии фильтра данные.
Или вот тесты с профилем. Подразумевается, чтобы тестировать чтото в профиле, нужно, чтобы этот профиль был. И сейчас мне приходится уповать на то, что тест по созданию профиля не упадет, тогда и тесты внутри профиля будут выполняться. А если упадет...
Параллельно сейчас делается версия проекта 2.0. Для нее хочется сделать все более-менее грамотно с организационной точки зрения. Я понимаю, что текущий подход неверен и крайне хрупок, тесты получаются зависимые друг от друга.
Я понимаю, что нужно тестировать, что с чем сравнивать, но у меня нет ожидаемого результата в виде заранее определенных данных в БД (профили, результаты поиска и т.п.). И вот здесь я подхожу к вопросу: вот у нас случился релиз, нужно перформить автотесты, есть площадка для тестирования. Она уже должна включать все необходимые тестовые данные? Или же она может быть развернута как и сейчас (копия боевой с улучшениями), но перед каждым тестом (где требуется наличие тестовых данных) мы делаем какой-то инжект в БД с нужными нам данными? Или как это вообще происходит по-правильному?
Для мержа используем гитлаб, там же делается сборка.
Для тестов используется связка Python (Pytest) + Selenium WD
Очень прошу не рекомендовать найти толкового спеца - вопрос не в этом, а в том, как наладить процесс самостоятельно в конкретном случае (=