Распараллеливание тестов с запрещенным мультивходом

Добрый день!
У меня появилась проблема с параллельным запуском тестов… Сейчас опишу проблему и суть вопроса.
Пишу автотесты с помощью Selenium + C# + NUnit. Использую в основном Page Object. Запускаю и распараллеливаю тесты на локальной машине одновременно по разным браузерам. Но вот беда… На моем новом проекте запрещен мультивход в админку и cms систему с разных браузеров, т.е. я не могу зайти с разных браузеров под одним логином и паролем, по этому на этапе sign in все тесты валятся. Помогите плиз решить проблему. Заранее спасибо.

Добрый!
Так заведите больше админ-пользователей

А если у меня 50 тестов? Создавать 50 юзеров на админ и 50 юзеров на cms? Не вариант. Я думал попробовать Service Mediator pattern, но еще не пробовал его реализовывать в тестах, да и не совсем въезжаю пока как это сделать.

Значит нужно напрячь разрабов, чтоб конкретно для этого админа была возможность мультивхода!!!

В принципе, я рассматривал этот вариант, просто хотел решить эту проблему самостоятельно, без участия девов.

Варианты:

  1. Завести разных пользователей
  2. Завести разные инстансы приложения
  3. Переписать тестируемое приложение
  4. Не ранить параллельно

Поскольку это особенность приложения, то средствами автотестов это никак не решить.

А как это проверяется IP и агент? Если агент то можно подставлять разные/одинаковые значения.

Возможно стоит взглянуть в сторону докеров? Разворачивать окружение таким способом, чтобы в каждом контейнере у вас была возможность заходить под одним и тем же админ пользователем. Я не силен в этом, поэтому помочь предметно не смогу, может кто поскилловей напишет понятней :slight_smile:

Правильный подход: каждый тест создаёт юзера через фабрики BeforeTest и уничтожает его в AfterTest. В этом случае каждый Ваш тест получается независимым. В ином случае у Вас всегда возможны ложные баги, получающиеся из-за одной сессии на 50 юзеров.

У меня такая же ситуация - по одному уник юзеру на тест сьют. в результате можно распаралелить на тест сьюты.

В чем причина такого решения? Проблема решается в разной степени костылями. Если задача тестов: именно распараллелить кейсы, которые НЕ выявляют работы в одновременных сессиях, то наиболее кошерно - из под нескольких админ учеток делать тест. При этом нужно понимать, что у админов, наверняка, будет общий shared ресурс и тесты могут перестать быть независимыми друг от друга. В этом случае нужно будет завести несколько версий вебсайта и соответственно баз данных для него. Параллелизация - непростая по ресурсам и костылям штука, и если разработчики не идут вам на выручку, это не есть хорошо.

А в чем состоит проблема? база имеет ограничения на 20 пользователей максимум? Рандомизируйте и автоматизируйте процесс создания и удаления модели пользователя и админа. И можно будет хоть 1000 админов и пользователей завести. Главное, чтобы в рамках теста контекст теста всегда подчищался и сделанный для теста пользователь уничтожался.

1 лайк