Добрый вечер. Проектирую тесты таким образом, что тестовая логика отдельно от вспомогательной. Подскажите как правильно по науке должна распологаться тестовая логика? В одном файле все тесты? или может разделять файлы по тестовым наборам - то есть сколько наборов столько и файлов с тестами? Или может быть как то ещё?
Заранее спасибо за ответы.
In my case (i use java) i put one testSuite into one class:
- Easy to do common preparation and initialization
- More easy to run several group or tests related to some specific part of app
- Possible to divide for general groups and implement specific Base class for each group
- In this way you will comply single responsibility principle
У нас так - для каждого проекта свой набор локаторов и страниц (у вас же page object pattern).
Структура самого проекта у нас простая:
…
…\p\base.py
…\p\pages.py
…\l\locators.py – локаторы. Иногда делаем несколько файлов, если локаторов много.
…\PT1010000 – некая группа тестов. 2 цифры - раздел, потом 2 цифры - подраздел, и 3 цифры - порядковый номер.
…\PT1010000\test_1010001.py
…\PT1010000\test_1010002.py
…\PT1011000 – вторая группа тестов
…\PT1011000\test_1011001.py
…\PT1011000\test_1011002.py
Выше на один каталог лежат утилиты общие для всех проектов в каталоге utl. Там хранятся скрипты для работы с файловой системой, с БД Oracle и т.д.
А раздел и подраздел это для разделения на тестовые наборы? И как определить какие тесты будут распологаться в файле 01, а какие в 02 например?
У нас специфика веб-приложения такая: есть основное меню и подменю, поэтому раздел и подраздел родились сам по себе.
Для чего так разделили? Чтобы массово запускать тесты одного типа, код ведь числовой. Да, по сути - тестовые наборы.
Как определить - какие тесты в каком файле? Строятся на основании тест-кейсов, их пишем не мы. Их тоже не стали усложнять: выделяем позитивные end-to-end сценарии, где проверка происходит только по факту совершения некой операции, негативные, и несколько на валидацию полей.
Что такое PT - это Payments and Transfers (платежи и переводы), то по коду понятно, к чему относится тест. По ним один -два теста - сквозные, положительные. Остальные - на валидацию полей. В каждом тесте ссылка на тест-кейс (сделал на вики хранение тест-кейсов, как временно-постоянное решение). В самом тест-кейсе - ссылка на jenkins. В общем - не путаемся.
Но это наш маленький полугодовой опыт ). Если вдруг в этом посте будут оптимальные решения - тоже хотелось бы послушать.