TS-*_*TS- 44 selenium automated-tests htmlunit
我试图更好地理解测试框架,并一直在研究Selenium.我之前使用过HTMLUnit,主要是因为我需要从网站或类似网站上删除一些信息.
在编写测试自动化的背景下,Selenium与HTMLUnit的优点/缺点是什么?在我看来,Selenium设置比HTMLUnit更复杂,虽然同时有一个用于Selenium的HTMLUnitDriver,我认为它的行为方式与HTMLUnit本身完全相同?
Selenium显然提供了更强大的框架,它有Selenium RC用于pararel测试,它也有不同的浏览器驱动程序可以使用 - 虽然当你使用浏览器驱动程序时,测试实际上会打开/关闭浏览器应用程序而不是无头.
可能是我没有正确理解Selenium.一些方向和指针会很棒!
另一个注意事项 - 一个单独的问题 - 我也在考虑在移动浏览器上进行自动化测试,我看到Selenium有一个IPhoneDriver,但是这不是无头测试,因为它需要实际的iOS模拟器.
反正在移动网站上进行无头测试吗?更改用户代理是否足够?我已经看到一些关于改变用户代理的帖子似乎有他们自己的挑战,例如.在Selenium RC中设置用户代理
非常感谢!
eug*_*kov 67
好吧,会尝试解释细节上的差异.
谈到并行测试,最好使用硒网格.硒RC和硒网格的基本概念.
您可以在此处了解更多详情
关于selenium webDriver的一些话:
Selenium 2.0的主要新功能是集成WebDriver API.WebDriver旨在提供更简单,更简洁的编程接口,同时解决Selenium-RC API中的一些限制.Selenium-WebDriver的开发是为了更好地支持动态网页,页面元素可能会在不重新加载页面的情况下发生变化.WebDriver的目标是提供精心设计的面向对象的API,为现代高级Web应用程序测试问题提供改进的支持.
与Selenium-RC相比,WebDriver如何"驱动"浏览器?
Selenium-WebDriver使用每个浏览器对自动化的本机支持直接调用浏览器.如何进行这些直接调用,以及它们支持的功能取决于您使用的浏览器.有关每个"浏览器驱动程序"的信息将在本章后面提供.对于熟悉Selenium-RC的人来说,这与你习惯的完全不同.Selenium-RC以相同的方式为每个支持的浏览器工作.它在浏览器加载时将"javascript函数"注入浏览器,然后使用其javascript在浏览器中驱动AUT.WebDriver不使用此技术.同样,它使用浏览器内置的自动化支持直接驱动浏览器.
WebDriver和Selenium-Server
您可能需要也可能不需要Selenium Server,具体取决于您打算如何使用Selenium-WebDriver.如果您只使用WebDriver API,则不需要Selenium-Server.如果您的浏览器和测试都在同一台机器上运行,并且您的测试只使用WebDriver API,那么您不需要运行Selenium-Server; WebDriver将直接运行浏览器.有一些原因可以将Selenium-Server与Selenium-WebDriver一起使用.
Selenium-WebDriver的驱动程序 WebDriver是应该编写测试的关键接口的名称,但有几个实现.这些包括:
HtmlUnit驱动程序 这是目前WebDriver最快,最轻量级的实现.顾名思义,这是基于HtmlUnit.HtmlUnit是一个基于Java的WebBrowser实现,没有GUI.对于任何语言绑定(除了java),Selenium Server都需要使用此驱动程序.
优点
缺点
HtmlUnit驱动程序中的JavaScript没有一个流行的浏览器使用HtmlUnit(Rhino)使用的JavaScript引擎.如果您使用HtmlUnit测试JavaScript,结果可能与这些浏览器有很大不同.当我们说"JavaScript"时,我们实际上是指"JavaScript和DOM".虽然DOM是由W3C定义的,但每个浏览器都有自己的怪癖和DOM实现的差异以及JavaScript与它的交互方式.HtmlUnit有一个令人印象深刻的完整DOM实现,并且对使用JavaScript有很好的支持,但它与任何其他浏览器没什么不同:它有自己的怪癖和W3C标准和主要浏览器的DOM实现的差异,尽管它能够模仿其他浏览器.使用WebDriver,我们必须做出选择; 我们是否支持HtmlUnit的JavaScript功能,并冒着团队遇到问题的风险,这些问题只能在那里显现,或者我们是否禁用JavaScript,因为我们知道有越来越多的网站依赖JavaScript?我们采用了保守的方法,默认情况下在使用HtmlUnit时禁用了支持.随着WebDriver和HtmlUnit的每次发布,我们重新评估这个决定:我们希望在某些时候默认在HtmlUnit上启用JavaScript.
要深入研究webDriver的setUp,请参阅此内容
来自HtmlUnit文档: HtmlUnit不是通用的单元测试框架.它特别是一种模拟浏览器以进行测试的方法,旨在用于另一个测试框架,如JUnit或TestNG.
因此,总结一下Selenium和HtmlUnit的区别: HtmlUnit是一个基于Java的WebBrowser实现,没有GUI和模拟浏览器进行测试的方法,Selenium-WebDriver使用每个浏览器对自动化的本机支持直接调用浏览器.我们可以看到HtmlUnit提供的API没有GUI自动化的可能性,而WebDriver提供了内部浏览器的自动化可能性.
谈到移动自动化,Selenium还有一个iPhone驱动程序 iPhone驱动程序wiki文章 和Android驱动程序 Android驱动程序维基文章
另见本演示文稿
不幸的是,当我处理网络自动化(没有移动设备)时,我不能给你我的移动驱动程序评估工作经验.也知道Cucumber
(自动化工具)在移动自动机中很受欢迎.看到这个和这个.
希望现在对你来说更清楚了=)
归档时间: |
|
查看次数: |
40908 次 |
最近记录: |