Selenium RC和WebDriver的区别?
Selenium RC(远程控制)和WebDriver在许多方面有所不同,但关键区别在于实现层,或者简单来说,是它们的架构。
顾名思义,RC是远程控制,它通过远程控制浏览器,然后通过注入编写的自定义脚本将自动化代码注入到被测试的浏览器中。而WebDriver直接作用于浏览器,并使用浏览器的内置功能来触发测试人员编写的自动化测试。WebDriver是远程控制的继任者。
这两个框架都有共同的功能,包括在测试用例设计中使用编程语言,因为这两个框架都允许我们使用多种编程语言来开发自动化测试脚本,这简化了测试人员的工作,因为他们可以使用自己选择的语言进行编程。不仅如此,这两个框架都可以与多个浏览器一起使用来执行测试用例。
从效率的角度来看,由于其架构优势,我们可以说WebDriver比Selenium RC更快。
如果从报告的角度来看,RC具有一定的优势,因为它为用户提供自动化生成的测试结果HTML文件,而WebDriver则没有此功能。但这不必担心,因为我们有一些像TestNG这样的优秀库可以帮助我们实现相同的功能。
在无头浏览器或HTMLUnit浏览器上进行测试
WebDriver的另一个优势是它可以在HTMLUnit浏览器上使用(HTMLUnit浏览器是无头浏览器,这意味着它们对用户不可见,简单来说,它们没有GUI),由于这些原因,在HTMLUnit浏览器上进行测试更快,因为这些浏览器节省了加载页面元素所需的时间。这导致测试用例的执行时间更短。
总而言之,以下是两者之间的区别:
Selenium RC使用Selenium RC服务器与浏览器交互。它在网页加载时将JavaScript函数注入浏览器。而WebDriver则使用浏览器的内置支持直接与浏览器通信。
由于WebDriver从操作系统级别控制浏览器,因此它比Selenium RC更快。
WebDriver具有更简单、更用户友好的命令。
WebDriver可以支持HtmlUnit,而Selenium RC则不能。HtmlUnit作为无头浏览器,页面加载时间极短,因此可以加快执行周期。
WebDriver无法支持新的浏览器。新浏览器的配置需要在下一个WebDriver版本中实现。而Selenium RC则没有此限制。
WebDriver无法通过任何内置命令自动生成测试结果文件,而Selenium RC会自动生成测试结果的HTML文件。