Подскажите пожалуйста как правильно организовать структуру тестов в моем случае. Есть сайт доступный только залогиненным пользователям. То есть перед выполнением каждого теста надо логиниться. Сценарии относительно просты и не длинны. Проблема только в том что я не знаю как правильно организовать тесты.
Я вижу два пути:
Писать Cept тесты в виде отельных php файлов и логиниться заново в каждом тесте добавив метод логин в хелперы;
Писать Cest тесты в виде класса в котором первой фызывать функцию логин и потом каждая последующая функция в классе будет являться отдельным тестом.
Какие то следы, куки, история особого значения в моем случае не имеют.
Возможно есть какой то третий путь (к примеру как то не закрывать сессию по звершению теста?)
Если кого то разозлит мой вопрос - своей наивностью - прошу оставить его без критики. Путь начинающего автоматизатора и так достаточно тернист.
Заранее спасибо.
Мне лично кажется, что лучше всего создать StepObject с методом для логина пользователя и логинить пользователя в каждом тесте. Альтернативно метод логина можно запихнуть в _before метод в соответсвующий хэлпер класс.
Если не хочется выполнять операцию логина каждый раз, можно не то чтобы не закрывать сессию, а скопировать куки пользователя и вгружать их в каждом новом тесте. Это тоже хорошо бы сделать в хэлпере.
@davert правильно отписал, по-поводу создания стэпа для логина перед каждым сценарием. Сделайте метод
@BeforeMethod
LoginBeforeEachScenario();
И всё будет ясно и аккуратно. Вы же выполняете иммитацию реального пользователя, не вижу необходимости придумывать хаки - чтобы сэкономить 2-3 секунды.
Мне больше всего пейджобжект нравится. создаешь страницу на которой золгиниться можно, вписываешь туда и логин и пароль и функцию пишешь туда “логин”, потом перед началом каждого теста,
ЛогинПейдж::логин(); и все ок
неплохо было бы написать тест о том что незалогиненый юзер не может оратиться к определенным частям\страницам сайта
вот можешь посмотреть как может выглядеть структура