zoukankan      html  css  js  c++  java
  • 小工具之apk黑屏自动检测

    在打包测试的时候经常发送给测试组之后,发现已进入游戏就黑屏,这个就浪费了测试组的精力,如果要测试多款产品的话,就会因为黑屏问题做很多无用功,这是程序就需要在发给测试的时候自己先测试产品会不会黑屏。同样,数量一多,就会浪费精力。需要先安装到设备上,在点击测试,浪费时间。

    这是,你就需要一款全自动的测试工具来帮你检查产品是否黑屏,用不耗精力的方式把每个包的黑屏现象找出来。这就是接下来要介绍的工具——“黑屏检测工具”。

    材料

    1. 按键精灵
    2. 海马玩模拟器

    原理

    利用按键精灵将产品在海马玩模拟器中打开,然后在产品运行一段时间之后截屏分析图像,确认是否黑屏。

    代码

    from PyQt4.QtGui import QMainWindow
    from PyQt4.QtCore import pyqtSignature
    
    from v.Ui_App import Ui_MainWindow
    
    import sys
    import os
    import QtUtil
    import subprocess
    from subprocess import Popen,PIPE
    import ImageGrab
    import Image
    import random
    
    class App(QMainWindow, Ui_MainWindow):
        """
        Class documentation goes here.
        """
        def __init__(self, parent = None):
            """
            Constructor
            """
            QMainWindow.__init__(self, parent)
            self.setupUi(self)
            
            #拖拽apk
            self.setAcceptDrops(True)
            QtUtil.setFileDragIn(self, self.test)
             
        #安装运行apk
        def test(self,dragInto):
            if os.path.splitext(str(dragInto))[1] == '.apk':
                self.lineEdit.setText(dragInto)
                
                #安装apk
                sub1 = subprocess.Popen('F:/install/Droid4X/adb.exe'+' install ' + str(dragInto))
                sub1.communicate()
    #             os.system('Ping -n 15 127.1 > nul ')
    #             #打开按键精灵运行apk
                sub2 = subprocess.Popen('res/hit.exe')
                sub2.communicate()
    #             
                os.system('Ping -n 20 127.1 > nul ')
    
    #             
                self.screenshots()
                self.pixel()
                
            else:
                QtUtil.showOkDialog(self, 'error', u'不是apk文件')
    
        #截屏
        def screenshots(self):
            bbox = (150, 60, 1280, 790)
            img = ImageGrab.grab(bbox)
            img.save("pixel.png")
    #         img.show()
    #         image = Image.open("pixel.png.png")
    #         image.getcolors()
        #选择像素点
        def pixel(self):
            list = []
            
            self.collect = []
            
            img=Image.open("pixel.png")
            img_array=img.load()
    
            for i in range(100):
                x = random.randint(10,1120)
                y = random.randint(10,720)
                print x,y
                list.append(img_array[x,y])
        
            print list
            for i in range(100):
                if list[i] == (0,0,0):
                    self.collect.append(list[i])
                    
            self.end() 
            self.judge()
            
        #判断是否黑屏
        def judge(self):
            
            if len(self.collect) == 100:            
                QtUtil.showOkDialog(self, 'error', u'出现黑屏')
            else:
                QtUtil.showOkDialog(self, 'correct', u'apk正常') 
    
        #结束运行,删除apk
        def end(self):
            sub = subprocess.Popen('res/remove.exe')
    #         sub.communicate()

    要想运行必须用按键精灵先录制两段脚本用于运行与卸载,运行这款工具,全程全自动,只要打开海马玩模拟器,将其最大化,在将apk拖入工具界面,软件就会自动测试,最后告诉你是否黑屏。

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 

    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4681262.html

  • 相关阅读:
    你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环?
    深入浅出分析 PriorityQueue
    深入浅出分析 ArrayDeque
    深入浅出的分析 Set集合
    深入浅出的分析 Properties
    深入浅出分析 HashMap
    深入浅出的分析 Hashtable
    深入浅出的分析 WeakHashMap
    深入浅出的分析IdentityHashMap
    python 执行js PyExecJS
  • 原文地址:https://www.cnblogs.com/superdo/p/4681262.html
Copyright © 2011-2022 走看看