13

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

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

产品 UI 没有太大变化,只是以额外的下拉菜单项和这些菜单项的附加页面的形式添加了新功能。

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

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

4

5 回答 5

14

我们有一个围绕 Selenium 构建的验收测试“框架”来测试我们的应用程序,该应用程序具有与 java + db 后端对话的 flex UI。

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

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

由于我不知道你的具体情况,我只能建议你考虑以下几点:

  • 谁在编写和维护测试?
  • 这些套件会成为更大基础设施的一部分吗?

硒是一个很好的选择,如果......

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

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

  • 您编写和维护测试的精通代码的人较少(尽管我不确定 Selenium IDE 是否难以为非编码人员学习)
  • 如果您需要在浏览器之外进行大量测试

这篇文章也可能对你有所帮助。

我认为很明显我更喜欢哪一个,但您需要决定哪种方式最适合您的情况。

于 2011-01-23T20:53:13.227 回答
3

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

  1. QTP 是一种已知的 GUI 自动化解决方案,具有增强的功能,可帮助组织在 GUI 层中自动化其应用程序。
  2. ServiceTest 是一个全新的解决方案,可以自动化 Web 服务和其他非 GUI 界面。

这两者之间的集成为用户提供了一种解决方案来自动化跨层应用程序以及不同应用程序之间的集成测试。

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

于 2011-01-30T11:16:20.233 回答
2

你说.net?

如果你使用的是 VS2010,Coded UI 真的很好,作为 QTP 的老用户(当然在技术方面)Coded UI 是一个梦想,即使在它存在的早期它是如此强大并且紧密集成到Visual Studio 生态系统,如果你可以使用它,我强烈推荐它。你可以在这里阅读

另一个我的经验比较有限的工具是(specflow),它可以很好地与编码的 UI 配合使用,以合理的方式创建和组织测试。

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

于 2011-01-25T16:46:59.207 回答
2

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

于 2011-01-31T16:45:51.407 回答
1

我对此的看法——

硒是一个很好的选择,如果......

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

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

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

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

于 2013-10-07T21:29:30.730 回答