iOS上的像素完美验收测试

时间:2014-03-25 18:08:27

标签: ios image testing automation

我给出了来自应用程序设计的确切大小.png渲染,在Retina 4",Retina 3.5"等上显示我的应用应该是什么样子

想要自动比较这些"黄金大师"在显示该屏幕时,呈现以及应用实际看起来像的屏幕截图。

理想情况下,我想通过持续集成运行一些东西,这样我就可以打破构建,如果.xib搞砸了

我该怎么做?


已经尝试过:

  • 在iPhone模拟器中使用Command-S来获取适合比较的屏幕截图
  • 使用GitHub优秀的图像差异界面来手动比较图像
  • 在Preview.app中并排拉出它们,实际大小(Command-0)
  • 对ImageMagick的比较功能进行了一些研究(examples

可能的方法:

  • 已在代码中获取应用的屏幕截图
  • 同样,我非常确定我可以找到代码来模拟屏幕上的点击
  • 可能需要某种方法来排除已知不完全匹配的区域的掩码或边界框

4 个答案:

答案 0 :(得分:2)

看看ios-snapshot-test-case,这是为了接近这个而建的。

首次运行测试时将采用参考图像,然后将后续测试输出与参考图像进行比较。你基本上可以使用它,但不是从测试中创建参考图像,而是提供自己的参考图像。

在实践中,这将非常难以正确执行。在iOS和设计师使用的任何工具之间呈现文本,渐变等的方式存在细微差别。

答案 1 :(得分:1)

我查看KIF进行功能测试。

您可以创建一个自定义测试(在上面的自述文件末尾附近的小示例"与其他测试框架一起使用"),它会截取屏幕截图并将其与该视图的预期屏幕截图进行比较。如果它不匹配,请致电failWithException:stopTest:

正如您所提到的,您需要为每个预期的屏幕截图保存一个遮罩,并在比较之前应用遮罩。您将始终拥有不匹配的部分屏幕,例如状态栏中的时间至少。

对于比较本身,这里有几个链接:

答案 2 :(得分:1)

我知道这是一个较老的问题,但值得指出的是,KIF已经建立了一个感性差异测试框架"叫莱拉:

https://github.com/kif-framework/Lela

如果你已经在使用KIF,那么这就是你要走的路。我相信它使用了一些模糊的图像差异,因此它可以解决David Grandinetti提到的文本渲染问题。尽管如此,我还没有尝试过对抗外部比赛。

如果您对BDD / Cucumber / Gherkin语法更加熟悉,您还应该查看使用参考图像的Zucchini:

http://zucchiniframework.org/

我还没有使用它,但它很好用。

答案 3 :(得分:0)

我建议你看看Visual CI

它是为持续集成图像比较而构建的软件,
它具有允许您控制设置的UI,其中还包括要比较的图像部分

这是一种新的,但可以更好地回答你的要求。