Windows上的Behat - 截图

时间:2014-10-22 15:13:17

标签: php bdd behat mink

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

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

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

2 个答案:

答案 0 :(得分: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 mask的概念 - 即你想要忽略的区域 - 例如,如果你有某种幻灯片,截图可能显示失败,因为随机开始幻灯片是不同的。

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

答案 1 :(得分:0)

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

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

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

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