码迷,mamicode.com
首页 > 其他好文 > 详细

小工具之apk黑屏自动检测

时间:2015-07-27 22:46:25      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

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

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

材料

  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, uapk正常) 

    #结束运行,删除apk
    def end(self):
        sub = subprocess.Popen(res/remove.exe)
#         sub.communicate()

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

 

 技术分享

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

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

 

小工具之apk黑屏自动检测

标签:

原文地址:http://www.cnblogs.com/superdo/p/4681262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!