我正在使用C#、MBunit和selenium Grid,我需要为 3 个不同的环境 Dev、QA 和 PROD 运行相同的脚本。我在Selenium 网格中启动了 3 个不同的遥控器,但是如何将不同的网站 URL 传递给这些实例?我需要一个实例到 Dev 站点,另一个到 QA,另一个到 PROD。
问问题
372 次
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 回答