【发布时间】:2010-12-29 07:14:18
【问题描述】:
我的测试团队目前使用 QTP 通过 GUI 进行测试,但与任何依赖接口的自动化测试套件一样,它比直接与代码交互的自动化测试更脆弱。我正在尝试了解有关 Siebel 和 Siebel 工具的更多信息,以更好地了解我们如何能够在 GUI 下进行测试,但想听听更专业的人的意见,以了解这是否可行。
【问题讨论】:
标签: unit-testing automated-tests testing qtp siebel
我的测试团队目前使用 QTP 通过 GUI 进行测试,但与任何依赖接口的自动化测试套件一样,它比直接与代码交互的自动化测试更脆弱。我正在尝试了解有关 Siebel 和 Siebel 工具的更多信息,以更好地了解我们如何能够在 GUI 下进行测试,但想听听更专业的人的意见,以了解这是否可行。
【问题讨论】:
标签: unit-testing automated-tests testing qtp siebel
这真的取决于你想测试什么,我猜。
我经常使用 Siebel Java Data Bean (JDB) 来访问 Siebel。您基本上连接到 Siebel 服务器并执行与 eScript 非常相似的代码。这意味着您可以创建记录、调用工作流等等;基本上你可以在 eScript 中做的所有事情。这可能会有所帮助。这将应用所有常见的验证、运行时事件和事件。
一旦您在 BusComps 或 Business Services 或其他地方的某些脚本访问需要 UI 上下文的数据(例如 TheApplication().ActiveBusObject() 或 TheApplication().ActiveApplet()),这种方法就会失败,因为 Siebel Data Bean 没有没有 UI 上下文。
另一个缺点是您必须连接到 Siebel 服务器。这意味着您必须将 SRF 部署到开发服务器,然后才能运行测试。如果 JDB 可以连接到您的本地实例,那肯定会好得多,但据我所知,这是不可能的。不过,请查看 Bookshelf 中的 Object Interfaces 指南。有多种方式可以连接到 Siebel,而不仅仅是 Java。
如果您对此有任何疑问,请告诉我。我可能会发布一些关于如何连接到 Siebel 服务器等的示例代码。
【讨论】:
现在 QTP 是最好的方法 - 它仍然是 PITA,但实际上没有其他东西可以测试完整的 Siebel Web 客户端。这是因为 Siebel UI 是通过带有专有 Active X 和 Java 控件的 Internet Explorer 提供的,因此您确实需要一个定制包来测试它。
因为 UI 是对业务对象层(通过数据 Beans / COM 等进行访问)的重新解释,而不仅仅是抽象,所以在该层进行测试是没有用的,除非在少数单元中测试用例(例如当您在 Siebel 中有复杂的脚本时)。
如果您将客户端 URL 的结尾(当然首先登录到 Siebel)更改为“SWEcmd=GotoPageTab&SWEScreen=Accounts+Screen&SWESetMarkup=XML”,那么您会看到很多 XML 标记,然后由专有控件消耗 - 您可能认为这是构建自动化工具的一种很酷的方式,但事实并非如此(我已经尝试过)。
如果您想真正使用适当的 UI 测试工具,例如 Selenium,则必须测试 HTML Siebel Web 客户端 - 这是一个不使用 Active X 或 Java 的“瘦”“标准交互”UI ...它的 UI 控件少了很多,但它在完整的 Siebel Web 客户端(又名高交互性 Siebel Web 客户端,简称 HI)上的工作原理基本相同,并且在 Firefox 中也能工作!
【讨论】:
你看过Oracle Application testing Suite。它带有用于测试 Siebel 的预构建加速器,这使得测试 Siebel 变得更加容易。
【讨论】:
由于 Siebel 版本 7.7 QTP 使用 Siebel Test Automation (STA) 需要从 Oracle 单独购买,快速搜索发现了有关如何使用 set up testing with STA 的说明(这是从 QTP 角度写的,但适用于所有 STA 使用)。
如果你真的想避免使用 GUI 测试,那么你可以搜索 API 文档并尝试直接使用 STA,但我不推荐它,QTP 已经为你完成了所有繁重的工作,你为什么要重现努力(尤其是因为您的公司已经拥有 QTP 许可证)。
【讨论】: