2017-01-30 5 views
-1

Я реализовал параллельное тестирование с использованием Selenium и Nunit для веб-приложения и хочу как-то использовать уникального пользователя для каждого теста. Я подумал, что, возможно, вы заселяете словарь пользователями для ключей и значением по 1 каждый, а затем обновляете значение словаря каждый раз, когда пользователь используется, чтобы следующий тест использовал первого доступного пользователя с 1 значением. Однако это не работает для меня. Может ли кто-нибудь рекомендовать какие-либо другие возможности для этого?Selenium, устанавливающий уникального пользователя для каждого параллельного входа

С уважением

+1

«Однако это не работает для меня» не очень информативно – Reniuz

+0

Кажется, что, поскольку тесты выполняются точно в одно и то же время, первый не успевает обновить словарь до того, как он его прочитает. – alex

ответ

1

Я думаю, что вопрос первопричина в вашей стратегии Крепеж. Если вы действительно хотите уникального пользователя на тест, вам не нужно продолжать использовать уже используемых пользователей. Я бы предложил вам посмотреть шаблон Fresh Fixture или использовать any of the others, который лучше всего вас устроит. Тесты, которые зависят от других тестов, хорошо известны. Запах теста/кода. У вас уже есть ваши тесты, которые работают параллельно, зачем возвращаться и полагаться на определенный порядок выполнения (снова зависимость) !?

В случае, если вам все еще нужно

Я думал, возможно заселение словарь с пользователями для ключей и значение 1 каждого, а затем обновляет значение словаря каждый раз, когда пользователь используется так, что следующий тест использует первого доступного пользователя с 1 значением.

Вы можете посмотреть на Object pool модели, так как она позволяет:

клиент пула будет запрашивать объект из пула и выполнять операции на возвращенном объекте. Когда клиент закончил, он возвращает объект в пул, а не уничтожает его;

И поскольку вы находитесь в стеке .Net, рассмотрите возможность использования ConcurrentDictionary.

+1

Спасибо. На данный момент я реализовал SetUpFixture и создал там словарь. По определению SetUpFixture это создается только один раз перед всеми тестами. Затем я помещаю замок в словарь для каждого теста, чтобы выбрать пользователя. – alex