MonkeyRunner的長(zhǎng)按操作實(shí)現(xiàn)
前兩天組內(nèi)一同事讓我?guī)兔?xiě)個(gè)自動(dòng)化腳本,操作很簡(jiǎn)單,就是打開(kāi)測(cè)試頁(yè)面中的各個(gè)鏈接,但有個(gè)特殊需求,就是點(diǎn)擊鏈接過(guò)程中按下去之后要有一個(gè)60~100ms的延遲,之后才離開(kāi)焦點(diǎn)。
思考了一圈可用的開(kāi)源工具后,感覺(jué)只有monkeyrunner最方便,因?yàn)橐呀?jīng)有現(xiàn)成的方法(device.touch)和參數(shù)(DOWN_AND_UP)可用,但實(shí)際操作過(guò)程中發(fā)現(xiàn),device.touch(100,100,'DOWN')并不是預(yù)期的一直按下?tīng)顟B(tài)。查看了monkeyrunner的源碼后,看到DOWN,UP和DOWN_AND_UP都是MonkeyDevice下的方法,于是使用了這樣的形式使用:device(100,100,MonkeyDevice.DOWN),測(cè)試成功。
總結(jié),MonkeyRunner的長(zhǎng)按方式:
device(100,100,MonkeyDevice.DOWN)
MonkeyRunner.sleep(1)
device(100,100,MonkeyDevice.UP)
當(dāng)然,也可以通過(guò)drag方法實(shí)現(xiàn):device.drag((100,100),(100,100),1,10)
兩種方式效果一樣,但實(shí)現(xiàn)原理是不同的,可以根據(jù)自己需求選擇。
附上幫助同事實(shí)現(xiàn)的腳本:
import random from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as md from com.android.monkeyrunner import MonkeyImage as mi device=mr.waitForConnection() #創(chuàng)建測(cè)試目錄 device.press('KEYCODE_HOME','DOWN_AND_UP') mr.sleep(1) #打開(kāi)新浪 device.touch(120,200,'DOWN_AND_UP') mr.sleep(15) url_x=55 url_y=200 #分別點(diǎn)擊導(dǎo)航的各個(gè)鏈接 for i in range(1,19): #長(zhǎng)按實(shí)現(xiàn)方式 #device.drag((url_x,url_y),(url_x,url_y),0.2,1) randomNum=random.uniform(0.06,0.1) device.touch(url_x,url_y,md.DOWN) mr.sleep(randomNum) device.touch(url_x,url_y,md.UP) print "sina:",i print "sleep time:",randomNum mr.sleep(15) device.press('KEYCODE_BACK','DOWN_AND_UP') url_x+=85 if url_x==480: url_x=55 url_y+=45 else: print 'end' |
版權(quán)聲明:本文出自 fjyxyz 的51Testing軟件測(cè)試博客:http://www.51testing.com/?414422
原創(chuàng)作品,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明本文原始出處、作者信息和本聲明,否則將追究法律責(zé)任。
posted on 2013-12-02 09:11 順其自然EVO 閱讀(1669) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): android