monkeyrunner进行多设备UI测试

#导入我们需要用到的包和类并且起别名
import sys,time,datetime
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi
from com.android.chimpchat.hierarchyviewer import HierarchyViewer #根据ID找到ViewNode,对viewnode的一些操作等
from com.android.monkeyrunner.easy import EasyMonkeyDevice  #提供了根据ID进行访问方法touch、drag等
from com.android.monkeyrunner.easy import By    #根据ID返回PyObject的方法
from com.android.hierarchyviewerlib.models import ViewNode as vn #代表一个控件,可获取控件属性templist = []#设置一个空列表,用来放设备内容
deviceslist =[]#设置一个空列表,用来放分割后的设备内容
devices = []    #设置一个空列表,用来读取放分割后的设备内容
snapshot = []#设置一个空列表,用来读取截图
text = []#设置一个空列表,用来读取结果文本#已经将设备列表导出adb devices>E:\devices.txt
#将设备列表导入到templist中
f = open("E:\devices.txt")#读取文件
while True:line = f.readline()#逐行读print lineif line:templist.append(line.strip())#删除所读行的空格,增加到templist列表中,默认每个元素后都有\tdevicesprint templistelse:break;
f.close() #关闭
print templist
templist.pop(0) #删除下标为0的元素,现在templist列表元素为['emulator-5554\tdevices','emulator-5556\tdevices','']
print templist
print len(templist)#将每个元素使用\t分割,并导入到新列表 deviceslist中
for i in range(0,len(templist)-1):deviceslist.append(templist[i].split('\t')) #deviceslist列表元素为[['emulator-5554','devices'],['emulator-5556','devices']]for i in range(len(deviceslist)):#遍历每个元素print 'current devices:'print deviceslist[i][0]#只读取元素的前半部分devices.append(mr.waitForConnection(1.0,deviceslist[i][0]))##devices列表元素为['emulator-5554','emulator-5556']if not devices:print >> sys.stderr,"fail"sys.exit(1)else:print 'connnect success'#启动activitydevices[i].startActivity('com.sky.jisuanji/.JisuanjizixieActivity')easy_device = EasyMonkeyDevice(devices[i])#初始化EasyMonkeyDevice模块,必须放在startActivity之后,用来通过ID访问控件hViewer = devices[i].getHierarchyViewer() # 对当前UI视图进行解析#输入账号Cotent='6000000891'device.type(Cotent)mr.sleep(3.0)#点击确定easy_device.touch(By.id('id/register_input_mobile_btn'),device.DOWN_AND_UP)mr.sleep(30.0)#输入验证码Cotent='5957'device.type(Cotent)mr.sleep(3.0)#点击确定easy_device.touch(By.id('id/register_check_btn'),device.DOWN_AND_UP)mr.sleep(30.0)#点击moreeasy_device.touch(By.id('id/layout_tabhost_icon'),device.DOWN_AND_UP)mr.sleep(30.0)#点击设置easy_device.touch(By.id('id/appsetting'),device.DOWN_AND_UP)mr.sleep(30.0)#点击账号easy_device.touch(By.id('id/my_account_layout'),device.DOWN_AND_UP)mr.sleep(30.0)#点击下线easy_device.touch(By.id('id/setting_layout'),device.DOWN_AND_UP)mr.sleep(30.0)#点击确定下线easy_device.touch(By.id('id/btn_ok'),device.DOWN_AND_UP)mr.sleep(5.0)#进行takeSnapshot截图snapshot.append(devices[i].takeSnapshot())print 'end snapshot'#创建时间字符串t = time.strftime("%Y-%m-%d-%X",time.localtime())t = t.replace(":","-")#保存截图snapshot[0].writeToFile(deviceslist[i][0]+'-'+t+'-'+'.png','png');snapshot.pop()#通过By来获取text.append(easy_device.getText(By.id('id/text')))print text[i].encode('utf-8')#打印结果#比较设备输出的结果
for i in range(len(devices)-1):for j in range(1,len(devices)):if text[i]==text[j]:print 'true'else:print 'false'

monkeyrunner进行多设备UI测试相关推荐

  1. 网易自动化UI测试解决方案Airtest Project亮相GDC

    GDC开幕第一天,Google在GDC发布了一款由网易研发的游戏UI自动化测试方案:Airtest Project.21日,这项研发成果也展开了专门的讲座活动,向全球开发者公开演示. Airtest ...

  2. ui自动化测试测试报告_您需要了解的有关UI测试的所有信息

    ui自动化测试测试报告 让我们从一个问题开始. 用户在网站上进行互动的第一件事是什么? 接口,当然. 网站的外观是在用户身上产生"第一印象"的第一件事. 交互式Web应用程序可以为 ...

  3. 您需要了解的有关UI测试的所有信息

    让我们从一个问题开始. 用户在网站上进行互动的第一件事是什么? 接口,当然. 网站的外观是在用户身上产生"第一印象"的第一件事. 交互式Web应用程序可以为用户带来成败,这就是为什 ...

  4. 软件“美不美”,UI测试一下就知道

    摘要:软件测试的最高层次需求是:UI测试,也就是这个软件"长得好不好看". 为了让读者更好地理解测试,我们从最基础的概念开始介绍.以一个软件的"轮回"为例,下图 ...

  5. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  6. Android UI 测试框架Espresso详解

    Android UI 测试框架Espresso详解 1. Espresso测试框架 2.提供Intents Espresso 2.1.安装 2.2.为Espresso配置Gradle构建文件 2.3. ...

  7. 软件测试基础 按照测试对象划分 界面测试(UI测试.响应式页面 可靠性测试 容错性测试 文档测试 平台测试 易用性测试等

    软件测试进阶 1.APP 的测试 2. 按照测试对象划分 2.1界面测试(UI测试) 3.响应式页面 4.可靠性测试 5.容错性测试 6.文档测试 7.平台测试: 7.1 PC: 7.2.手机端: 8 ...

  8. 自动化测试系列 | UI测试自动化测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...

  9. Android Studio中进行单元测试和UI测试

    目录 在Android Studio中进行单元测试和UI测试 - 1.概述 在Android Studio中进行单元测试和UI测试 - 2.创建新的Android Studio工程 在Android ...

最新文章

  1. MySQL运行状态show status详解
  2. 深入Java虚拟机:Class文件实例解析
  3. mormot数据库连接+查询+序列为JSON
  4. spring bean 基于xml的4中初始化方法
  5. Restful API 中的错误处理方案
  6. android布局属性详解(转)
  7. jquery动态改变div宽度和高度
  8. 2021 ZUST,XCPC选拔赛
  9. 数据挖掘如何计算相关性_一份数据挖掘入门指南!!!
  10. jQuery知识点学习整理
  11. android6.0彩蛋小游戏,安卓系统暗藏彩蛋?隐藏小游戏让你玩到停不下来
  12. 【数据结构 课程设计】识别结点(node) 故障和边缘(edge)故障中的网络断层扫描
  13. 这所985【交通大学】成立电子与信息学部!计算机等专业包含在内!
  14. 使用fontforge精简字体文件
  15. HDS存储给主机扩容步骤
  16. MacBook使用HHKB键盘设置
  17. 打不死的又如何能毁灭呢?尴尬的 Windows XP 是升级还是保留?
  18. C语言-英文字母倒序转换
  19. 校验导入的Excel文件标题行与要求的标题行是否一致
  20. Tk 的基本概念-组件—Tkinter 教程系列03

热门文章

  1. java编辑遗忘曲线代码,【软件工具篇02】使用Anki克服遗忘曲线
  2. TCP重连重试机制——记一次线上故障排查思考
  3. 高考成绩等位分查询2021,干货│如何查询等位分?精确填报志愿必备......
  4. 美容,美甲,美妆等美业如何接入小程序
  5. 高性能计算与高性能计算机讲座笔记
  6. win10 查看已保存无线密码的方法
  7. 判断浏览器类型 (区分IE浏览器)
  8. wincc 数据库的连接方法
  9. 成本(CPU Costing)的含义
  10. 电脑CPU使用率过高怎么办