Testing 使用WebDriver针对不同的平台(浏览器、操作系统)?

Testing 使用WebDriver针对不同的平台(浏览器、操作系统)?,testing,selenium,cross-browser,webdriver,cross-platform,Testing,Selenium,Cross Browser,Webdriver,Cross Platform,我是一个使用WebDriver进行自动测试的新手,所以我有几个问题只是想弄清楚我脑子里的一些事情。在几页中,我看到了在不同平台上执行WebDriver测试的示例,这些测试仅针对浏览器或操作系统的功能 capability= DesiredCapabilities.firefox(); capability.setBrowserName("firefox"); capability.setPlatform(org.openqa.selenium.Platform.ANY); 或 如中所述:

我是一个使用WebDriver进行自动测试的新手,所以我有几个问题只是想弄清楚我脑子里的一些事情。在几页中,我看到了在不同平台上执行WebDriver测试的示例,这些测试仅针对浏览器或操作系统的功能

capability= DesiredCapabilities.firefox();
capability.setBrowserName("firefox"); 
capability.setPlatform(org.openqa.selenium.Platform.ANY);

如中所述:

所以,如果我理解正确的话,实际上,仅仅使用Selenium提供的库就可以在不同的操作系统和浏览器上运行测试和验证这些测试

如果是这样,这些针对典型跨浏览器/平台html/JavaScript问题的测试的准确性如何


谢谢

这是一个很好的问题。我将试着把它分解成更小的信息包,希望它对老专业人士和新手都有意义

无硒网格: 对于初学者来说,可以为您希望运行测试的所有不同浏览器/操作系统组合使用单独的驱动程序。缺点是您必须对每个浏览器的驱动程序进行一些(尽管通常是最小的)代码调整。这也意味着打破僵局。要了解有关编写此类测试的更多信息,请查看。(还要注意,如果您想通过CI在每个构建上运行这些测试,比如您需要让实际的浏览器在您自己的硬件上的从机上运行,但这些更值得关注。)

使用硒网格: Selenium Grid是一个服务器,它允许在远程机器上的不同web浏览器中运行多个测试实例,更常用于您提到的(以及您链接到的另一篇文章中提到的)目标。这方面的介绍性文档越多,前瞻性文档越多

在本地或云中运行: 使用Selenium Grid,您可以选择两种方式之一

  • 在本地运行(或在您的公司有可远程访问的机器的任何地方)
  • 使用类似酱汁实验室或测试机器人的工具
  • 在和中显示了一个很好的“在Java中可能会是什么样子”,用于让在线服务提供浏览器

    Selenium可以用多种语言编写: Selenium遵循C#、Java、Perl、PHP、Python、Ruby、JavaScript(Node)或其他语言,您仍然可以用其中任何一种语言编写测试脚本(它们为其中一些语言提供了“框架”,而其他语言是社区驱动的),并且仍然可以在所有现代浏览器中稳定运行运行运行测试

    关于移动设备 有一些很好的讨论讨论了您希望您的移动浏览器测试“接近真实的东西”的程度,因为和主要基于通过WebView的使用,而WebView不太接近真实的东西。他们现在发现自己被、和所取代

    总而言之 所以要回答我认为你的意思

    。。。只需在不同的操作系统和浏览器上运行测试和验证即可 通过使用Selenium提供的库

    答案是,您可以使用Selenium网格和在线服务,或者您必须使用base Selenium/Selenium Server和许多其他库来测试所有现代浏览器和操作系统组合,但我相信许多商店都会这样做,因为他们有经验和专业知识来实现这一点


    一次写入和跨浏览器测试的备用(非硒)选项:
    如果您有一个具有JavaScript经验的团队,并且希望在没有Selenium开销的情况下实现跨浏览器测试的相同目标,那么(以前的浏览器群)将是一个不错的选择。

    您需要实际拥有这些机器和浏览器(或使用网格)才能使其正常工作。不过,如果你能把它设置好,它们是相当准确的。谢谢。你能给我指一下正确的方向吗。在哪里可以找到关于这个主题的说明?好问题,好答案。确认一件事,浏览器Swarm()已经消失了,对吗?我现在看到的只是一个俄罗斯torrent讨论板。是的,他们已经占领了域名,但现在是,所以我会在我的答案中更新链接。嗯……不,进一步调查后,他们(浏览器群和jQuery的TestSwarm)实际上是两个不同的东西。从…起“微软与appendTo和Sauce实验室合作创建了BrowserSwarm,一个开源的、基于云的JavaScript自动测试工具。。。BrowserSwarm在很大程度上归功于Mozilla的TestSwarm,它也做同样的工作,但除非您自己设置服务器,否则它不会开放供公众使用。另一方面,BrowserSwarm允许您注册并使用其测试设施。“感谢@xpt和良好的挖掘!我本打算指向Sauce Labs解决方案,您是对的,我错误地认为它与jQuery进行了交易,但它只是由John Resig启动的一个类似的开源项目。
    capability= DesiredCapabilities.internetExplorer();
    capability.setBrowserName("iexplore"); 
    capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);