手机的自动化测试,对结果的判断是难点,最初级的办法无非是基于图像比对了,monkeyrunner自身提供了一套图像比对的机制,这里不再展开说。
使用方法简单陈述如下
加载一个正确结果的图片 MonkeyRunner.LoadImageFromfile("filepath"),这个函数在文档中没有提到,可能是文档还没有来得及更新吧。
然后用sameAs来比对,当然也可以用局部图像比对。得到局部图像的方法getSubImage
我这里想说的方法是用PIL来逐个比较图片的像素。实验证明,速度还是不错的
程序代码如下
from PIL import Image
img3 = Image.open(r'd:\3.png')
img4 = Image.open(r'd:\4.png')
width = img3.size[0]
height = img3.size[1]
pima3 = img3.load()
pima4 = img4.load()
diff = 0
total = width * height
for w in range(width):
for h in range(height):
if not pima3[w,h] == pima4[w,h]:
diff +=1
print (1-diff/float(total))
最后计算出的是图片的相似度