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
也可关注“武散人”微信订阅号,随时接受文章推送。
测试