5

我的团队一头扎进一个新项目,我们借此机会让自己了解 Scrum 方法、新技术等。其中一部分涉及尝试使用 Microsoft 测试管理器和 VS2010 Coded UI 测试自动化我们的 QA 流程.

但是,我们在让自动化测试回放与我们当前选择的 WPF 控件库 DevExpress XPF 套件一起工作时遇到了问题。多年来,我们一直在将 DevExpress 用于他们的 WinForms 和 ASP.NET 控件,但这是我们第一次使用他们的 WPF 控件和自动化 UI 测试,两者似乎不能很好地协同工作。

特别是,尝试回放与网格控件交互的记录测试永远不会正常工作,即使在简单的控件上,回放似乎也会混淆它应该与哪个编辑器交互。在我们的测试负责人从 MTM 生成的动作记录中,我看到了很多这样的内容:

Type '5236' in 'PART_Editor' text box
Type '253' in 'PART_Editor' text box

更糟糕的是,在网格内部:

Click 'FooterPanel' pane 
Last action on list item was not recorded because the control does not have any good identification property.
Click 'FooterPanel' pane
Click 'Item: CashEntry, Column ...' custom control 
Move 'Item: CashEntry, Column ...' custom control from (141,     10) to 'Item: CashEntry, Column ...' custom control (5, 11) 
Type '{NumPad8}{Down}{NumPad5}{NumPad0}{Up}{Down}{Down}' in 'CashEntry' window

现在,我在 DevX 的论坛上看到很多关于他们的 WinForms 控件不能很好地支持 MSAA 以使编码的 UI 测试工作的喋喋不休,但我认为 WPF 使用了一种不同的机制来进行自动化 UI 测试,这种机制应该可以更好地工作。所以,我的问题是:

  1. 有没有办法让 DevX XPF 控件在编码/自动化 UI 测试中更好地工作?
  2. 如果没有,是否有已知可以很好地与编码/自动化 UI 测试配合使用的替代 XPF 控制套件?

我对具有排序、分组等功能的类似网格的组件、类似导航栏的组件和自定义编辑器(日期、数字等)特别感兴趣,所有这些都支持统一的系统范围的主题。

(此外,如果仅使用本机 WPF 控件和样式就可以轻松完成此类事情,那么了解这一点也会很有帮助。)

编辑:由于似乎没有实际与 MTM 一起使用的 WPF 控件套件,因此我们被迫同时使用两个单独的测试工具。根据这里的几个答案,我们强烈倾向于 TestComplete。希望情况尽快好转。

4

4 回答 4

2

对支持此功能的控制套件了解不多,但我们过去曾分析过一个测试套件,它支持基于对象的 WPF 自动化测试。看看TestComplete(虽然它不是免费的)

这是该网站的摘录,其中提到了他们提供的控制支持-

WPF 控件支持 TestComplete 为 WPF (XAML) 控件和强大的 WPF 应用程序自动化 UI 测试提供了丰富的支持。TestComplete 的高级测试操作(例如项目选择或单元格数据输入)是对象感知的,而不是坐标感知的,因此在执行 WPF 测试时更稳定且对 UI 更改具有抵抗力。灵活的对象映射方案允许测试人员将自定义或派生的 WPF 控件映射到标准类型,以简化 UI 操作。还可以使用 TestComplete SDK 添加对自定义 WPF 控件的支持。

http://smartbear.com/products/qa-tools/automated-testing/testing-wpf-apps/

于 2012-02-09T09:25:42.073 回答
1

我听说过有关WiPFlash的好消息。

于 2012-02-13T10:36:13.613 回答
0
  • 在我们的一个项目中,我们使用了Infragistics WPF 控件,并且 TestComplete 可以使用它。

  • 我们的 QS 团队也使用TestComplete

  • 我找到了一个独立于 UI 库的免费实用程序。

斯库里项目

Sikuli 是一种使用图像(屏幕截图)自动化和测试图形用户界面 (GUI) 的视觉技术。Sikuli 包括 Sikuli Script(Jython 的可视化脚本 API)和 Sikuli IDE(用于轻松编写带有屏幕截图的可视化脚本的集成开发环境)。Sikuli 脚本可以自动执行您在屏幕上看到的任何内容,而无需内部 API 的支持。您可以通过编程方式控制网页、Windows/Linux/Mac OS X 桌面应用程序,甚至是在模拟器中或通过 VNC 运行的 iphone 或 android 应用程序。

于 2012-02-10T08:36:47.540 回答
0

刚刚找到这个线程......我们在使用 DevExpress 组件时遇到了同样的问题,在播放 CUIT 时找不到这些问题。但尤其是使用 Sikuli 脚本,问题是可以解决的……至少。

  1. 使用 MS 测试管理器记录测试
  2. 回放测试,寻找不可重现的步骤
  3. 创建 Sikuli 序列以“跨过”
  4. 在 CUIT 的适当位置包含创建的 Sikuli 脚本,然后从第 2 步重新开始

以这种方式创建测试确实需要时间,但至少它是可能的。

于 2014-04-09T09:15:26.770 回答