1

現在、Selenium Webdriver を使用しており、C# を使用して Visual Studio 2012 でテストを開発しています。次のコードを使用して、リモート テストを正常に実行しました。

public static void Test_RemoteWebDriver()
       {
        string url = "http://11.11.11.11:4444/wd/hub";

        DesiredCapabilities ieCapibility = DesiredCapabilities.InternetExplorer();
        ieCapibility.SetCapability("ignoreProtectedModeSettings", true);
        IWebDriver driver = new RemoteWebDriver(new Uri(url), ieCapibility);
        driver.Navigate().GoToUrl("http://www.google.com/");           
        driver.Quit();
       }

ここでやりたいことは、1 台のマシンをオートメーション コントローラーとして使用し、複数のリモート マシンでテストを実行することです。明確にするために、コントローラー マシンに Selenium コードを配置したいのですが、複数のリモート マシンでテストを実行できるようにしたいと考えています。どうすればいいですか?私も NUnit を使用してテストを実行していますが、これが並列テストの最適なソリューションではない可能性があることは理解しています。リモート Selenium テストを実行するのに最適なフレームワークは何ですか? 助けてくれてどうもありがとう、ジョン

4

2 に答える 2

2

しばらく経ったので、ここで私がやったことがあります。最終的に NUnit を使用してテストを実行しました。これで、自動化によって NUnit ファイルと Selenium ファイルの両方がリモート マシンにコピーされ、そこで自動化が実行され、結果ファイルがコントローラー マシンにコピーされます。私のニーズにうまく機能します。ジョン

于 2013-09-17T13:49:27.747 に答える
0

私が行ったことは、これが最善のアプローチであるかどうかはわかりませんが、次のように、appsettings セクション内の app.config でテストする各サーバーのエントリを追加することです。

 <!-- Server URLs to test  -->    
<add key="ApplicationUrl_DEV" value="http://localhost:44404"/>
<add key="ApplicationUrl_TEST" value="http://testserver:44404"/> 

そして、テスト クラスで、属性を次のように追加します。

[TestFixture("ApplicationUrl_DEV", "DEV")]
[TestFixture("ApplicationUrl_TEST", "TEST")]
public abstract class Executer // Test class

クラス内の各テスト メソッドは、'TestFixture' 属性ごとに 1 回、N 回実行されます。この後、クラス コンストラクターをオーバーロードする必要があります。

protected Executer(string urlKey, string environment)
{
     BaseUrl = ConfigurationManager.AppSettings[urlKey];
     Environment = environment;
}

このシナリオでは、urlKey が現在の TestAttribute の最初の値であり、environment が 2 番目の値です。したがって、これを使用して、現在のサーバーの URL を取得し、それをベース URL として使用します。

BaseUrl = ConfigurationManager.AppSettings[urlKey];
Environment = environment;

ロギング目的の「環境」。

于 2013-08-13T16:28:40.520 に答える