gpt4 book ai didi

Python 随机按键模拟2小时

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 40 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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批处理脚本形式

批量处理脚本的特点是:批量顺序执行语句 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# coding=utf-8
 
import os
import time
import 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(), 代表输入按键事件的功能函数, 这个函数可以接收参数输入,可以指定输入多久的按键事件.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# coding=utf-8
 
import os
import time
import 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这个函数了.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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):
     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 随机按键模拟2小时的详细内容,更多关于Python 随机按键模拟的资料请关注我其它相关文章! 。

原文链接:https://www.zipython.com/#/detail?id=635502eeeae5455c9ba064411cd5617d 。

最后此篇关于Python 随机按键模拟2小时的文章就讲到这里了,如果你想了解更多关于Python 随机按键模拟2小时的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com