2012-09-29 15 views
3

我是Selenium的新手,已经花了大约一周的时间使用IDE。到现在为止还挺好。但是,我们的应用程序的其他部分涉及重拖放功能,我不太确定......这引起了我的问题...... WebDriver可以做什么类型的特定事情,IDE不能做?我阅读了Selenium的首页,并且知道WebDriver可以进行更“强健”的测试,但我不完全清楚在这种情况下什么是强大的手段?更长?更多功能?通过IDE使用WebDriver有哪些优点?

我在找什么类型的特定测试可以运行WebDriver无法在IDE中运行?并且它们中的任何一个与drag-n-drop有关?这将告诉我是否继续使用IDE或切换的决定。我认为从一开始就使用某些东西比创建大量测试然后切换更好。

非常感谢。

回答

4

您可以使用所选语言的全部功能。例如,使用IDE时,您坚持使用IDE的API,但是如果您明确选择使用WebDriver,则可以将它与C#结合使用,并使用C#的全部功能(如LINQ)。

一些IDE命令不是直接用WebDriver转换的。

您可以将纯WebDriver测试集成到CI(持续集成)服务器中。

它不仅限于Firefox,而IDE(因为IDE仅在Firefox中可用)。

您可以更容易地改进和扩展Selenium。例如使用扩展方法和继承。 (例如,扩展Selenium以便无论何时找不到某个元素,都会占用该页面的屏幕截图)

它会更健壮,因为IDE并不总是会为您提供最可靠的查找元素的方法。例如,如果您需要的元素嵌套在表格中,那么IDE将提供的XPath将直接推断为特定的表格行和单元格。

例如是这样的:

//table[1]/tr[1]/td[2]/table[1]/tr[1]/td[3]/a[1]/b 

是不是世界上最可靠的XPath。那些没有任何XPath或自动化测试知识或者Selenium如何工作的人会坚持使用它,然后浪费数小时来弄清XPath查询失败的原因。其他人会改变它,只是使用XPath作为基本查询。

如果您希望您的开发人员和/或测试开发人员使用Selenium,请直接使用WebDriver,IDE通常应用于那些没有太多编程知识的人员(如某些测试人员)。它会更像是使用完全成熟的语言而不是脚本编程(毕竟,IDE生成的脚本纯粹是HTML文件)。这个想法通常是针对那些没有太多编程知识的人来简单地打'玩',让Selenium来完成这项工作。

拖放适用于IDE和WebDriver。

Selenium中的大部分开发(看起来)都会扩展WebDriver代码,IDE可能会留下一些新功能。

直接使用WebDriver,您还可以使用单元测试框架(通常是NUnit与C#或Junit/TestNG for Java)的完整功能。这允许为每个浏览器重复测试(即,e在Chrome,Firefox和IE中重复测试)或在测试前后(即添加用户成员,创建用户,设置其他测试数据)定义某些逻辑。

如果使用编程语言而不是脚本语言(即WebDriver使用编程语言编写,IDE脚本只是HTML文件),开发人员可能更倾向于提供帮助。将它纳入您的解决方案并将其作为夜间构建过程的一部分有助于确保开发人员帮助您进行测试。

想一想,另一个例子是一个错误已被修复,但是却引入了一个新的错误,导致你的测试失败。谁来负责修复测试?你或他们?让它直接使用WebDriver,他们只需查找Selenium的源代码并找出API使用情况。使用IDE,它实际上是一个调用一些javascipt的HTML文件。没有太多的文件。总结一下:如果你没有太多的编程经验,可以学习一门语言,直接使用WebDriver,或者直接使用IDE。要么完成这项工作。

0

IDE不能用于严重的自动化。我会主动学习API并将它与Java/C#/ Python一起使用。它会帮助你产生一些良好的自动化,并且会很好地回报。

您可以随时使用IDE了解代码是如何生成的。

相关问题