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

时间: 2024-10-13 22:30:55

小工具之apk黑屏自动检测的相关文章

iOS内存泄漏自动检测工具PLeakSniffer

http://www.cocoachina.com/ios/20160706/16951.html 本文授权转自MrPeak技术分享(公众号:MrPeakTech) 新款Objective-C内存泄漏自动检测工具PLeakSniffer,GitHub地址. 背景 前些天读到WeRead团队分享的一款内存泄漏检测工具MLeaksFinder,恍惚想起早些时候自己也有过编写这样一个小工具的想法,不知道由于什么原因把这事给忘记了.在仔细读过MLeaksFinder源码,了解实现思路之后,发现和自己最初

跳出小程序 video组件 卡顿、黑屏、全屏等坑

前些天,朋友遇到一个小程序的问题叫我帮忙看看,说是ios上video组件会有严重的黑屏现象,这就有意思了. 知道问题后,我就开始试一试,发现如果页面只有一个video组件的话,是没有什么问题的.但是但页面有多个video的时候,问题就有点严重了: 1.设置了播放方式为非自动播放,但是进到页面的是还是时不时有一两个会自动播放 2.卡,页面很卡 3.进入全屏的时候,视频方向是根据宽高自己适配,但是退出全屏的时候,会出现这种情况:刚刚视频是横屏播放,退出了页面也是横屏 4.退出全屏后,页面上除了刚刚那

写个js小工具自动生成博文目录

我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到具体的内容,这样园友们在看博客的时候就可以很方便地浏览自己感兴趣的内容,但是遗憾的是博客园不支持博文目录的生成,好像也有园友给博客园提建议,希望能够像CSDN那样能够自动生成博文目录,但是不知道是什么原因,博客园一直都没有把这个功能加上去,既然没有,那我就自己做吧,研究了2天,总算是按照自己的设想做出来了,最终效果如下: 下面来介绍一下这个小工具的实现. 一.

解决CentOS 自动黑屏问题

最近在学习CentOS5,但是CentOS5过了一会就自动黑屏,需要动一下鼠标才行,感觉很麻烦, 后来发现:系统->首选项->屏幕保护程序,在屏幕保护程序中进行相应设置就可以了的说.

用小工具来检测你的网站是否在正常运行!

现在有很多优秀的开源监控工具:比如zabbix,cacti,nagios等.功能很强大,但是有时候想检测某一个小功能,搭建一个监控也不至于.比如我个人来说,就不喜欢用监控来检测网站是否在正常运行,一方面担心丢包,或者服务器意外宕机等原因,个人比较喜欢用一些小工具来检测网站是否正常运行.分享一下! 1.telnet(比较适合临时检测) yum install telnet -y 百度百科: http://baike.baidu.com/link?url=zECAHJux_DV5FFG8wBp8WB

用Python写个自动ssh登录远程服务器的小工具

很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的打造一个在Linux/Mac os运行的自动ssh登录远程服务器的小工具.来个GIF动画示例下先: 概述 我们先理一下我们需要些什么功能: 1. 添加/删除连接服务器需要的IP,端口,密码 2. 自动输入密码登录远程服务器 对,我们就做这么简单的功能 开始写代码代码比较长,所以我也放在在Github

android的apk自动检测升级

首先获取本地apk版本: /** * 获取本地软件版本 */ public static int getLocalVersion(Context ctx){ int localVersion = 0; try { PackageInfo packageInfo = ctx.getApplicationContext() .getPackageManager().getPackageInfo(ctx.getPackageName(), 0); localVersion = packageInfo.

批量编码转化工具(实现文件编码的自动检测)

先看截图 工具对.c,.h,.cpp,.txt文件进行转换,其余类型文件,则仅仅拷贝到转换后的输出路径.这种处理是为了转换前和转换后的项目结构保持不变. 工具中一个重要的部分,是对文件编码的自动检测(选项为Auto的情况) 此部分使用了第三方组件(NonCodeNet) 调用代码如下: public string getFileEncoding(string filePath) { string uni = string.Empty; Stream stream = File.Open(file

Wix 安装部署教程 自动生成XML小工具

这个功能类似于Heat.exe,指定文件夹,生成对应的WIX标签.Winform做的,代码简单,生成的标签需要粘贴到对应的目录才能使用,并不是一步到位. 需要设定两个参数,一个是文件夹路径,一个是文件夹对应的变量. 会根据文件夹的目录生成Directory目录.DirectoryRef目录(包含file和Component)以及ComponentRef目录.需要复制下来后粘贴到对应的部分.GUID都是自动生成,Id是根据文件或者文件夹的名称得来.id不能以数字开头,所以File带了file前缀,