monkeyrunner2

最近,做android项目测试,测试一个应用程序在多个设备中分辨率是否合适,麻烦得要命,不停的截图比较,前一段时间,研究了一下monkeyrunner ,决定通宵写一个实用性强的monkeyrunner来方便测试使用

前一段时间写的monkeyrunner资料

http://youxilua.blog.51cto.com/3357586/772666

功能说明:

  1. 可以自动安装apk到android模拟器或者android实机
  2. 可以截取设定好activity运行在android模拟器或者android实机上的效果图
  3. 截图根据设备名和截取时间保存
  4. 能够自动设别所有运行中的android模拟器或者android实机
  5. 能够自动安装在特定文件夹下所有的apk文件到android模拟器或者实机

功能实现:

环境配置:

  • 设置好android /tootls 和 android /platform-tools 目录的到环境变量中,确保adb命令能够在cmd下正常运行

脚本编写:

该功能需要创建以下几个文件

componentName.txt

使用约定

每一行为需要运行的activity的完整名字

例如:

kg.tom/.HandlerThreadActivity
kg.monkey/.MonkeyActivity

takeSnap.bat
  
  1. @echo off
  2. rem 获取当前运行设备 adb devices > devices.txt rem
  3. 获取APK文件 dir apk /B > apk.txt rem 运行monkeyrunner
  4. 脚本 monkeyrunner work.py

xxxx

核心运行脚本:

  
  1. #导入我们需要用到的包和类并且起别名
  2. import sys,time,datetime from com.android.monkeyrunner import
  3. MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as
  4. md from com.android.monkeyrunner import MonkeyImage as mi deviceslist = []
  5. devices = [] snapshot = [] templist = [] f = open("devices.txt") while True:
  6. line = f.readline() if line: templist.append(line.strip())
  7. else: break;
  8. f.close() templist.pop() for i in range(len(templist)):
  9. deviceslist.append(templist[i].split('\t')) fc = open("componentName.txt")
  10. complist = [] while True: comp = fc.readline() if comp:
  11. complist.append(comp.strip())
  12. else: break; fc.close() fp = open("apk.txt") apklist = []
  13. while True: apk = fp.readline() if apk:
  14. apklist.append(apk.strip()) else:
  15. break; print 'apk list :'print apklist print 'start componentName list :'
  16. print complist print 'devices list:'print deviceslist for i in range(1,len(deviceslist)):
  17. print 'current devices:' print deviceslist[i]
  18. devices.append(mr.waitForConnection(1.0,deviceslist[i][0]))
  19. #安装apk文件
  20. for j in range(len(apklist)):
  21. devices[i-1].installPackage('apk/'+apklist[j])
  22. #启动activity
  23. for k in range(len(complist)):
  24. print 'current start activity:'
  25. print complist[k]
  26. devices[i-1].startActivity(component=complist[k])
  27. #设置延时秒数
  28. mr.sleep(5.0)
  29. #----------------
  30. #这里可进行一定的UI操作
  31. #----------------
  32. #mr.sleep(3.0)
  33. #进行截图
  34. snapshot.append(devices[i-1].takeSnapshot())
  35. print 'end snapshot'
  36. #创建时间字符串
  37. t = time.strftime("%Y-%m-%d-%X",time.localtime())
  38. t = t.replace(":","-")
  39. #保存截图
  40. package = complist[k].replace('/.','.')
  41. snapshot[0].writeToFile('takeSnapshot/'+deviceslist[i][0]+'-'+t+'-'+package+'.png','png');
  42. snapshot.pop()
由于之前毫无编写python的经验,只能写成这样了,欢迎高手补充!!!!!!

使用:

把tools文件夹里面的全部文件,同样放在android sdk tools 文件夹下即可,运行takeSnap.bat就可以获取到多个设备运行时的截图了,这个期间…你可以选择去泡一杯咖啡…耗时情况…看你要测试几个设备,还有如何测试了……

效果图:

三个虚拟机,在一台实机,测试两个apk在这些设备的运行境况

以下为全部截图文件:

以后可能会更新的部分和改善的地方

1,支持从外部读取monkeyrunner 脚本进行多设备运行…其实..现在这个也可以…只是没写上

2,同一样设备的截图放置在一样设备名的文件,(这个…其实补充起来也很快…不过,要做完善就要判断设备名与创建文件名是否合法等等,不过…我感觉,将所有截图放到一个文件夹下更方便用来比较,就没写了,有兴趣的自行补充…同时,也顺便贴到这里来吧…)

3,由于,本人的脚步编写功底实在是烂,不知道如何在运行环境中设置环境变量,就不得已要在android sdk tools目录 下运行,如果,觉得这个脚步还可以,希望帮忙完善,能够达到在任意目录下…

4,当设备是离线状态无法判断,不过,在以上的脚本中已经实现了获取设备的状态,只是,很少,碰到就懒得补充了….

5,如果,出现无法连接设备…那么请再运行一遍…如果…还不行…就重启吧…这跟脚本没关系吧…貌似…就是有这种问题…

6,最后,附上下载地址:

http://www.kuaipan.cn/file/id_2622545685699681.html

原文:http://youxilua.blog.51cto.com/3357586/772652

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353825.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

梦三国解析服务器spl文件头失败,流沙恐遭降级?《梦三国2》MPL夏季赛第二轮激战全面开启...

逐梦巅峰,为荣耀而战!2020《梦三国2》职业联赛(简称:MPL)夏季常规赛第一轮较量于上周正式结束,风月战队后来居上,通过6小局连胜将战队积分累积至14分,积分排名连跳3级成功登顶第四周积分榜首之位。常规赛半…

2017计算机最高配置,快来升级你的电脑:2017年单机大作配置要求一览

2017年,众多新游戏都蓄势待发,你的PC是否还能经受得住接连而来的游戏性能挑战呢?当然每个玩家所爱的游戏都是不一样的,所谓众口难调,并且各家厂商对游戏的优化程度也不尽相同,而且网游和单机对于硬件的要求…

对安装Linux的服务器进行缓存清除

安装Linux的服务器缓存过高导致服务器运行速度慢 第一步,查看当前服务器中Linux系统的状态。 命令:free -h 第二步:备份内存缓冲区中的数据到磁盘中。 命令:sync 在大多数情况下,不需要手动使用sync命令&#xff0…

英文的美好。。。

If You Could Choose If you had the power to decide what types of opportunities would come your way, what opportunities would you select? If you knew that your experiences would match your expectations, what would your expectations be?In fact, you do have…

中国独特词的英文表达(转)

发表文章 中国独特词的英文表达(转) 2006-10-06 16:54:57 大中小 1、中国意念词(Chinesenesses) 八卦 trigram 阴、阳 yin, yang 道 Dao(cf. logo) 江湖(世界) the jianghu World &…

文学-谚语-英文谚语:英文谚语

ylbtech-文学-谚语-英文谚语:英文谚语 英语谚语指流传于英国和美国的比较简练而且言简意赅的话语。英语谚语有一部分来自书面文献,主要出自希腊罗马神话、寓言故事、莎士比亚戏剧以及一些名家作品中。 1.返回顶部 1、 中文名:英语谚语 外文名…

Redis面试核心技术点和缓存相关问题

目录 Redis的数据结构和原理 Redis持久化:RDB和AOF Redis的集群设计 缓存雪崩、击穿、穿透 高并发场景下缓存和数据库更新策略 Redis的大key和热key和大value 本地缓存 磁盘IO和网络开销 相比于 请求内存IO 要高上千倍,如果某个数据从数据库磁盘读…

es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

目录 评分机制 机制 查看评分实现如何算出来的explaintrue 分析能否被搜索到 Doc value 正排序索引 Query phase Fetch phase Preference 问题 解决跳跃结果问题 Timeout 到达时间直接返回,解决耗时过长问题 Routing 数据准确分配到某地,解决相…

ChatGPT会取代低代码开发平台吗?

编程作为一种高端技能,向来是高收入高科技的代名词。近期,伴随着ChatGPT在全球的爆火,过去通过窗口“拖拉拽”的所见即所得方式的低代码开发模式,在更加智能和更低成本的AI搅局之下,又面临了更深层次的影响。 低代码平…

高性能至强融核服务器,剖析两大至强融核产品规格_Intel服务器CPU_服务器评测与技术-中关村在线...

英特尔至强融核协处理器基于英特尔集成众核(英特尔MIC)架构,可作为现有英特尔至强处理器E5-2600/4600产品家族的补充,为高度并行化的应用提供无与伦比的性能。 此次推出的至强融核协处理器3100系列和5110p两大家族,基于其最先进的22纳米3-D三…

处理器最新排行_鲁大师Q2季度PC硬件排行:Intel十代酷睿初入战局,最受欢迎CPU是它...

点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事! 鲁大师2020年Q2季度消费级PC硬件排行数据来源于2020.04.01-06.30日,为减少小众产品(服务器)冲击榜单,使得榜单更具备参考价值&…

CPU避坑指南——1、CPU基础知识-型号

目录 前言 AMD与intel基础知识 选CPU共同问题剖析 什么是CPU CPU标识的说明 CPU后面的字母 AMD说明 前言 插槽类型:要选择与主板兼容的CPU插槽类型,例如Intel主板需要选用Intel CPU,AMD主板需要选用AMD CPU。 型号:要根据…

Android 开发常用性能优化工具总结

目录 systraceSystrace是什么?可以分析哪些问题?启动 perfetto什么是Perfetto?Perfetto和Systrace的关系? ProfileCPUMemory WinScope--跟踪窗口转换Layout InspectorUiAutomatorViewerhierarchyviewerLintTencent/matrix开发者选项显示面(surface)更新…

2021年5月国产数据库排行榜:“华为高斯模式”取得成功,阿里OPA持续攀升

2021年5月国产数据库排行榜已经出炉,前十中TiDB依然以612分稳坐榜首,分数较上月降低8分;阿里系OceanBase上涨34分位列第二,为本月最大涨幅,阿里云PolarDB上涨28分,排在第三,阿里云AnalyticDB排在…

台式计算机cpu多好,2019台式处理器排行榜_台式机处理器排行榜 前六强详细介绍...

台式机处理器排行榜 前六强详细介绍 JPG,300x200,128KB,375_250 2019国产手机排名前十,中国最好手机排名第一竟是这部 JPG,337x337,131KB,311_311 INTEL AMD能够带来多核服务器时代 JPG,1620x10…

2017 开源中国新增开源项目排行榜 TOP 100

2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度上预示着业界的最新流行趋势。 可以看到,前十名中有九…

华为OD机试真题 Java 实现【玩牌高手】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌, 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分…

计算机处理器性能排名,cpu天梯图2018最新版 2018电脑cpu处理器性能排行榜

小编为大家分享2018年最新cpu天梯图,包含桌面端台式机cpu和移动端笔记本电脑cpu性能排行榜,电脑处理器cpu主要有Intel和AMD两大主流品牌。电脑cpu性能好坏决定一台电脑运算能力,所以用户买电脑时非常关心cpu的性能,cpu性能可以通过cpu天梯图来判断,现在是2018年,自然要看…

物理机服务器cpu性能排行榜,g务器cpu性能排行_CPU天梯图2019年7月份新版——CPU性能排行天梯图...

CPU天梯图2019年7月份新版——CPU性能排行天梯图2019(4) CPU天梯图2019年7月份新版——CPU性能排行天梯图2019(4),入门级市场:0 - 600元 奔腾、赛扬依旧是经济型市场的主力出货处理器,然而过去一个月它们...>>2人转发 CPU天梯图2019年7…

工业相机分类、相关参数含义

一、工业相机参数 1、分辨率 分辨率是相机最基本的参数,由相机所采用的芯片分辨率决定,在采集图像时,相机的分辨率对检测精度有很大的影响,在对同样大的视场(景物范围)成像时,分辨率越高&…