Здравствуйте.
Слышал мнение, что при автоматизации тестирования UI надо часть шагов переносить на уровень ниже (API, BD, HTTP).
Например, при тестировании создания пользователя, создать пользователя через UI, а авторизоваться под ним через API.
Меня такой подход смущает, потому что если мне удалось авторизоваться через API, то не факт, что я смогу это сделать через UI. Например страница будет 404, или пропадет поле для ввода пароля.
Плюс такого подхода, это сокращение времени выполнения тестов. Но минусы, это пропуск важного функционала и для его заполнения придется все равно писать новые тесты.
имхо вы путаете мухи и котлеты
если есть задача писать UI автотесты, кейс - логин, то логиниться нужно через UI
создание пользователя которым нужно залогиниться это подготовка данных для тестов, И то откуда вы их берете (создан пользователь ранее, разворачивание базы, создание на лету etc ) это плод вашей фантазии не столь важно
Смысл в том, чтобы переносить на уровень ниже те шаги, которые не имеют отношения к тестируемой функциональности в самом тесте.
Другими словами если вы тестируете создание пользователя, то нужно создавать его по честному, так как это делает пользователь системы. Если тестируете авторизацию существующим пользователем, тогда создать пользователя для теста рациональнее через api.
Доречі такий перенос дає додатковий бонус. Якщо скажімо обов’язкові поля для створення юзера відсутні (баг) а API робочий то впаде лише UI тест і чітко покаже де проблема.