testing - 比较 bash 的截图

标签 testing regression casperjs

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

问题是:我怎样才能自动化测试?我正在寻找一个有点像 ImageMagick 中的 compare 的解决方案,它给我两个版本的叠加并突出显示差异。但它应该适用于多个文件。

有什么想法吗?

最佳答案

我会在 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 的文件夹中,并且与原始图像同名。

关于testing - 比较 bash 的截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850718/

相关文章:

python - 如何评价均方误差(MSE)是否合理?

javascript - CasperJS 连续测试选择器是否存在

javascript - SpookyJS 是否支持 https 网页?

javascript - 在不中断 session 的情况下将 deathbycaptcha 与 phantomjs 一起使用

javascript - Angular - 测试带有附加集的@Input

ruby-on-rails - 目录 : Chained Stub using Mocha

python - PanelOLS pandas 线性模型文档

通过给定点的回归线

require - 将 require 与 casperjs 结合使用会返回 "Can' t find module"错误

javascript - 在 Selenium 中打开测试页面