我也不鼓励使用带有SendKeys的图像识别和点击坐标或(按钮图像)进行UI测试。我最近使用UI自动化成功地自动测试WPF应用程序。通过在我们的应用程序的XAML中放置小的面包屑(Automation.AutomationID =“OkButton”),我已经能够编写一些C#单元测试来运行应用程序的不同方面。即使没有面包屑,UI Automation仍然能够运行应用程序,但在尝试识别UI上的控件时稍微困难一些。
关于代码项目的一篇体面的文章可作为起点。
http://www.codeproject.com/KB/WPF/UIAutomation.aspx
您还需要来自Microsoft的免费工具UI Spy,它可以帮助您查找控件并通过UI Automation手动执行控件作为编写脚本的指导。安装搜索UISpy.exe后,该工具将隐藏在Windows Vista SDK中。只需将EXE复制到目标计算机,UI Spy工具仍然可以在Windows XP计算机上运行。
我以为我会在这个帖子中添加另一个条目。事情可能已经改变,不确定,但是当我上次看到演示时,该产品提供了类似Sikuli的IDE /接口/功能,同时作为商业产品并支持模拟器之外的实际设备。现在还不知道该工具是否已经改进,以便通过图像之外的标识符来检测对象。
从中看到 http://experitest.com
谢谢你的评论!请看一下RoutineBot - 界面测试软件,点击某些图像模式,亲自了解这个想法是如何实现的 自动化工具!
好的,首先,我理解以前的答案:使用图像识别测试应用程序并不是测试GUI的最佳方法。但是,与此同时,我不明白你为什么不首先回答这个问题。他要求使用那种方式工作的工具,我认为他足够聪明,能够理解他的目标。
好的,现在是主题,我的选择包括:
我同意RodKnee和Tom E.使用图像识别来进行UI测试无非是痛苦和浪费时间。如果您的应用程序是正确构建的,您可以将UI逻辑推送到更容易测试的应用程序的不同层。
该 MVP模式 是为了这个目的而创建的。可以通过UI完成的每个操作都在View中的某个位置表示。通过这种方式,您可以完全去除UI,并使用剩余的体系结构(M-V-C)对您的应用程序进行单元测试。
完成这种事情的图像识别思想让我不寒而栗。
老问题,但也许这个答案可能对某人有用。我目前正在使用两种产品,
通过Automation Anywhere随处测试( http://www.automationanywhere.com/Testing/ )
和HP的Quick Test Professional( http://www8.hp.com/us/en/software-solutions/software.html?compURI=1172957#.UhJBwpLW5-k )
他们两个都做得很好,都支持使用图像识别。我并不完全相信图像识别本身就是一件坏事。与所有事情一样,您必须根据您的特定需求定制方法,并使用正确的工具来完成工作。
让我建议另一个解决方案。 它不是一个完整的UI自动化框架,而是一个专门用于图像验证的工具。 它还允许您忽略图像的不稳定部分(随机数据等) 它将与您选择的任何其他UI测试框架集成:Selenium,Sikuli等。
http://visualci.com
考虑使用AutoItScript在测试场景中驱动基于Windows的GUI - 并刮掉UI。考虑tesseract开源光学字符识别。 OpenCV也适用于机器视觉。
免费AutoItScript在API级别工作,您可以读取各种Widgets和Windows部分的状态,向这些UI组件发送操作,等待状态更改等。可以生成高度可靠的自动化代码,确保专注于Windows和分辨率独立。