zoukankan      html  css  js  c++  java
  • monkeyrunner 自动化测试 图片对比的实现

    这个功能在网上看了好多人的代码,但是总是在image.writeToFile('D:/tmp/images/black.png','png')这一句出错.查了google的API也感觉没错呀。
    后来自己动脑,改成了image.writeToFile('D:/tmp/images/black.png'),竟然就成功了。后面的图片后缀竟然是可以不用加的。而且
    然后loadimage后面的后缀同样可选。我是这样写的 result = MonkeyRunner.loadImageFromFile('D:/tmp/images/black.png','png')

    code:

    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
    import sys,time
    
    device = MonkeyRunner.waitForConnection()
    device.wake()
    
    device.startActivity(action = "android.media.action.IMAGE_CAPTURE")
    MonkeyRunner.sleep(3.0)
    image = device.takeSnapshot()
    MonkeyRunner.sleep(1.0)
    
    if (image != None):
            image.writeToFile('D:/tmp/images/black.png')
    
    cout = 1
    while(cout < 1000):
            device.startActivity(action = "android.media.action.IMAGE_CAPTURE")
            MonkeyRunner.sleep(3.0)
            image = device.takeSnapshot()
            MonkeyRunner.sleep(1.0)
            result = MonkeyRunner.loadImageFromFile('D:/tmp/images/black.png','png')  
            MonkeyRunner.sleep(3.0)
            if(image.sameAs(result,0.8)):  
                    print "success!"
            else:  
                    print "fail!"
                    break;
            cout += 1
    

    这个脚本是用来测试系统调用摄像头是否成功的,但是由于摄像头取到的图片是一张照片,sameas的算法可能针对于手机屏幕的显示而对摄像头取到的图算不来,所以实际测试的时候失败了。

  • 相关阅读:
    嵌入式硬件设计时所需考虑的几个问题
    MySQL网络配置
    MySQL数据库操作技术大全
    关于硬件芯片未用引脚的处理方法
    与嵌入式软件开发相关的一些硬件知识
    C语言-联合(union)
    AtCoder Regular Contest 101 D
    AtCoder Regular Contest 101 C
    AtCoder Regular Contest 102 C
    线性基学习
  • 原文地址:https://www.cnblogs.com/psklf/p/4838252.html
Copyright © 2011-2022 走看看