2014-12-04 2 views
0

В настоящее время я настраиваю селеновую сетку для запуска тестовых наборов на концентраторе и распределяю эти тесты по узлам.Selenium Grid 2: локальный концентратор и 2 локальных узла

Идея состоит в том, чтобы выполнить тест, выполненный на концентраторе, и распределить более 10 узлов, чтобы выполнить их дальше. Для стартеров и оценки сетки я настроил локальный концентратор и 2 локальных узла.

В моем тестовом классе у меня есть 4 теста при запуске теста с использованием RemoteDriver и передаче концентратора в виде URL-адреса и настроенных возможностей, он выполняет все четыре теста на Node1 и не распространяет его на Node2. Кроме того, он запускает все 4 теста последовательно на Node1. Кто-нибудь знает, что может быть неправильно здесь. Пожалуйста, найдите настройки ниже.

Конфигурация концентратора:

C:\Proto\Selserversidedjars>java 
    -jar selenium-server-standalone-2.44.0.jar 
    -role hub -hubConfig DefaultHub.json 

Узел Конфигурация 1:

C:\Proto\Selserversidedjars>java 
    -jar selenium-server-standalone-2.44.0.jar 
    -role node 
    -hub http://localhost:4444/grid/register 

Узел 2 Конфигурация:

C:\Proto\Selserversidedjars>java 
    -jar selenium-server-standalone-2.44.0.jar 
    -role node 
    -nodeConfig DefaultNode1.json 
    -port 6666 

Defaulthub.json:

{ 
    "host": null, 
    "port": 4444, 
    "newSessionWaitTimeout": -1, 
    "servlets" : [], 
    "prioritizer": null, 
    "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", 
    "throwOnCapabilityNotPresent": true, 
    "nodePolling": 5000, 

    "cleanUpCycle": 5000, 
    "timeout": 300000, 
    "browserTimeout": 0, 
    "maxSession": 5, 
    "jettyMaxThreads":-1 
} 

DefaultNode1.json:

{ 
    "capabilities": 
     [ 
     { 
      "browserName": "*firefox", 
      "maxInstances": 5, 
      "seleniumProtocol": "Selenium" 
     }, 
     { 
      "browserName": "*googlechrome", 
      "maxInstances": 5, 
      "seleniumProtocol": "Selenium" 
     }, 
     { 
      "browserName": "*iexplore", 
      "maxInstances": 1, 
      "seleniumProtocol": "Selenium" 
     }, 
     { 
      "browserName": "firefox", 
      "maxInstances": 5, 
      "seleniumProtocol": "WebDriver" 
     }, 
     { 
      "browserName": "chrome", 
      "maxInstances": 5, 
      "seleniumProtocol": "WebDriver" 
     }, 
     { 
      "browserName": "internet explorer", 
      "maxInstances": 1, 
      "seleniumProtocol": "WebDriver" 
     } 
     ], 
    "configuration": 
    { 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "maxSession": 5, 
    "port": 6666, 
    "host": ip, 
    "register": true, 
    "registerCycle": 5000, 
    "hubPort": 4444, 
    "hubHost": ip 
    } 
} 

Теперь после того, как эти настройки конфигурации, мой хаб запускается на порту 4444, узел 1 запускается в 5555, узел 2 запущен в 6666. В моих тестах TestNG, я пытаюсь выполнить 4 теста. Учитывая, что у меня есть несколько тестов для запуска в одном классе, можно ли распространять эти тесты по нескольким узлам или нескольким экземплярам на одном узле?

Любая помощь по «тому, как выполнить несколько экземпляров в Node1 и распространять тесты (скажем, более 10 тестов) на Node2 в этой ситуации», будет высоко оценена.

Заранее благодарен!

ответ

0

Выполнение серийно или параллельно зависит от того, как вы запускаете свои тесты и просто не происходит автоматически, просто используя сетку. Сетка просто помогает распределять тесты по различным узлам - если тесты отправляются серийно, они будут распространяться поочередно, если отправляться параллельно, он будет распространяться на разных узлах.

Возможно, вы можете использовать TestNG для выполнения своих тестов параллельно или вы можете рискнуть реализовать свой собственный параллелизм.

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

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

+0

благодарит за быстрый ответ! Можете ли вы, пожалуйста, пояснить код запуска файловой системы? – startedFromTheBottom

+0

В чем отличие использования параллельных = "тестов" против параллельных = "методов" в testuite. Мы имеем до метода и после метода в каждом тестовом классе с несколькими тестами. – startedFromTheBottom

+0

Пожалуйста, поднимайте новые вопросы, а не в комментариях - помогает людям искать ответы. test test for тег в xml, который может состоять из любого количества классов, методов и т. д.Методы - каждый метод @Test –

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