MonkeyRunner的長按操作實現
前兩天組內一同事讓我幫忙寫個自動化腳本,操作很簡單,就是打開測試頁面中的各個鏈接,但有個特殊需求,就是點擊鏈接過程中按下去之后要有一個60~100ms的延遲,之后才離開焦點。
思考了一圈可用的開源工具后,感覺只有monkeyrunner最方便,因為已經有現成的方法(device.touch)和參數(DOWN_AND_UP)可用,但實際操作過程中發現,device.touch(100,100,'DOWN')并不是預期的一直按下狀態。查看了monkeyrunner的源碼后,看到DOWN,UP和DOWN_AND_UP都是MonkeyDevice下的方法,于是使用了這樣的形式使用:device(100,100,MonkeyDevice.DOWN),測試成功。
總結,MonkeyRunner的長按方式:
device(100,100,MonkeyDevice.DOWN)
MonkeyRunner.sleep(1)
device(100,100,MonkeyDevice.UP)
當然,也可以通過drag方法實現:device.drag((100,100),(100,100),1,10)
兩種方式效果一樣,但實現原理是不同的,可以根據自己需求選擇。
附上幫助同事實現的腳本:
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() #創建測試目錄 device.press('KEYCODE_HOME','DOWN_AND_UP') mr.sleep(1) #打開新浪 device.touch(120,200,'DOWN_AND_UP') mr.sleep(15) url_x=55 url_y=200 #分別點擊導航的各個鏈接 for i in range(1,19): #長按實現方式 #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' |
版權聲明:本文出自 fjyxyz 的51Testing軟件測試博客:http://www.51testing.com/?414422
原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。
posted on 2013-12-02 09:11 順其自然EVO 閱讀(1669) 評論(0) 編輯 收藏 所屬分類: android