Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 驾驶考试自动化中的图像识别_Wpf_Image_Testing_Automation_Image Recognition - Fatal编程技术网

Wpf 驾驶考试自动化中的图像识别

Wpf 驾驶考试自动化中的图像识别,wpf,image,testing,automation,image-recognition,Wpf,Image,Testing,Automation,Image Recognition,是否有任何工具使用图像识别(搜索、比较、验证图像)作为自动化和测试GUI软件的基础。我知道ranorex支持它。是否有更好的工具?使用图像识别来驱动测试自动化是否有不足之处?谢谢您的评论!请看一看RoutineBot——基于点击特定图像模式的界面测试软件,并亲自看看这个想法是如何在一个应用程序中实现的 自动化工具 我也不鼓励使用带有SendKeys的图像识别,并单击坐标或(按钮图像)进行UI测试。我最近使用UI自动化成功地自动化了WPF应用程序的测试。通过在应用程序的XAML中放置小面包屑(Au

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

谢谢您的评论!请看一看RoutineBot——基于点击特定图像模式的界面测试软件,并亲自看看这个想法是如何在一个应用程序中实现的
自动化工具

我也不鼓励使用带有SendKeys的图像识别,并单击坐标或(按钮图像)进行UI测试。我最近使用UI自动化成功地自动化了WPF应用程序的测试。通过在应用程序的XAML中放置小面包屑(Automation.AutomationID=“OkButton”),我已经能够编写一些C#单元测试来测试应用程序的不同方面。即使没有breadcrumbs,UI自动化仍然能够运行应用程序,但是当试图识别UI上的控件时,它会稍微困难一些

一篇关于代码项目的文章可以作为起点


您还需要UI Spy,这是Microsoft提供的免费工具,它可以帮助您找到控件并通过UI自动化手动执行控件,作为编写脚本的指导。在安装并搜索UISpy.exe后,该工具将隐藏在Windows Vista SDK中。UI Spy工具仍然可以在Windows XP计算机上运行,只需将EXE复制到目标计算机。

考虑AutoItScript,用于在测试场景中驱动基于Windows的GUI,并删除UI。考虑TestSerACT开源的光学字符识别。还有用于机器视觉的OpenCV


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

好的,首先,我理解前面的答案:使用图像识别测试应用程序不是测试GUI的最佳方法。但是,与此同时,我不明白你为什么不首先回答这个问题。他要求的工具就是这样的,我认为他足够聪明,知道他要去哪里

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

  • ,麻省理工学院项目,获得类似GNU的麻省理工学院许可证。它使用Python而不是Jython。免费的
  • ,一种通过VNC服务器工作的工具,因此您可以在任何VNC兼容平台(包括智能手机)上测试应用程序。它有一些很好的特性,比如OCR、测试计划等等。它使用SenseTalk。不是免费的,你可以要求试一试
  • ,我从未用过,但它似乎很有用

    • 这是一个老问题,但也许这个答案对某些人有用。我目前使用两种产品

      通过自动化随时随地进行测试()

      和快速测试专业人员,由HP()提供


      它们都做得很好,都支持使用图像识别。我并不完全相信图像识别本身就是一件坏事。与所有事情一样,你必须根据自己的特殊需要调整你的方法,并使用合适的工具来完成这项工作。

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


      请参见

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


      明显有问题-代理计算机设置之间存在差异。如果您在1280分辨率上构建一个测试,但在1150分辨率下回放,您将遇到问题。通常,最好在GUI对象级别或API级别实现自动化。我的经验是,在驾驶考试自动化中使用图像识别只能作为最后手段。我同意RodKnee和Tom E的观点。在UI测试中使用图像识别简直是极度痛苦和浪费时间。如果您的应用程序构建正确,您可以将UI逻辑推送到应用程序的另一个更容易测试的层中。正是为了这个目的而创建的。可以通过UI完成的每个操作都在视图中的某个位置表示。通过这种方式,您可以完全剥离UI,仍然可以使用剩余的体系结构(M-V-C)对应用程序进行单元测试。Rom RoutineBot自己的常见问题解答:“如果您在脚本图像模式中使用,并且测试应用程序中某些(比如按钮)的原始外观发生了更改,则脚本将无法正确执行。所以,在设计脚本时,要考虑到这种可能性。这个问题有一些可能的解决方案:您可以使用ClickButton命令,它使用按钮的标题文本(而不是其图像)。另一个解决方案是使用更小的图像模式,在这种情况下,模式改变的机会更小。”——就像我说的,图像识别应该被视为最后的手段。