статический клиент Selenium с распараллеливанием testng

Мне сказали использовать фреймворк, использующий селен, согласно следующему соглашению:

public static SeleniumClient instance() {



if (_instance == null) {

  _instance = new SeleniumClient();

  LogHelper.instance().setInfo("SeleniumClient::instance(): Singleton created.");

}

return _instance;

}

Все тесты пишутся одинаково. Например, если бы я создавал новый тест, я бы написал вспомогательный класс, и вот как он будет использоваться:

public static PropertyManagerHelper instance() {

if (_instance == null) {

  _instance = new PropertyManagerHelper();

  LogHelper.instance().setInfo("PropertyManagerHelper::instance(): Singleton created.");

}

return _instance;

}

У меня есть селеновая сетка, которую я тоже собираюсь отправить на эти тесты. Прежде чем я зайду слишком далеко в кроличью нору, у меня есть следующие вопросы:

Как Selenium отправляет тесты в сетку? Отправляет ли он весь класс/тест или отправляет каждое действие как отдельный запрос?

На это, вероятно, ответит предыдущий вопрос, но не помешает ли это статическое использование testng запускать несколько параллельных тестов?


person qkslvrwolf    schedule 13.09.2012    source источник


Ответы (2)


Почему шаблон Singleton?

В текущем состоянии он не является потокобезопасным:

http://csharpindepth.com/Articles/General/Singleton.aspx

Я бы не предложил шаблон Singleton.

person Arran    schedule 13.09.2012
comment
Да, я бы тоже. Я собираю точки данных, чтобы доказать, что они здесь НЕ подходят. - person qkslvrwolf; 14.09.2012

Он отправляет каждую команду. Selenium не понимает, является ли это тестовым случаем или классом. Хаб получал команду и распределял по пультам.

person A.J    schedule 15.09.2012