日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

monkeyrunner自动化测试工具--脚本实例

發(fā)布時(shí)間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 monkeyrunner自动化测试工具--脚本实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近研究monkeyrunner,感覺還是挺好用的,最終陸續(xù)耗費(fèi)兩天時(shí)間完成以下腳本。有寫的不好的地方,歡迎批評(píng)指導(dǎo),共同進(jìn)步。

該腳本實(shí)現(xiàn)以下功能:

自動(dòng)識(shí)別多設(shè)備

自動(dòng)在各設(shè)備運(yùn)行app

自動(dòng)將運(yùn)行結(jié)果截圖

自動(dòng)對(duì)比運(yùn)行結(jié)果

首先 adb devices ? >E:\devices.txt

腳本

#導(dǎo)入我們需要用到的包和類并且起別名 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 #根據(jù)ID找到ViewNode,對(duì)viewnode的一些操作等 from com.android.monkeyrunner.easy import EasyMonkeyDevice #提供了根據(jù)ID進(jìn)行訪問方法touch、drag等 from com.android.monkeyrunner.easy import By #根據(jù)ID返回PyObject的方法 from com.android.hierarchyviewerlib.models import ViewNode as vn #代表一個(gè)控件,可獲取控件屬性templist = []#設(shè)置一個(gè)空列表,用來放設(shè)備內(nèi)容 deviceslist =[]#設(shè)置一個(gè)空列表,用來放分割后的設(shè)備內(nèi)容 devices = [] #設(shè)置一個(gè)空列表,用來讀取放分割后的設(shè)備內(nèi)容 snapshot = []#設(shè)置一個(gè)空列表,用來讀取截圖 text = []#設(shè)置一個(gè)空列表,用來讀取結(jié)果文本#已經(jīng)將設(shè)備列表導(dǎo)出adb devices>E:\devices.txt #將設(shè)備列表導(dǎo)入到templist中 f = open("E:\devices.txt")#讀取文件 while True:line = f.readline()#逐行讀print line if line:templist.append(line.strip())#刪除所讀行的空格,增加到templist列表中,默認(rèn)每個(gè)元素后都有\(zhòng)tdevicesprint templistelse:break; f.close() #關(guān)閉 print templist templist.pop(0) #刪除下標(biāo)為0的元素,現(xiàn)在templist列表元素為['emulator-5554\tdevices','emulator-5556\tdevices',''] print templist print len(templist)#將每個(gè)元素使用\t分割,并導(dǎo)入到新列表 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)):#遍歷每個(gè)元素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'#啟動(dòng)activitydevices[i].startActivity('com.sky.jisuanji/.JisuanjizixieActivity')easy_device = EasyMonkeyDevice(devices[i])#初始化EasyMonkeyDevice模塊,必須放在startActivity之后,用來通過ID訪問控件hViewer = devices[i].getHierarchyViewer() # 對(duì)當(dāng)前UI視圖進(jìn)行解析#2、執(zhí)行計(jì)算1+2=3easy_device.touch(By.id('id/qingchu'),devices[i].DOWN_AND_UP)easy_device.touch(By.id('id/btn1'),devices[i].DOWN_AND_UP)easy_device.touch(By.id('id/jia'),devices[i].DOWN_AND_UP)easy_device.touch(By.id('id/btn2'),devices[i].DOWN_AND_UP)easy_device.touch(By.id('id/denyu'),devices[i].DOWN_AND_UP) #=mr.sleep(5.0)#進(jìn)行takeSnapshot截圖snapshot.append(devices[i].takeSnapshot())print 'end snapshot'#創(chuàng)建時(shí)間字符串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')#打印結(jié)果#比較設(shè)備輸出的結(jié)果 for i in range(len(devices)-1):for j in range(1,len(devices)):if text[i]==text[j]:print 'true'else:print 'false'
效果圖:


最終運(yùn)行結(jié)果:

List of devices attached ['List of devices attached'] emulator-5554 device['List of devices attached', 'emulator-5554\tdevice'] emulator-5556 device['List of devices attached', 'emulator-5554\tdevice', 'emulator-5556\tdevice']['List of devices attached', 'emulator-5554\tdevice', 'emulator-5556\tdevice', '']['List of devices attached', 'emulator-5554\tdevice', 'emulator-5556\tdevice', ''] ['emulator-5554\tdevice', 'emulator-5556\tdevice', ''] 3 current devices: emulator-5554 connnect success end snapshot 3.0 current devices: emulator-5556 connnect success end snapshot 3.0 true


總結(jié)

以上是生活随笔為你收集整理的monkeyrunner自动化测试工具--脚本实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。