QTP与Selenium - 比较

时间:2011-01-23 14:16:25

标签: testing selenium compare qtp test-framework

我有一个使用.net技术创建的应用程序/产品。该产品具有GUI,使用Web API(应用程序服务器上的SOAP)连接到数据库。大多数测试都是针对DB中的值执行的,而其他测试可能属于可用性,性能等。因此,要执行的测试中有60-70%要验证DB中的值是否正确显示在GUI上,其他人测试GUI是否在需求规范中按预期工作。

测试的另一个方面还将是使用DB和GUI测试后端应用服务器接口。因为这将使我们能够确定,如果App Server正在向GUI发送错误值,或者它是具有错误值的DB!

除了以附加下拉菜单项的形式添加新功能以及这些菜单项的其他页面之外,产品UI的变化不大。

考虑到上述情况,哪种框架更合适? QTP或Selenium或其他商业/开源工具?

(成本不是主要问题,浏览器兼容性或操作系统也不是。系统安装在Windows Server上,并且数据库兼容。)

5 个答案:

答案 0 :(得分:14)

我们有一个围绕Selenium构建的验收测试'框架'来测试我们的app,它有一个与java + db后端对话的flex UI。

我们可以轻松地将Selenium集成到我们现有的测试和持续集成基础架构中,因为我们可以在java中编写脚本并使用junit来驱动测试。这些测试也由开发人员编写和维护。我们还使用dbunit在每次测试之前设置数据库。

我们的测试部门决定采用QTP。他们展示了我们围绕Selenium建造的基础设施,但他们发现很难理解。我知道他们有一个全职的专职人员来编写测试并维护它们。

由于我不知道您的具体情况,我只建议您考虑以下事项:

  • 谁在编写和维护测试?
  • 套房是否会成为更大型基础设施的一部分?

硒是一个很好的选择......

  • 您有开发人员负责编写和维护测试
  • 您需要将这些测试作为更大型基础架构的一部分
  • 您确定不需要在浏览器之外进行太多测试
  • 您认为您可能希望测试Windows以外的其他浏览器和其他平台
  • 你想要一些免费的东西

QTP可能是一个不错的选择......

  • 你有更少的代码苛刻的人写作和维护测试(虽然我不确定Selenium IDE是否很难为非编程人员学习)
  • 如果您需要在浏览器之外进行重要测试

article也可能对您有帮助。

我认为很明显哪一个我更喜欢,但你需要决定什么最适合你的情况。

答案 1 :(得分:3)

我认为您最好的选择将是HP针对GUI和非GUI测试的新解决方案。 新解决方案是与2种产品的新集成--QTP& ServiceTest。

  1. QTP是一种已知的GUI自动化解决方案,具有增强功能,可帮助组织在GUI层自动化其应用程序。
  2. ServiceTest是一种全新的解决方案,可以自动化Web服务和其他非GUI界面。
  3. 这两者之间的集成为用户提供了一种自动化跨层应用程序的解决方案,以及不同应用程序之间的集成测试。

    您可以在HP网站上找到更多信息。

答案 2 :(得分:2)

你说的话吗?

如果您使用的是VS2010,Coded UI确实很好,作为QTP的长期用户(当然是技术方面)Coded UI是一个梦想,即使在其存在的早期阶段它也是如此强大,紧密集成到Visual Studio生态系统中,如果您可以使用它,我会高度推荐它。您可以阅读here

我的经验更受限制的另一个工具,但是我听到了很好的事情是(specflow),它可以很好地与编码的UI一起工作,以合理的方式创建和组织测试。

无论如何,可能会给你一些思考的东西!

答案 3 :(得分:2)

通过访问编程库(Java等)的大量阵列(没有双关语),我的投票将是使用Selenium-RC。但就像第一张海报一样,这需要额外的学习和维护曲线。但是一旦设置,应用程序将只受你的想象力(和编程能力:))的约束。 使用Selenium-RC(在java中)进行数据库集成很简单。我们还能够广泛使用Selenium来测量服务器响应。我确信QTP中也有黑客可以做同样的事情,但是在惠普的支持下,最近的情况是,你的赌注应该在于开源社区(和stackoverflow :))...

答案 4 :(得分:1)

我对此的看法 -

硒是一个很好的选择......

  • 如果您不需要脚本在Quality Center中。另一方面,持续集成更容易。
  • Selenium是一种较低级别的工具,功能较少,即检查点。没什么大不了的,但它还需要更多的时间来开发和维护脚本。 Selenium 3即将推出,每次新的Selenium出来,API都会发生变化,所以请准备好对旧脚本说再见(除非使用不同版本的Selenium的单独机器)。
  • Selenium是一款免费工具,但您可能会发现自己无法使用 在给定的平台或浏览器上完成某些操作只是因为 功能尚未开发。
  • 不,开发人员通常不喜欢使用selenium,尤其是Web层(浏览器自动化)。 Java的知识并没有完全理解html dom。不要与他们有时使用的JUnit混淆。
  • 大型Selenium项目看起来像Eclipse中的任何其他项目。在这种情况下,QTP方式更好,尤其是QC。
  • Java非常适合数据结构,并且是一种完整的OO语言,与VBScript不同。

QTP可能是一个不错的选择......

  • 您需要与QC集成。没有简单的支持Continiuos Integration。
  • 使用QTP,大型基础设施项目看起来更清洁。 QTP具有Web层 描述与代码分离设计(包含html的GUI文件) 脚本使用的元素的属性)。所有库文件都保存在 QC和测试数据存储在excel文件中(按最佳实践)。
  • VBScript在Windows上很棒:与QTP API一起,您可以非常强大地访问Win API并直接访问HTML DOM。
  • QTP支持5年前的旧代码,是的,他们有客户支持。
  • 上市时间少于Selenium。当您需要通过xpath或文本点击链接时,您无需搜索论坛...您只需单击即可。还有chekpoints和其他
  • 形式的额外功能

在开始针对不同浏览器开发自动化测试脚本之前,请三思而后行。当涉及GUI缺陷时,自动化确实很短。几乎所有特定于浏览器的缺陷都是样式,布局(GUI)。功能缺陷显示的值不正确,或者非工作控制是可在1个平台上识别的功能缺陷。