Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Php Windows上的行为-截图_Php_Bdd_Behat_Mink - Fatal编程技术网

Php Windows上的行为-截图

Php Windows上的行为-截图,php,bdd,behat,mink,Php,Bdd,Behat,Mink,我有几个Behat测试,它们使用类似的东西截图: $driver->getWebDriverSession()->screenshot(); 有人知道可以比较两个截图的Behat插件或扩展吗? 而且它必须在Windows上工作。我已经在Behat上工作了一段时间,它肯定没有它应该的那么受欢迎。除了Behat之外,任何团队都没有那么多流行的插件,而且Behat绝对没有众所周知/受支持的插件来比较图像。事实上,除了GD和Imagic之外,PHP也是如此,它们的范围更广 此外,逻辑也不是

我有几个Behat测试,它们使用类似的东西截图:

$driver->getWebDriverSession()->screenshot();
有人知道可以比较两个截图的Behat插件或扩展吗?
而且它必须在Windows上工作。

我已经在Behat上工作了一段时间,它肯定没有它应该的那么受欢迎。除了Behat之外,任何团队都没有那么多流行的插件,而且Behat绝对没有众所周知/受支持的插件来比较图像。事实上,除了GD和Imagic之外,PHP也是如此,它们的范围更广

此外,逻辑也不是很清楚你会比较什么以及如何比较。屏幕截图通常是在失败时拍摄的。比较失败测试的两个屏幕截图没有多大意义,只是将失败测试的屏幕截图与之前通过的相关测试的屏幕截图进行比较。问题是你在哪里以及如何获得这些有效的屏幕截图,以及从这里产生的一系列其他问题

这听起来像是一个非常具体的挑战,我敢肯定只有有限的用户群体会需要这样的东西,可能有很多独特的逻辑和特定于他们的情况。另一方面,在PHP中实现基本的图像比较并没有那么困难,因为您已经掌握了在PHP中使用图形的基本技能


我想到的一件事是
Imagick::compareImages
,见官方网站。似乎还有很多博客文章,比如一篇或一篇,展示了不同的方法。

您正在寻找的是一个pdiff扩展:对于windows,它可能如下所示:

截图绝对不是“仅在失败时截图”-你当然可以截取一组基线截图,并使用类似于测试失败的工具,如果产生的感知差异出现偏差(即,如果css更改以意外方式超出范围)

PerceptualDiffExtention的这个fork()添加了一个diff掩码的概念,即您希望忽略的区域,例如,如果您有某种幻灯片,屏幕截图可能会显示失败,因为随机开始的幻灯片不同

此外,作者最近还做了一个关于将知觉差异与Behat结合使用的演讲:因此,有一些幻灯片可以用作资源