Windows上的Behat - 截图

问题描述 投票:3回答:2

我有几个Behat测试,使用类似的东西截取屏幕截图:

$driver->getWebDriverSession()->screenshot();

有谁知道可以比较两个截图的Behat插件或扩展程序?它必须在Windows上运行。

php bdd behat mink
2个回答
1
投票

你正在寻找的是一个pdiff扩展:对于Windows,它可能看起来像这样:http://seleniumrecipes.com/content/using-perceptual-difference-pdiff-tool

屏幕截图绝对不是“仅在失败时拍摄” - 如果所产生的感知差异偏离(即如果css变化以意外方式超出),你当然可以采用一组基线截图并使用像https://github.com/jadu/BehatPerceptualDiffExtension这样的工具来测试失败。

PerceptualDiffExtention的这个fork(https://github.com/ksenzee/BehatPerceptualDiffExtension/commits/master)添加了一个diff掩码的概念 - 即你想要忽略的区域 - 例如,如果你有某种幻灯片,截图可能会显示失败,因为随机起始幻灯片是不同的。

此外,作者最近发表了关于使用Behat:http://2014.pnwdrupalsummit.org/pacific-nw-drupal-summit-2014/sessions/deploying-confidence-automated-visual-regression-and的感知差异的演讲,因此有一些幻灯片可以用作资源。


0
投票

我现在已经和Behat合作了一段时间,而且肯定不是那么受欢迎。除了Behat之外,没有那么多来自任何团队的流行插件,并且Behat绝对没有知名/良好支持的插件来比较图像。事实上,对于PHP来说也是如此,除了GD和Imagic之外,它们具有更广泛的范围。

此外,逻辑并不十分清楚你比较的内容和方式。屏幕截图通常在失败时拍摄。比较失败测试的两个屏幕截图没有多大意义,只比较失败测试的屏幕截图与之前通过的相关测试的屏幕截图。那么问题就是在哪里以及如何获得这些有效的屏幕截图,以及来自这里的整个其他问题链。

这听起来像是一个非常具体的挑战,我确信只有一小部分用户需要这样的东西,可能有很多逻辑独特且特定于他们的情况。另一方面,在PHP中实现基本图像比较并不困难,因为您具备使用PHP中的图形的基本技能。

想到的一件事是Imagick::compareImages,请参阅官方documentation。似乎也有很多博客文章,如this one或this one,它们显示了不同的方式。

© www.soinside.com 2019 - 2024. All rights reserved.