茄子对图像捕捉和图像识别有好处吗?

软件测试 自动化测试 测试自动化框架 茄子 感觉谈话
2022-01-30 14:01:36

作为一名查看不同自动化测试解决方案的软件测试人员,我需要一个能够与大量图形界面(如 Flash 网站或应用程序)交互的工具。

我希望该工具以用户的方式进行交互——我正在测试的 Flash 应用程序是一款儿童游戏。用户在屏幕上寻找暗示您可以与游戏中的元素进行交互的提示,因此我想从这个角度进行测试,而不是使用游戏实现的知识。

除了图像重新捕获的成本之外,您还能从中看到哪些其他好处和缺点?

茄子会履行这个角色吗?您可以提供哪些提示和提示以充分利用它?

有没有更好的工具来实现这个目的? (客观地 - 我需要一份利弊清单)

4个回答

应该注意的是,茄子有一个 FOSS 替代品:Sikuli我们有团队在我们的组织中使用这两种方法。我不会说 Sikuli 的功能强大或达到茄子的水平,但如果您的需求相对简单,则值得一看。而且它只是一个 Java 库,因此可以很容易地与其他工具集成。我们主要使用 Jython。

茄子的图像捕捉和识别非常好——我遇到过的最好的。您还可以使用一些方便的技巧,将其指向一个充满图像的文件夹,它会告诉您是否、在哪里以及找到其中的一个。

提示和提示:

  1. 虽然图像识别算法对与源图像不完全匹配的图像有一定的容忍度,但这种容忍度很低。捕获尽可能小的图像,同时保持它对您需要查找或单击的屏幕元素的唯一性。对于经常被部分遮挡的动画或大图像,创建一组与大图像的各个部分或动画的各个帧相匹配的图像通常会很好地为您服务,并且始终可以发现找到的图像.

  2. 对于需要找到关键帧的快速移动序列,可能很难捕获您正在寻找的内容 - 断开 vnc 会话,然后单击连接列表上的“显示窗口” - 您将有一个冻结帧断开连接时的屏幕,您可以在闲暇时从中捕获精选的图像。

  3. 有时可能需要捕获动态选择的图像。CaptureScreen 命令将获取全屏并将其放置在测试结果中,但是您可以指定此图像的名称和位置,以及仅捕获屏幕上的一小块区域。这可以使以后更容易参考这些图像。

  4. 对于动态应用程序,很难预测您希望动态捕获的图像的确切位置 - Sensetalk 具有良好的矢量加法和减法功能,您可以使用它来为屏幕上捕获的图像提供相对位置。

我们使用 Eggplant 来比较 Mac 和 Windows 上的 Flash Player 创建的图像(在 Macromedia 中)。它是此类图像比较的出色工具,并且对于逐像素和整体图片/图像比较工具也非常有效。

我总体上同意@BiggAl 的总结,并且还推荐使用基于Web 的图像和动态渲染的图像。(我们使用了 Eggplant 的动态渲染/检查实用程序以及 Flash Player 生成的图像和使用照片编辑工具创建的静态图像。)

是的,您可以在处理 Flash 动画时使用茄子。我想说,在处理动态图像和动画时,没有其他工具可以替代它。

您唯一应该注意的是,在捕获图像以识别您的图像时遵循最佳实践。

茄子非常健壮,使用灵活。也不是真的,它只适用于 Mac 系统。我在 Windows 上使用它,但我从未在 Mac 上使用过它。

由于开发公司“TestPlant”的不幸政策,我注意到其中许多人严重不喜欢代码帮助以及不同群体之间的相应响应。他们非常需要在行业排斥杀死茄子之前改变这一政策,并需要公开讨论。