我如何实现这种情况?

时间:2018-01-06 15:17:44

标签: selenium testng

我有一个项目,我使用selenium grid,Selenium,testng,并且我遇到了这种情况:我想在不同的机器中同时运行所有测试,我的代码在任一节点上运行此测试购买。

<suite name ="Default suite" thread-count="4" parallel="tests">
    <test name="LOGIN TEST">
        <parameter name="browserName" value="chrome"/>
    <parameter name="url" value="http://localhost:4444/wd/hub"/>
    <parameter name="version" value="1.2"/>
        <classes>
            <class name="tests.loginTest.LoginTest">
      //i have 4  test methods here
            </class>
        </classes>
    </test>
    <test name="LOGIN TEST">
        <parameter name="browserName" value="chrome"/>
    <parameter name="url" value="http://localhost:4444/wd/hub"/>
    <parameter name="version" value="1.3"/>
        <classes>
            <class name="tests.loginTest.MainPageTest">
      //i have 4 test methods here
            </class>
        </classes>
    </test>
</suite>
@BeforeMethod
@Parameters( {"browserName","url","version"})
static WebDriver createInstance(String browserName, String url,String version) throws IOException {

    System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\chromedriver.exe");
        WebDriver driver = null;
        if (browserName.toLowerCase().contains("chrome")) {
            DesiredCapabilities  cap = new DesiredCapabilities();
            cap.setBrowserName("chrome");
    cap.setVersion(version)
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap);
            return driver;
        }
        return driver;
    }

1 个答案:

答案 0 :(得分:0)

创建一个类似下面的json文件。

CONTINUATION

在使用集线器机器注册节点时使用它。

  {
    "capabilities": [
        {
            "browserName": "chrome",
            "maxInstances": 2,
            "seleniumProtocol": "WebDriver"
        }
    ],
    "configuration": {
        "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "maxSession": 2
    }
}

根据您的要求更改maxSession和maxInstance计数。