私はC#、MBunit、およびselenium Gridを使用しており、3 つの異なる環境 Dev、QA、および PROD に対して同じスクリプトを実行する必要があります。Selenium gridで3 つの異なるリモート コントロールを起動しましたが、それらのインスタンスに異なる Web サイトの URL を渡すにはどうすればよいですか? 開発サイトに 1 つのインスタンス、QA にもう 1 つ、PROD にもう 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 クライアント ノードが少なくとも 3 つあると仮定すると、これら 3 つのテストがハブに送信され、ハブはそれらを並行してテスト実行ごとに異なる URL を使用するクライアント ノード。
お役に立てれば!
于 2011-12-29T22:21:41.590 に答える