2017-05-04 128 views
1

我找到了在多個瀏覽器上逐一運行測試的方法,但我找不到使用硒網格的方式,以便在多個瀏覽器上並行運行我的測試(使用C# )。 這是我使用的是什麼目前:在多個瀏覽器上並行運行測試

using NUnit.Framework; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Firefox; 
using OpenQA.Selenium.IE; 
using System.Threading; 

namespace SeleniumTests 
{ 
[TestFixture(typeof(FirefoxDriver))] 
[TestFixture(typeof(InternetExplorerDriver))] 
public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new() 
{ 
    private IWebDriver driver; 

    [SetUp] 
    public void CreateDriver() { 
     this.driver = new TWebDriver(); 
    } 

    [Test] 
    public void GoogleTest() { 
     driver.Navigate().GoToUrl("http://www.google.com/"); 
     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Bread" + Keys.Enter); 

     Thread.Sleep(2000); 

     Assert.AreEqual("bread - Google Search", driver.Title); 
     driver.Quit(); 
    } 
    } 
} 

Run Selenium tests in multiple browsers one after another from C# NUnit

回答

2
  1. 在Visual Studio中的測試資源管理應該是對線的左側三條線爲圓形的按鈕,右邊的箭頭(如果你把鼠標懸停在它上面,說'並行運行測試')。確保選中此項(選中時,其背景將與測試瀏覽器面板顏色不同)。

  2. 對於每個要並行添加的測試,請添加屬性Parallelizable。所以你的方法上面的東西看起來像[Test]將變成[Test, Parallelizable]

  3. 額外 - 這不適用於你,但將適用於一些人,所以我會添加它。如果您的驅動程序是一個靜態實例(如Singleton),則需要使用[ThreadStatic]對其進行註釋,否則將在同一驅動程序上調用不同的測試。

+0

我應該在代碼中插入哪些代碼,以便在Chrome和IE上運行測試?和我上面的例子一樣嗎? –

+0

你剛剛把我留在我頭上的頭髮@理查德城堡。建議3是我正在尋找的。謝謝! –

相關問題