Что мне нужно сделать, это создать тестовые примеры пользовательского интерфейса для нашего приложения, и мы решили использовать Selenium с TestNG (мы все еще открыты для других вариантов, если есть значительные преимущества).
Тесты, которые мы пытаемся создать, - это тесты, в которых несколько пользователей взаимодействуют друг с другом с помощью приложения . По сути, нам нужно, чтобы несколько пользователей одновременно входили в наше приложение и выполняли различные действия. Существует связь между действиями пользователей, поэтому им необходимо синхронизировать свое взаимодействие в некоторых точках (например, пользователю нужно подождать, пока другой пользователь выполнит действие, прежде чем он сможет выполнить свое действие). Это означает, что там также должна быть какая-то общая информация между пользователями (я просто думал о совместном использовании объекта, который позаботится о точках синхронизации).
Как мне структурировать мой сценарий, где мне нужно описать действия различных пользователей, которые будут работать параллельно с использованием TestNG?
Есть ли лучшая структура для этого или шаблон, который решает эту проблему? Любые предложения приветствуются! Спасибо.
EDIT:
Лучшее, что я мог до сих пор делать, - это создать тест, в котором каждый метод @Test
выполняет действия каждого пользователя, а затем создать пакет, в котором я определяю, что методы теста должны выполняться параллельно. Пример:
public class MultiUserTest {
@Test
public void user1Interaction() {
User user1 = new User();
// user1 performs actions
}
@Test
public void user2Interaction() {
User user2 = new User();
// user2 performs actions
}
}
Затем создайте Test Suite, где я указываю, что методы MultiUserTest
должны выполняться параллельно.
Однако мне не очень нравится это решение. Мне не нравится тот факт, что я полагаюсь на конфигурацию XML (Test Suite), чтобы описать правильное поведение моего теста (что не будет очевидным, если взглянуть на код Java). Мне также не нравится тот факт, что я не смогу просто запустить тест, используя плагин TestNG на Eclipse, выполнив «Run As - TestNG Test». Опять же, любое предложение очень приветствуется. Спасибо!