当前位置: 首页 > 面试题库 >

使用Webinator + Selenium,SpecFlow和NUnit的多个浏览器测试

谈桐
2023-03-14
问题内容

我正在使用Selenium驱动程序使用WebinatorSpecFlow + NUnit开发ASP.NET MVC
3应用程序。我在使用Chrome(使用chromedriver)和Internet Explorer运行并行测试时遇到问题。

每当我通过Webinator在Selenium中通过同一个会话同时运行两个测试时,当我向页面发送任何点击动作时,IE似乎都会挂起。

我无法使用此处建议的解决方案,因为SpecFlow会自动生成底层的C#代码。我的解决方案的设计像这样(完整的代码可以作为一个要点):

_multipleBrowsers.RunTest(web => web.GoToUrl("http://localhost/PROJECT/Authentication/Registration"));

发生的是,我为需要测试的每个浏览器实例化了一个新的IWebManager。然后,我使用浏览器实例调用委托动作。它是这样的:

        foreach (var web in _webManagers)
        {
            Debug.WriteLine("Running test with " + web.Config.Browser);

            action(web);
        }

这样,测试几乎可以并行运行。它弹出一个浏览器,执行操作,然后另一个浏览器,依此类推。

关于如何解决此ChromeDriver问题有任何想法吗?我应该针对多个浏览器使用SpecFlow更改测试方法吗?

参考文献:

  • webinator
  • specflow
  • nunit
  • ChromeDriver

问题答案:

您可以在更简单的只是使用

然后使用标记@Browser:IE编写功能

@Browser:IE
@Browser:Firefox
Scenario: Add comments
       Given I navigated to /guinea-pig
       And I have entered 'This is not a comment' into the commentbox
       When I press 'submit' 
       Then my comment 'This is not a comment' is displayed on the screen

目前,这是我发现的最佳解决方案,因为它还可以在所有浏览器中进行测试,而无需在所有特定浏览器中进行测试



 类似资料:
  • 问题内容: 我正在寻找一种推荐/最有效的方式来使Selenium测试在多个浏览器中依次执行。我正在测试的网站并不大,所以我还不需要并行解决方案。 我有一个平时测试的建立方法,以及。当然,SetUp实例将使用我要测试的任何浏览器实例化一个新对象。 因此,我想以编程方式说:该测试将依次在Chrome,IE和Firefox上运行。我怎么做? 编辑: 这可能会有所帮助。成功构建后,我们将使用CruiseC

  • 问题内容: 我有一种创建2个远程Web驱动程序的方法。一个带有chrome,另一个带有Firefox: Driver.cs 然后我有一个Test类: } 问题是当Driver.Intialize被调用时,它无法同时运行chrome和firefox。我要发生的是,调用Init方法时,它将启动两个浏览器并在每个浏览器中运行测试方法。 问题答案: 我目前使用NUnit的方式。我遇到了同样的问题,找不到使

  • 我正在探索硒网格,用于在多个浏览器上执行测试。我已经按照在线教程配置了集线器和节点。我已经创建了一个测试脚本。 这是测试脚本的代码: 我的目标是在多个浏览器上运行此测试,我已经添加了所需的功能,如火狐, 感谢任何帮助

  • 问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文

  • 问题内容: 我是硒测试的新手。我想针对Internet Explorer,Firefox,Opera和Chrome在多种浏览器上运行。我必须遵循什么方法。大家能否建议我这是最好的过程。 硒Web驱动程序是否支持多种浏览器??? 我们已经编写了登录脚本。它可以分别在Firefox,Chrome和Internet Explorer中成功运行。但我想按顺序为那些多个浏览器运行它。 问题答案: 在此之前,

  • 问题内容: 我正在编写一个webapp,其中包含适用于Firefox和chrome的浏览器插件组件。我当前的测试系统使用通过Selenium IDE创建的一系列Selenium测试。 是否可以为Firefox和chrome(也可能是其他浏览器)安装,激活和删除selenium浏览器插件? 我认为最大的担忧是安装/启用浏览器插件需要重新启动浏览器,我不确定是否可以通过selenium关闭。 通过访问