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();
       }

我现在要做的是使用一台机器作为自动化控制器,并在多台远程机器上执行测试。澄清一下,我想在我的控制器机器上拥有 Selenium 代码,但能够在多台远程机器上运行测试。我该怎么做呢?我也在使用 NUnit 来运行我的测试,但我知道这可能不是并行测试的最佳解决方案。运行远程 Selenium 测试的最佳框架是什么?非常感谢您的帮助,约翰

4

2 回答 2

2

已经有一段时间了,所以这就是我最终要做的。我最终使用 NUnit 来运行测试。现在我的自动化将 NUnit 和 Selenium 文件复制到远程机器,在那里运行自动化并将结果文件复制回控制器机器。很适合我的需要。约翰

于 2013-09-17T13:49:27.747 回答
0

我所做的,我不确定这是否是最好的方法,是在 app.config 的 appsettings 部分中为我要测试的每个服务器添加一个条目,如下所示:

 <!-- 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

类中的每个测试方法将执行 N 次,每个“TestFixture”属性执行一次。在此之后,您必须重载类构造函数:

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

在这个场景中,urlKey 是当前TestAttribute 的第一个值,environment 是第二个。所以,有了这个,我得到了我当前服务器的 URL,并将它用作我的基本 URL:

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

和“环境”用于记录目的。

于 2013-08-13T16:28:40.520 回答