图像识别,以推动测试自动化

时间:2009-09-29 22:00:32

标签: wpf image testing automation image-recognition

是否有任何工具使用图像识别(搜索,比较,验证图像)作为自动化和测试GUI软件的基础。我知道ranorex支持它。有没有更好的工具?使用图像识别来推动测试自动化是否有任何问题?

7 个答案:

答案 0 :(得分:5)

好的,首先,我了解以前的答案:使用图像识别测试应用程序并不是测试GUI的最佳方法。但是,与此同时,我不明白你为什么不首先回答这个问题。他要求使用那种方式工作的工具,我认为他足够聪明,能够理解他的目标。

好的,现在是主题,我的选择包括:

  • Sikuli,一个类似GNU的麻省理工学院许可下的麻省理工学院项目。它使用Python而不是Jython。免费。
  • TestPlant eggPlant,一种通过VNC服务器工作的工具,因此您可以在任何VNC兼容平台(包括智能手机)中测试应用。它有一些很好的功能,如OCR,测试计划等。它使用SenseTalk。不是免费的,你可以请求试用。
  • Routine Bot,我从未使用它,但它似乎非常有用。

答案 1 :(得分:1)

我也不鼓励使用带有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计算机上运行。

答案 2 :(得分:1)

考虑使用AutoItScript在测试场景中驱动基于Windows的GUI - 并刮掉UI。考虑tesseract开源光学字符识别。也是用于机器视觉的OpenCV。

免费AutoItScript在API级别工作,您可以读取各种Widgets和Windows部分的状态,向这些UI组件发送操作,等待状态更改等。可以生成高度可靠的自动化代码,确保关注Windows和分辨率独立性。

答案 3 :(得分:1)

让我建议另一种解决方案 它不是一个完整的UI自动化框架,而是一个专门用于图像验证的工具 它还允许您忽略图像的不稳定部分(随机数据等) 它将与您选择的任何其他UI测试框架集成:Selenium,Sikuli等。

http://visualci.com

答案 4 :(得分:0)

感谢您的评论!请看一下RoutineBot - 界面测试软件,点击某些图像模式,亲自了解这个想法是如何实现的 自动化工具!

答案 5 :(得分:0)

老问题,但也许这个答案可能对某人有用。我目前正在使用两种产品,

通过Automation Anywhere(http://www.automationanywhere.com/Testing/

随处测试

和Quick Test Professional,由HP(http://www8.hp.com/us/en/software-solutions/software.html?compURI=1172957#.UhJBwpLW5-k

他们两个都做得很好,都支持使用图像识别。我并不完全相信图像识别本身就是一件坏事。与所有事情一样,您必须根据自己的特定需求定制方法,并使用正确的工具来完成工作。

答案 6 :(得分:0)

我以为我会在这个帖子中添加另一个条目。事情可能已经改变,不确定,但是当我上次看到演示时,该产品提供了类似Sikuli的IDE /接口/功能,同时作为商业产品并支持模拟器之外的实际设备。不知道该工具是否已经改进,现在可以通过图像之外的标识符来检测对象。

http://experitest.com

查看测试