2015-08-10 3 views
-1

Я пытаюсь запустить специальный тест только в сетке селена. В настоящее время мой концентратор и 2 узла работают на одном компьютере. HUB - Java -jar селен-сервер автономных-2.47.1.jar -ролевого Концентратор -hubConfig DefaultHub.jsonСеленовая сетка/TestNG - Запуск специального теста только в сетке

УЗЕЛ 1 - Java -jar селен-сервер автономный-2.47.1.jar -ролевой WebDriver -nodeConfig DefaultNode.json -Dwebdriver.chrome.driver = chromedriver.exe

УЗЕЛ 2 - Java -jar селен-сервер автономный-2.47.1.jar -ролевого WebDriver -nodeConfig DefaultNode.json - порт 7575 -Dwebdriver.chrome.driver = chromedriver.exe

У меня есть следующие тесты, и я o nly нужно испытание 3 для того чтобы побежать в сетке. Все остальные испытания должны работать в нормальном режиме

@Test 
public void simpleTest1(){ 
    getDriver().get(baseUrl); 
    Assert.assertEquals("Google", getDriver().getTitle()); 
} 

@Test 
public void simpleTest2(){ 
    getDriver().get(baseUrl); 
    Assert.assertEquals("Google", getDriver().getTitle()); 
} 

@Test 
public void simpleTest3(){ 
    getDriver().get(baseUrl); 
    Assert.assertEquals("Google", getDriver().getTitle()); 
} 

Ниже приведены мои настройки и рушить методы

@BeforeMethod 
public void setUp() throws MalformedURLException { 
    nodeURL = "http://localhost:4444/wd/hub"; 
    DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
    driver = new RemoteWebDriver(new URL(nodeURL), capabilities); 
} 

@AfterMethod 
public void afterTest(){ 
    driver.quit(); 
} 

public WebDriver getDriver(){ 
    return driver; 
} 

Можно ли запустить определенный тест только в селене сетке. Здесь я не хочу использовать parallel = "tests" в файле testng.xml с момента его применения ко всем упомянутым в нем тестам.

+0

У меня есть вопрос, почему вы хотите запустить, что только на сетке? И почему у вас есть сетка и несколько узлов на одной машине? – Shamik

+0

Предположим, у нас есть набор тестов, и есть один тест, который требует проверки параллельного сценария регистрации [EX: Если один пользовательский логин другого пользователя должен выйти из системы]. Так что конкретный тест должен проверяться в двух экземплярах браузера, где я использую сетку. В настоящее время я запускаю оба узла и концентратор на одном компьютере, так как я могу легко его проверить. – Kasun

ответ

0

Таким образом, вам нужно открыть несколько экземпляров браузера одновременно с пониманием вашего вопроса. И цель сетки - не запускать несколько браузеров на одном компьютере. Этого можно легко добиться, создав несколько экземпляров драйверов, используя многопоточность. Пожалуйста, пройдите через это answer. Итак, у вас может быть один тестовый пример и создать два экземпляра веб-драйвера и проверить этот сценарий в них.

Использование сетки для этого не является правильным, на мой взгляд.

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

Сетка позволяет:

  • масштабе путем распространения тестов на нескольких машинах (параллельное выполнение)
  • управлять несколькими средами из центральной точки, что позволяет легко запускать тесты против огромной комбинации браузеров/ОС.
  • минимизирует время обслуживания сетки, позволяя реализовать пользовательские перехватчики для использования виртуальной инфраструктуры для экземпляра .

Пожалуйста, ознакомьтесь с this для получения дополнительной информации

+0

Чтобы быть более конкретным, если ваша тестовая среда поддерживает Selenium Grid в целом, вы можете запустить некоторые из своих тестов локально, используя альтернативный локальный сетковый селен.Вы можете выполнить то, что вам нужно, зарегистрировав различные узлы сетки, которые предоставляют разные возможности браузера ... тогда каждый из ваших тестов будет использовать любую сетку, соответствующую их потребностям. – djangofan

Смежные вопросы