转载自: http://www.51testing.com/?uid-225927-action-viewspace-itemid-249291
************** picCompare.py
from __future__ import division
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
log=open("F:\\demo\\demo.txt","w")
#this function used for pic compare
#the variables is base-pic,compare-pic,pic-width,pic-high,pic similarity
def picCompare(imageA,imageB,width,high,factor):
i=0
Rc=Gc=Bc=0
Total=255*width*high/4
while i<width:
j=0
while j<high:
cc=imageA.getRawPixel(i,j)
dd=imageB.getRawPixel(i,j)
Rc=Rc+abs(cc[1]-dd[1])
Gc=Gc+abs(cc[2]-dd[2])
Bc=Bc+abs(cc[3]-dd[3])
j=j+2
i=i+2
Rsub=Rc/Total
Gsub=Gc/Total
Bsub=Bc/Total
picSame=1-(Rsub+Gsub+Bsub)/3
if picSame>factor:
return 1
else:
return 0
**********测试脚本
import sys
sys.path.append("E:\\android-sdk-windows\\tools")
import picCompare as COM
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
log=open("F:\\demo\\demo.txt","w")
imageA=MonkeyRunner.loadImageFromFile("F:\\demo\\sougou.png")
#judge connection
device = MonkeyRunner.waitForConnection()
#
imageB=device.takeSnapshot()
imageB=imageB.getSubImage((20,320,60,60))
if COM.picCompare(imageA,imageB,60,60,0.8):
log.write("OK,the will do action Click\n")
device.touch(20,320,"DOWN_AND_UP")
else:
imageB.writeToFile("F:\\demo\\errorSogou.png","png")
log.write("couldn't find sogou item,please check")
log.close()
from __future__ import division
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
log=open("F:\\demo\\demo.txt","w")
#this function used for pic compare
#the variables is base-pic,compare-pic,pic-width,pic-high,pic similarity
def picCompare(imageA,imageB,width,high,factor):
i=0
Rc=Gc=Bc=0
Total=255*width*high/4
while i<width:
j=0
while j<high:
cc=imageA.getRawPixel(i,j)
dd=imageB.getRawPixel(i,j)
Rc=Rc+abs(cc[1]-dd[1])
Gc=Gc+abs(cc[2]-dd[2])
Bc=Bc+abs(cc[3]-dd[3])
j=j+2
i=i+2
Rsub=Rc/Total
Gsub=Gc/Total
Bsub=Bc/Total
picSame=1-(Rsub+Gsub+Bsub)/3
if picSame>factor:
return 1
else:
return 0
**********测试脚本
import sys
sys.path.append("E:\\android-sdk-windows\\tools")
import picCompare as COM
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
log=open("F:\\demo\\demo.txt","w")
imageA=MonkeyRunner.loadImageFromFile("F:\\demo\\sougou.png")
#judge connection
device = MonkeyRunner.waitForConnection()
#
imageB=device.takeSnapshot()
imageB=imageB.getSubImage((20,320,60,60))
if COM.picCompare(imageA,imageB,60,60,0.8):
log.write("OK,the will do action Click\n")
device.touch(20,320,"DOWN_AND_UP")
else:
imageB.writeToFile("F:\\demo\\errorSogou.png","png")
log.write("couldn't find sogou item,please check")
log.close()
******************************
使用说明,andorid手机自动化测试过程中,如果UE能提前确定,则使用MonkeyRunner Recorder捕获全部的测试控件,
然后通过图像对比,执行对应的Activity。
这个是基于SeeTest基础上个人改编的,欢迎讨论~~