比较bash的截图

时间:2015-08-06 08:33:51

标签: testing regression casperjs

我就是这样:我想自动化视觉回归。因此,使用CasperJS,我采用了多种尺寸的示例屏幕截图。我也可以用它来截取实际情况的截图。所有截图都有相同的名称,只有两个单独的文件夹。

问题是:我如何自动化测试?我正在寻找一个类似于compare ImageMagick的解决方案,它让我对这两个版本进行了叠加,突出了它们之间的区别。但它应该适用于多个文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我会在bash中执行类似的操作:

#!/bin/bash
# These are the FULL paths to the two folders of images - edit as you wish
dir1="/Users/Mark/tmp/A"
dir2="/Users/Mark/tmp/B"
diff="/Users/Mark/tmp/diffs"

# Don't barf if there are no matching files
shopt -s nullglob

# Make output directory
mkdir -p "$diff" 2>/dev/null

cd "$dir1"
for f in *.png *.jpg; do
    echo Processing $f...

    compare "$f" "$dir2/$f" -highlight-color red png:- |
       convert "$f" "$dir2/$f" +append - +append "$diff/$f"

    # DEBUG
    identify "$f" "$dir2/$f" "$diff/$f"
    echo
done

这是文件夹中第一个文件的原始图像,第二个图像和差异图像,这三个文件一起被编辑成一个宽的图像,您可以在文件浏览器中浏览:

enter image description here

这是文件夹中第二个文件的原始图像,第二个图像和差异图像,也可以一起编辑成单个宽图像:

enter image description here

这些结果图像显示在名为diff的文件夹中,并且与原始图像具有相同的名称。