国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python 隨機(jī)按鍵模擬2小時(shí)

瀏覽:54日期:2022-06-30 18:22:17
案例故事:

Android終端(車載,手機(jī))等,

需要模擬進(jìn)行隨意進(jìn)行各類按鍵(車載方向盤按鍵,手機(jī)硬按鍵)的操作,測(cè)試系統(tǒng)對(duì)隨機(jī)按鍵事件的響應(yīng)穩(wěn)定性,一般測(cè)試2小時(shí)。

準(zhǔn)備階段

一般是用adb shell input keyevent + KeyCode 來模擬按鍵事件。比如adb shell input keyevent 24 可以模擬“音量加鍵”,以下是比較常用的幾個(gè)按鍵的鍵值表。

KeyCode 釋義 3 Home鍵 4 返回鍵 5 電話撥號(hào)鍵 24 音量加鍵 25 音量減鍵 26 電源鍵 27 照相機(jī)啟動(dòng)鍵 87 多媒體下一曲鍵 88 多媒體上一曲鍵 91 音量靜音鍵

Python批處理腳本形式

批量處理腳本的特點(diǎn)是:批量順序執(zhí)行語(yǔ)句

# coding=utf-8 import osimport timeimport random TIMEOUT= 7200 # 2小時(shí)(7200s) 常量once_time = time.time() # 獲取當(dāng)前時(shí)間戳,并保存到一個(gè)變量keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號(hào)鍵', 24: '音量加鍵',25: '音量減鍵', 26: '電源鍵', 27: '照相機(jī)啟動(dòng)鍵', 87: '下一曲鍵',88: '上一曲鍵', 91: '靜音鍵'} # 循環(huán)獲取當(dāng)前時(shí)間,與once_time變量做時(shí)間戳做減法while time.time() - once_time <= TIMEOUT: # 隨機(jī)選擇字典的某個(gè)“鍵” 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,再進(jìn)行下一次按鍵模擬 print('已經(jīng)進(jìn)行了 %d 秒..., 一共需要測(cè)試 %d 秒' % (time.time() - once_time, TIMEOUT)) os.system('pause')Python面向過程函數(shù)形式

看哪些代碼塊,可以組成一個(gè)具體的功能,這個(gè)案例,可以用input_keyevent(), 代表輸入按鍵事件的功能函數(shù),這個(gè)函數(shù)可以接收參數(shù)輸入,可以指定輸入多久的按鍵事件。

# coding=utf-8 import osimport timeimport random def input_keyevent(timeout): once_time = time.time() # 獲取當(dāng)前時(shí)間戳,并保存到一個(gè)變量 keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號(hào)鍵', 24: '音量加鍵', 25: '音量減鍵', 26: '電源鍵', 27: '照相機(jī)啟動(dòng)鍵', 87: '下一曲鍵', 88: '上一曲鍵', 91: '靜音鍵'} # 循環(huán)獲取當(dāng)前時(shí)間,與once_time變量做時(shí)間戳做減法 while time.time() - once_time <= timeout: # 隨機(jī)選擇字典的某個(gè)“鍵” 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,再進(jìn)行下一次按鍵模擬 print('已經(jīng)進(jìn)行了 %d 秒..., 一共需要測(cè)試 %d 秒' % (time.time() - once_time, timeout)) input_keyevent(7200)os.system('pause')Python面向?qū)ο箢愋问?p>1.以'萬(wàn)物皆可歸類'的思想, 先抽象化出一個(gè)類來,類名一般建議用'名詞', 所以我們命名為'KeyeventInputter',代表按鍵事件輸入器, 且一般要駝峰式(首字母大寫)來規(guī)范類的命名。

2.養(yǎng)成良好的類的初始化(__init__)的習(xí)慣,初始化過程中, 可以定義屬性,self.keycode_dict。

3.定義方法(函數(shù)), input_keyevent函數(shù)。4.類是一個(gè)抽象的事物, 必須實(shí)例化成具體的對(duì)象后,才能進(jìn)行調(diào)用, 所以我們實(shí)例化并命名成了k_obj, 表明是一個(gè)對(duì)象。5.實(shí)例化成具體對(duì)象后, 對(duì)象就可以調(diào)用input_keyevent這個(gè)函數(shù)了。

# coding=utf-8 import osimport timeimport random class KeyeventInputter(): def __init__(self): self.keycode_dict = {3: 'HOME鍵', 4: '返回鍵', 5: '電話撥號(hào)鍵', 24: '音量加鍵', 25: '音量減鍵', 26: '電源鍵', 27: '照相機(jī)啟動(dòng)鍵', 87: '下一曲鍵', 88: '上一曲鍵', 91: '靜音鍵'} def input_keyevent(self, timeout): once_time = time.time() # 獲取當(dāng)前時(shí)間戳,并保存到一個(gè)變量 # 循環(huán)獲取當(dāng)前時(shí)間,與once_time變量做時(shí)間戳做減法 while time.time() - once_time <= timeout: # 隨機(jī)選擇字典的某個(gè)“鍵” 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,再進(jìn)行下一次按鍵模擬 print('已經(jīng)進(jìn)行了 %d 秒..., 一共需要測(cè)試 %d 秒' % (time.time() - once_time, timeout)) k_obj = KeyeventInputter()k_obj.input_keyevent(7200)os.system('pause')運(yùn)行方式與效果

確保Android設(shè)備通過USB線與電腦連接了,adb設(shè)備有效連接,以上代碼的3種實(shí)現(xiàn)形式都可以直接運(yùn)行,比如保存為random_keyevent.py并放在桌面,建議python random_keyevent.py運(yùn)行,當(dāng)然也可以雙擊運(yùn)行。

運(yùn)行效果如下:

Python 隨機(jī)按鍵模擬2小時(shí)

以上就是Python 隨機(jī)按鍵模擬2小時(shí)的詳細(xì)內(nèi)容,更多關(guān)于Python 隨機(jī)按鍵模擬的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 孙吴县| 右玉县| 云霄县| 石河子市| 崇仁县| 平邑县| 永顺县| 宝鸡市| 石家庄市| 长乐市| 长垣县| 定边县| 衡南县| 固镇县| 岳池县| 潞西市| 威信县| 新乡县| 永靖县| 桂林市| 东宁县| 济阳县| 德江县| 贺州市| 平昌县| 五台县| 古交市| 额尔古纳市| 汝阳县| 裕民县| 策勒县| 安图县| 灵宝市| 涡阳县| 鱼台县| 巩义市| 虞城县| 沙湾县| 许昌市| 远安县| 连平县|