簡體   English   中英

如何使用 chrome 運行一些測試用例並使用 C# mstest 與 Firefox 一起運行?

[英]How can I run some test cases with chrome and come with Firefox using C# mstest?

總共有10個測試用例。 我需要用 chrome 運行一些測試用例,比如說用 chrome 運行 1-3 和 6-8 個測試用例,用 Firefox 運行 4-5 和 9-10 個測試用例。

幫助文件中的代碼是

static public IWebDriver GetWebDriverC(browserType brt)
        {
            ChromeOptions cOption = new ChromeOptions();
            cOption.AddArgument("no-sandbox");
            driver = new ChromeDriver(cOption);
            driver.Navigate().GoToUrl(url);
            return driver;
            
        }

        static public IWebDriver GetWebDriverFF(browserType brt, string url, string username, string password)
        {
            FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
            service.FirefoxBinaryPath = @"path";
            driver = new FirefoxDriver(service);
            driver.Navigate().GoToUrl(url);
            bool ele1 = AutoItX.WinExists("[CLASS:MozillaDialogClass]") == 1;
            if (ele1)
            {
                AutoItX.WinActivate("[CLASS:MozillaDialogClass]");
                AutoItX.Send(username);
                AutoItX.Send("{TAB}");
                AutoItX.Send(password);
                AutoItX.Send("{ENTER}");
            }

            return driver;
        }

不同用戶的用戶名和密碼是不同的。 主文件中有多個測試用例

[TestInitialize]
        public void initilize()
        {
           Webd= Helper.GetWebDriverC(Chrome); 
        }
[Priority(0)]
        [TestMethod]
        public void 1()
        {
}
[Priority(2)]
        [TestMethod]
        public void 2()
        {
}
     .
     .
     .

[Priority(10)]
            [TestMethod]
            public void 10()
{
}
  

測試初始化​​中只有一個驅動程序是 chrome,並且在每個測試用例運行之前 chrome 都會打開。 我希望當測試用例基於某些條件運行時,如前所述,測試用例在所需的瀏覽器上運行。 如何使用 C# mstest 實現這一目標?

這里的問題是您在TestInitialize步驟中設置了 WebDriver,因此同一類中的任何測試都將使用相同的驅動程序,在本例中為 Chrome。

一種方法是為 FireFox 和 Chrome 設置單獨的測試類。

鉻測試:

public class ChromeTests
{
  [TestInitialize]
  public void initilize()
  {
    Webd = Helper.GetWebDriverC(Chrome); 
  }

  [TestMethod]
  public void 1()
  {
  }
}

火狐測試

public class FireFoxTests
{
  [TestInitialize]
  public void initilize()
  {
    Webd = Helper.GetWebDriverFF(Chrome); 
  }

  [TestMethod]
  public void 1()
  {
  }
}

替代解決方案包括:

  • 在您的測試類中有兩個 WebDriver,一個用於 Chrome,一個用於 FireFox,然后您可以在測試中決定要使用哪個驅動程序。

  • 在每個測試中創建一個新的 WebDriver 實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM