vuk*_*icb 5 testing selenium cross-platform webdriver cross-browser
我是使用WebDriver进行自动化测试的新手,因此我只想澄清一些问题.在几页上,我看到了在不同平台上执行WebDriver测试的示例,只是将这些测试用于浏览器或操作系统的功能.
capability= DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setPlatform(org.openqa.selenium.Platform.ANY);
Run Code Online (Sandbox Code Playgroud)
要么
capability= DesiredCapabilities.internetExplorer();
capability.setBrowserName("iexplore");
capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
Run Code Online (Sandbox Code Playgroud)
如下所述: 使用Java和TestNG在WebDriver上同时在不同的操作系统和浏览器上执行测试
所以,如果我理解正确的话,实际上可以通过使用Selenium提供的库来运行测试并验证不同操作系统和浏览器上的测试?
如果是这样,这些测试对于典型的跨浏览器/平台html/JavaScript问题有多准确?
谢谢
这是一个很好的问题.我将尝试将其分解为更小的信息包,以便对老的专业人士和新手都有意义.
对于初学者,可以为希望运行测试的所有不同浏览器/操作系统组合使用单独的驱动程序.缺点是您必须为每个浏览器的驱动程序进行一些(尽管通常是最小的)代码调整.这也意味着打破DRY原则.要了解有关编写此类测试的更多信息,请查看此文档.(另请注意,如果您希望通过CI在Jenkins之类的内容上对每个构建运行这些测试,则需要在自己的硬件上使用从属服务器运行实际的浏览器,但这些更多是DevOps关注的问题.)
更常用于您提到的目标类型(并在链接到的其他帖子中引用),Selenium Grid是一个允许多个测试实例在远程计算机上的不同Web浏览器中运行的服务器.面向此的更多介绍文档在这里,更多前瞻性文档在这里.
在本地或在云中运行: 使用Selenium Grid,您将采用以下两种方式之一.
这个Sauce Labs页面和测试机器人在这里显示了一个很好的"在Java中看起来可能是什么样的",因为它提供了一个在线服务.
Selenium可以用多种语言编写: Selenium遵循WebDriver API,对于C#,Java,Perl,PHP,Python,Ruby,JavaScript(节点)或其他语言,您仍然可以在任何这些语言中编写测试脚本(并且它们提供了一些这些的"框架" 正式,有的则是社区驱动),并且仍然有运行测试在所有现代浏览器中运行稳固.
关于移动设备 有过一些很好的讨论,在这里讨论如何"贴近真实的东西",你希望你的手机浏览器的测试是,因为iPhoneDriver和AndroidDriver主要是基于通过WebView中使用,这是不太接近真实的东西.他们现在发现自己被ios-driver,Selendroid和Appium所取代.
所以要回答我认为你正在接受的事情,
...只需使用Selenium提供的库,就可以运行测试并验证不同操作系统和浏览器上的测试
答案是您可以使用Selenium Grid和在线服务,或者您必须使用基本的Selenium/Selenium Server 以及许多其他库来测试所有现代浏览器和操作系统组合,但我相信很多商店都会这样做因为他们有经验和专业知识来完成它.
一次编写和测试浏览器的备用(非硒)选项: 如果您有一个具有JavaScript经验的团队,并且您希望在没有Selenium开销的情况下实现跨浏览器测试的相同目标,则使用Sauce Labs自动化JavaScript单元测试(以前的浏览器Swarm)将是一个不错的选择.
归档时间: |
|
查看次数: |
3745 次 |
最近记录: |