1

私はC#MBunit、およびselenium Gridを使用しており、3 つの異なる環境 Dev、QA、および PROD に対して同じスクリプトを実行する必要があります。Selenium gridで3 つの異なるリモート コントロールを起動しましたが、それらのインスタンスに異なる Web サイトの URL を渡すにはどうすればよいですか? 開発サイトに 1 つのインスタンス、QA にもう 1 つ、PROD にもう 1 つのインスタンスが必要です。

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 クライアント ノードが少なくとも 3 つあると仮定すると、これら 3 つのテストがハブに送信され、ハブはそれらを並行してテスト実行ごとに異なる URL を使用するクライアント ノード。

お役に立てれば!

于 2011-12-29T22:21:41.590 に答える