iOS UIAutomation:是否可以将屏幕截图与参考图像进行比较?

5

标题已经说明了问题。我正在寻找一种解决方案,可以比较使用UIAutomation脚本中的target.captureScreenWithName拍摄的屏幕截图和一些参考图像。这对于测试一些自定义视图来说非常有用。

3个回答

3

尝试在Mac上使用免费的ImageMagick。从iOS 5开始,有一个新的UIAHost.performTaskWithPathArgumentsTimeout(path, args, timeout)函数,可以让您直接从测试中运行外部任务。只需使用此函数以参数运行ImageMagick脚本,即可从测试中获取图像比较结果。

var result = UIAHost.performTaskWithPathArgumentsTimeout(path, args, timeout)

路径 - 图像比较脚本的字符串;

参数 - 一个包含ImageMagicK实用程序的参数和值的数组,如:

var args = ['param1', 'param1Value', 'param2', 'param2value'....];

更多关于ImageMagick的详细信息: http://www.imagemagick.org/script/index.php

UIAHost参考文档: http://developer.apple.com/library/ios/#documentation/UIAutomation/Reference/UIAHostClassReference/UIAHost/UIAHost.html


1

直接从UIA中实现这一点是不可能的,至少我没有找到任何方法来实现。所有的屏幕截图都保存在测试结果文件夹中。然后您可以使用任何工具对它们进行处理。


1

看看Zucchini Framework。它很好地封装了UIAutomation API,并允许您将截图作为测试断言。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接