Python 隨機按鍵模擬2小時
Android終端(車載,手機)等,
需要模擬進行隨意進行各類按鍵(車載方向盤按鍵,手機硬按鍵)的操作,測試系統對隨機按鍵事件的響應穩定性,一般測試2小時。
準備階段一般是用adb shell input keyevent + KeyCode 來模擬按鍵事件。比如adb shell input keyevent 24 可以模擬“音量加鍵”,以下是比較常用的幾個按鍵的鍵值表。
KeyCode 釋義 3 Home鍵 4 返回鍵 5 電話撥號鍵 24 音量加鍵 25 音量減鍵 26 電源鍵 27 照相機啟動鍵 87 多媒體下一曲鍵 88 多媒體上一曲鍵 91 音量靜音鍵
Python批處理腳本形式批量處理腳本的特點是:批量順序執行語句
# coding=utf-8 import osimport timeimport random TIMEOUT= 7200 # 2小時(7200s) 常量once_time = time.time() # 獲取當前時間戳,并保存到一個變量keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號鍵', 24: '音量加鍵',25: '音量減鍵', 26: '電源鍵', 27: '照相機啟動鍵', 87: '下一曲鍵',88: '上一曲鍵', 91: '靜音鍵'} # 循環獲取當前時間,與once_time變量做時間戳做減法while time.time() - once_time <= TIMEOUT: # 隨機選擇字典的某個“鍵” keycode = random.choice(list(keycode_dict.keys())) command = 'adb shell input keyevent %s' % keycode print('成功按下了%s' % keycode_dict[keycode]) os.system(command) time.sleep(0.5) # 間隔0.5s,再進行下一次按鍵模擬 print('已經進行了 %d 秒..., 一共需要測試 %d 秒' % (time.time() - once_time, TIMEOUT)) os.system('pause')Python面向過程函數形式
看哪些代碼塊,可以組成一個具體的功能,這個案例,可以用input_keyevent(), 代表輸入按鍵事件的功能函數,這個函數可以接收參數輸入,可以指定輸入多久的按鍵事件。
# coding=utf-8 import osimport timeimport random def input_keyevent(timeout): once_time = time.time() # 獲取當前時間戳,并保存到一個變量 keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號鍵', 24: '音量加鍵', 25: '音量減鍵', 26: '電源鍵', 27: '照相機啟動鍵', 87: '下一曲鍵', 88: '上一曲鍵', 91: '靜音鍵'} # 循環獲取當前時間,與once_time變量做時間戳做減法 while time.time() - once_time <= timeout: # 隨機選擇字典的某個“鍵” keycode = random.choice(list(keycode_dict.keys())) command = 'adb shell input keyevent %s' % keycode print('成功按下了%s' % keycode_dict[keycode]) os.system(command) time.sleep(0.5) # 間隔0.5s,再進行下一次按鍵模擬 print('已經進行了 %d 秒..., 一共需要測試 %d 秒' % (time.time() - once_time, timeout)) input_keyevent(7200)os.system('pause')Python面向對象類形式
1.以'萬物皆可歸類'的思想, 先抽象化出一個類來,類名一般建議用'名詞', 所以我們命名為'KeyeventInputter',代表按鍵事件輸入器, 且一般要駝峰式(首字母大寫)來規范類的命名。
2.養成良好的類的初始化(__init__)的習慣,初始化過程中, 可以定義屬性,self.keycode_dict。
3.定義方法(函數), input_keyevent函數。4.類是一個抽象的事物, 必須實例化成具體的對象后,才能進行調用, 所以我們實例化并命名成了k_obj, 表明是一個對象。5.實例化成具體對象后, 對象就可以調用input_keyevent這個函數了。
# coding=utf-8 import osimport timeimport random class KeyeventInputter(): def __init__(self): self.keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號鍵', 24: '音量加鍵', 25: '音量減鍵', 26: '電源鍵', 27: '照相機啟動鍵', 87: '下一曲鍵', 88: '上一曲鍵', 91: '靜音鍵'} def input_keyevent(self, timeout): once_time = time.time() # 獲取當前時間戳,并保存到一個變量 # 循環獲取當前時間,與once_time變量做時間戳做減法 while time.time() - once_time <= timeout: # 隨機選擇字典的某個“鍵” keycode = random.choice(list(self.keycode_dict.keys())) command = 'adb shell input keyevent %s' % keycode print('成功按下了%s' % self.keycode_dict[keycode]) os.system(command) time.sleep(0.5) # 間隔0.5s,再進行下一次按鍵模擬 print('已經進行了 %d 秒..., 一共需要測試 %d 秒' % (time.time() - once_time, timeout)) k_obj = KeyeventInputter()k_obj.input_keyevent(7200)os.system('pause')運行方式與效果
確保Android設備通過USB線與電腦連接了,adb設備有效連接,以上代碼的3種實現形式都可以直接運行,比如保存為random_keyevent.py并放在桌面,建議python random_keyevent.py運行,當然也可以雙擊運行。
運行效果如下:
以上就是Python 隨機按鍵模擬2小時的詳細內容,更多關于Python 隨機按鍵模擬的資料請關注好吧啦網其它相關文章!
相關文章: