如何将webSite参数传递给SeleniumGrid实例

时间:2010-12-02 09:28:52

标签: c# selenium mbunit selenium-grid

我正在使用 C# MBunit selenium Grid ,我需要针对3种不同的环境Dev,QA和PROD运行相同的脚本。我在 Selenium网格中启动了3个不同的遥控器,但是如何将不同的网站网址传递给这些实例?我需要一个实例到Dev站点,另一个实例到QA,另一个到PROD。

1 个答案:

答案 0 :(得分:0)

这是使用TestNG的示例。在您的单元测试文件/脚本中,您将看到如下内容:

public class LoginTest {
    private static final HUB_URL = "http://theGridHubServer/wd/hub";

    @Parameters({ "appUrl" })
    public void loginTest(@Optional("http://theTestServer/login/") final String appUrl) {

    // ... create RemoteWebDriver object / connections / capabilities here and execute test
}

要并行执行它们,您需要配置一个如下所示的TestNG XML配置文件:

<suite name="Login Test Suite" parallel="tests" verbose="1" thread-count="8">
     <test name="Dev">
        <parameter name="appUrl" value="http://theDevServer/login"></parameter>
        <classes>
            <class name="package.to.your.test.class.LoginTest" />
        </classes>
    </test>
      <test name="QA">
        <parameter name="appUrl" value="http://theTestServer/login"></parameter>
        <classes>
            <class name="package.to.your.test.class.LoginTest" />
        </classes>
    </test>
    </test>
      <test name="Prod">
        <parameter name="appUrl" value="http://theProdServer/login"></parameter>
        <classes>
            <class name="package.to.your.test.class.LoginTest" />
        </classes>
    </test>
</suite>

然后,您将XML文件作为TestNG测试运行,并假设您至少有三个Webdriver客户端节点具有与您定义的WebDriver匹配的功能,这三个测试将被发送到集线器,然后集线器将它们发送出去与客户端节点并行,每个测试执行都使用不同的URL。

希望这有帮助!