小工具之apk黑屏自动检测
在打包测试的时候经常发送给测试组之后,发现已进入游戏就黑屏,这个就浪费了测试组的精力,如果要测试多款产品的话,就会因为黑屏问题做很多无用功,这是程序就需要在发给测试的时候自己先测试产品会不会黑屏。同样,数量一多,就会浪费精力。需要先安装到设备上,在点击测试,浪费时间。
这是,你就需要一款全自动的测试工具来帮你检查产品是否黑屏,用不耗精力的方式把每个包的黑屏现象找出来。这就是接下来要介绍的工具——“黑屏检测工具”。
材料
- 按键精灵
- 海马玩模拟器
原理
利用按键精灵将产品在海马玩模拟器中打开,然后在产品运行一段时间之后截屏分析图像,确认是否黑屏。
代码
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
小工具之apk黑屏自动检测的更多相关文章
- java9的JShell小工具和编译器两种自动优化
一.按顺序逐步执行的脚本程序: 二.编译器自动优化 1.不超数据类型范围编译器自动添加强转操作: 2.一但发生运算,byte/short/char都会自动提升为Int,当只有常量参与运算时,编译器会先 ...
- IIS监控应用程序池和站点假死,自动重启IIS小工具
文章技术适合初学者.高级的C#开发工程师这些估计都熟悉到烂了,望不要喷. 第一.C#代码要操作IIS 就必须先导入 Microsoft.Web.Administration.dll ,方便控制台程序做 ...
- iOS内存泄漏自动检测工具PLeakSniffer
新款objective-C内存泄漏自动检测工具 PLeakSniffer , GitHub地址 (https://github.com/music4kid/PLeakSniffer). 背景 前些天读 ...
- Wix 安装部署教程(八) 自动生成XML小工具
这个功能类似于Heat.exe,指定文件夹,生成对应的WIX标签.Winform做的,代码简单,生成的标签需要粘贴到对应的目录才能使用,并不是一步到位. 需要设定两个参数,一个是文件夹路径,一个是文件 ...
- 打造一个自动检测页面是否存在XSS的小插件
前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...
- Android -tool工具UIautomatorviewer提示“不能让屏幕黑屏”
Android中有很多工具可以让我们使用,我使用比较多的有属DDMS,UIautomatorviewer,DDMS中信息也很强大,有空的时候在理理 这篇博主写的很详细:http://www.cnblo ...
- 懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法
在开发的过程中,我们为了节约时间,往往会将大量重复机械的代码封装,考虑代码的复用性,这样我们可以节约很多时间来做别的事情.最近跳槽到一节webform开发的公司,主要是开发自己公司用的ERP.开始因为 ...
- 懒人小工具:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法
之前写了篇文章,懒人小工具:[自动生成Model,Insert,Select,Delete以及导出Excel的方法](http://www.jianshu.com/p/d5b11589174a),但是 ...
- audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题
(一)audio音频标签 <audio src="xxx.mp3"></audio> (二)video视频标签 <video src="xx ...
随机推荐
- qt creator源码全方面分析(4-3)
内外命名空间 QtCreator源码中,每一个子项目都有内外两层命名空间,一个是外部的,一个是内部的. 示例如下 namespace ExtensionSystem { namespace Inter ...
- 初识Java和JDK下载安装
故事:Java帝国的诞生 对手: C&C++ ◆1972年C诞生 ◆贴近硬件,运行极快,效率极高. ◆操作系统,编译器,数据库,网络系统等 ◆指针和内存管理 ◆1982年C++诞生 ◆面向对象 ...
- 01_互联网基本原理和HTML入门
从"上网"说开去 1.上网就是请求数据 老师现在进行一个互联网原理的整体感知的教学,你注意,整体感知中,一些具体的细节,可能令你没有安全感(很多的知识盲点).没有关系,老师进行的是 ...
- [hdu5254]BFS
题意:如果一个格子的相邻四个格子中存在两个格子被标记,且这两个格子有公共点,那么这个格子也被标记.给定初始的标记状态,求最终有多少个格子被标记了 思路: 依次对每个格子进行处理,看它能否”生成“新的被 ...
- bash初始化小建议
bash有一些很好用但已经常被人忽略的小技巧,谨以此文记录下…… 1. 给history命令加上时间 history的命令很好用,他可以记录我们之前做了哪些操作,有了这些记录,我们可以很快捷的重复执行 ...
- 关于日常操作中sql的性能
最近接手了一个项目.使用的数据库是sql server,但是遇到一些关于日期的查询的时候,查询结果非常慢.看了下别人的sql //sql = sql + " and CONVERT(nvar ...
- [Alink漫谈之三] AllReduce通信模型
[Alink漫谈之三] AllReduce通信模型 目录 [Alink漫谈之三] AllReduce通信模型 0x00 摘要 0x01 MPI是什么 0x02 Alink 实现MPI的思想 0x03 ...
- 我的linux学习日记day5
一.vim 编辑器 有三种模式,命令模式,输入模式,末行模式 1.下面是命令模式常用的命令 2.末行模式常用命令 :w 保存 :q 退出 :q! 强制退出 :wq! 强制保存退出 :set nu 显示 ...
- 萌新学习SpringMVC
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这篇SpringMVC被催了很久了,这阵子由于做 ...
- 字符串 kmp算法 codeforce 625B 题解(模板)
题解:kmp算法 代码: #include <iostream>#include <algorithm>#include <cstring>#include < ...