1

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

4

1 回答 1

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。

希望这可以帮助!

于 2011-12-29T22:21:41.590 回答