对如何使用Selenium对Asp.Net MVC应用程序进行集成测试感到困惑

问题描述 投票:0回答:0

我正在学习如何使用 Selenium 在我的 Asp.Net MVC Web 应用程序上执行集成测试,但我不确定我是否以最佳方式进行。该解决方案有两个项目:MVC 应用程序和 xUnit Test 应用程序。到目前为止,我的测试使用类固定装置在一个上下文中运行所有测试,因为首先我需要登录、导航到某个页面并执行多步骤操作,如果应用程序是每次测试都重新启动。

默认情况下,测试会从 .exe 打开一个以调试模式运行的 Chrome 实例,最终您将进入登录页面。因此,我使用 FindElements 按特定顺序运行所有测试来识别输入并像用户一样操作它。 -> 登录并确保 LiveChat 小部件存在。 -> 单击链接并确保 URL 正确 -> 填写表格并确保返回预期结果。等等

我一直读到,在相同的上下文中执行多个测试通常是不好的做法,但据我所知,这在使用身份验证的网站的 UI 测试上下文中没有意义。我研究了在当前运行的 Chrome 实例上运行 selenium 测试的方法,以便我可以启动项目、登录,然后运行测试。我发现一些文章,都使用不同的方法,似乎通过在调试模式下从 CLI 运行 chrome.exe 并从另一个 CLI 实例运行测试来确认这种可能性(因为当应用程序运行时,Visual Studio 中的文本资源管理器呈灰色)在跑...)。另外,在使用 ChromeOptions 实例化驱动程序之前添加此行:

options.DebuggerAddress = "127.0.0.1:44330";

options.AddLocalStatePreference("browser", new { 
      enabled_labs_experiments = new string[] { 
          "http-auth-committed-interstitials@2" 
      } 
});

driver = new ChromeDriver("PATH\TO\CHROME.EXE", options);

这会导致错误:

The following constructor parameters did not have matching fixture data: WebDriverFixture fixture 

invalid argument: entry 0 of 'firstMatch' is invalid
from invalid argument: cannot parse capability: goog:chromeOptions

我想做的事情可能吗?我是否会以完全错误的方式使用 Selenium,在一个上下文中以特定顺序运行所有测试?如果是这样,还有什么选择?谢谢!

asp.net-mvc selenium-webdriver xunit
© www.soinside.com 2019 - 2024. All rights reserved.