W e S D
0 1

小工具之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

 

posted @ 2015-07-27 21:26  SD.Team  阅读(1041)  评论(0编辑  收藏  举报