《自拍教程50》Python_adb随机按键模拟2小时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《自拍教程50》Python_adb随机按键模拟2小时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4255字,纯文字阅读大概需要7分钟。
内容图文
![《自拍教程50》Python_adb随机按键模拟2小时](/upload/InfoBanner/zyjiaocheng/521/8e1ae3d8830f420e90cf5a4c6092b36b.jpg)
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 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")
Python面向过程函数形式
看哪些代码块,可以组成一个具体的功能,
这个案例,可以有一个输入按键事件的功能函数,input_keyevent(),
这个函数可以接收参数输入,可以指定输入多久的按键事件。
# 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")
Python面向对象类形式
- 以"万物皆可归类"的思想, 先抽象化出一个类来,
类名一般建议用"名词", 所以我们命名为"KeyeventInputter",
代表按键事件输入器, 且一般要驼峰式(首字母大写)来规范类的命名。 - 养成良好的类的初始化(__init__)的习惯,
初始化过程中, 可以定义属性,self.keycode_dict。 - 定义方法(函数), input_keyevent函数。
- 类是一个抽象的事物, 必须实例化成具体的对象后,
才能进行调用, 所以我们实例化并命名成了k_obj, 表明是一个对象。 - 实例化成具体对象后, 对象就可以调用input_keyevent这个函数了。
# 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
也可关注“武散人”微信订阅号,随时接受文章推送。
《自拍教程50》Python_adb随机按键模拟2小时
标签:思想 input 语句 定义 面向 pytho ESS www 随机选择
本文系统来源:https://www.cnblogs.com/zipython/p/12562210.html
内容总结
以上是互联网集市为您收集整理的《自拍教程50》Python_adb随机按键模拟2小时全部内容,希望文章能够帮你解决《自拍教程50》Python_adb随机按键模拟2小时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。