Android終端(車載,手機)等,
須要考慮進行隨意進行各種按鍵(車載方向盤按鍵,手機硬按鍵)的操做,
測試系統對按鍵事件的響應穩定性,通常測試2小時。python
通常是用adb shell input keyevent + keyCode 來模擬按鍵事件,
好比adb shell input keyevent 24 能夠模擬「音量加鍵」,
如下是比較經常使用的幾個按鍵的鍵值表。shell
KeyCode | 釋義 |
---|---|
3 | Home鍵 |
4 | 返回鍵 |
5 | 電話撥號鍵 |
24 | 音量加鍵 |
25 | 音量減鍵 |
26 | 電源鍵 |
27 | 照相機啓動鍵 |
87 | 多媒體下一曲鍵 |
88 | 多媒體上一曲鍵 |
91 | 音量靜音鍵 |
批量處理腳本的特色是:批量順序執行語句微信
# coding=utf-8 import os import time import random timeout = 7200 # 2小時(7200s) now_time = time.time() # 獲取當前時間戳,並保存到一個變量 keycode_dict = {3: "HOME鍵", 4: "返回鍵", 5: "電話撥號鍵", 24: "音量加鍵", 25: "音量減鍵", 26: "電源鍵", 27: "照相機啓動鍵", 87: "下一曲鍵", 88: "上一曲鍵", 91: "靜音鍵"} # 循環獲取當前時間,與now_time變量作時間戳作減法 while time.time() - now_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() - now_time, timeout)) os.system("pause")
看哪些代碼塊,能夠組成一個具體的功能,
這個案例,能夠有一個輸入按鍵事件的功能函數,input_keyevent(),
這個函數能夠接收參數輸入,能夠指定輸入多久的按鍵事件。dom
# coding=utf-8 import os import time import random def input_keyevent(timeout): now_time = time.time() # 獲取當前時間戳,並保存到一個變量 keycode_dict = {3: "HOME鍵", 4: "返回鍵", 5: "電話撥號鍵", 24: "音量加鍵", 25: "音量減鍵", 26: "電源鍵", 27: "照相機啓動鍵", 87: "下一曲鍵", 88: "上一曲鍵", 91: "靜音鍵"} # 循環獲取當前時間,與now_time變量作時間戳作減法 while time.time() - now_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() - now_time, timeout)) input_keyevent(7200) os.system("pause")
# coding=utf-8 import os import time import 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): now_time = time.time() # 獲取當前時間戳,並保存到一個變量 # 循環獲取當前時間,與now_time變量作時間戳作減法 while time.time() - now_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() - now_time, timeout)) k_obj = KeyeventInputter() k_obj.input_keyevent(7200) os.system()
確保Android設備經過USB線與電腦鏈接了,adb設備有效鏈接,
以上代碼的3種實現形式均可以直接運行,好比保存爲random_keyevent.py並放在桌面,
建議python random_keyevent.py運行,固然也能夠雙擊運行。
運行效果以下:
函數
更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測試Python教程,武散人編著)
原文連接:https://www.zipython.com/#/detail?id=635502eeeae5455c9ba064411cd5617d
也可關注「武散人」微信訂閱號,隨時接受文章推送。
測試