知行编程网知行编程网  2022-10-28 06:30 知行编程网 隐藏边栏  70 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python脚本如何测试手机的相关知识,希望可以帮到处于编程学习途中的小伙伴

如何用python脚本测试手机


一、adb 相关命令:

1、关闭adb服务:adb kill-server

2、启动adb服务 adb start-server

3、查询当前运行的所有设备 adb devices

4、adb中可能有多个虚拟设备运行。可以指定要运行的虚拟设备 -s 虚拟设备名

5、重启设备 adb reboot --指定虚拟设备 adb -s 设备名称 reboot

6、查看日志 adb logcat 清除日志 adb logcat -c

7.进入linux shell下的adb shell。 linux常用的命令有cd cat等,输入su获取超级管理员的名字。判断是否有命令,进入system/bin目录就知道了

8、传入文件到设备中 adb push 本地文件 远程目录

9、从设备中拷贝文件到本地 adb -s emulator-5556 pull /data/config.ini d:/

10、显示当前运行的全部模拟器:

adb devices

安装应用程序:

adb install -r 123.apk

12、获取模拟器中的文件:

adb pull <remote> <local>

13、向模拟器中写文件:

adb push <local> <remote>

14、进入模拟器的shell模式:

adb shell

15、卸载apk包:

adb shell

cd data/app

rm 123.apk

exit

adb uninstall 123.apk

adb install -r 123.apk

16、查看adb命令帮助信息:

adb help

17、删除系统应用:

adb remount (重新挂载系统分区,使系统分区重新可写)。

adb shell

cd system/app

rm 123.apk

18、获取管理员权限:

adb root

19、复制文件:

复制一个文件或目录到设备:

adb push <source> <destination></destination></source>

如:adb push update.zip /sdcard/

从设备上复制一个文件或目录:

adb pull <source> <destination></destination></source>

如:adb pull /sdcard/update.zip.

20、取得当前运行设备的实例的列表及每个实例的状态:

adb devices

21、adb shell input tap

该命令模拟安卓手机在屏幕坐标(X,Y)处的点击操作。

22、adb shell input swipe

这条命令模拟Android手机从屏幕坐标(X1,Y1)滑动到坐标(X2,Y2)的操作。

23. uiautomator dump dump:创建当前UI层次结构的XML转储 该命令用于形成当前界面的UI层次结构,并以XML格式显示。这样你就可以得到每个组件的位置

注:如果PC要想同时控制多台Android手机,必须在adb 后面添加-s

例如:adb -s 13b6e4c4 shell input tap 400 400

表示对13b6e4c4这台Android手机进行在屏幕上(400,400)坐标位置进行模拟的点击事件。

24、能看到设备信息就代表设备已经连接成功了,接下来的命令就是adb install 路径+包名.apk

例如我的安装包放在桌面,那么命令就是adb install C:\Users\hyh\Desktop\XXX.apk

*** adb shell uiautomator dump /mnt/sdcard/window_dump.xml 获得手机当前界面的UI信息,生成window_dump.xml

*** adb shell input text “123” 输入text

举例:

1、打开cmd,进入当前文件夹,输入命令adb devices查看当前连接电脑的设备(前提是手机开启了usb调试模式),可以查看连接成功的手机。

2、若手机成功连接,输入命令 adb shell input tap 100 100 , 表示点击屏幕上坐标为(100,100)的点,如果不知道需要点击的点的具体位置的话可以在手机开发者模式中设置。


二、adb 模拟按键:

1、比如使用adb shell input keyevent <keycode>命令,不同的keycode可以实现不同的功能。有关键码的完整列表,请参阅 KeyEvent。我觉得有趣的摘录如下:

如何用python脚本测试手机

如何用python脚本测试手机

2. input 命令的一些用法举例

电源键

命令:

adb shell input keyevent 26

执行效果相当于按电源键。

菜单键

命令:

adb shell input keyevent 82

HOME 键

命令:

adb shell input keyevent 3

返回键

命令:

adb shell input keyevent 4

音量控制

增加音量:

adb shell input keyevent 24

降低音量:

adb shell input keyevent 25

静音:

adb shell input keyevent 164

媒体控制

播放/暂停:

adb shell input keyevent 85

停止播放:

adb shell input keyevent 86

播放下一首:

adb shell input keyevent 87

播放上一首:

adb shell input keyevent 88

恢复播放:

adb shell input keyevent 126

暂停播放:

adb shell input keyevent 127

点亮/熄灭屏幕

你可以通过模拟上述电源按钮来打开和关闭屏幕,但如果你明确想要打开或关闭屏幕,你可以使用以下方法。

点亮屏幕:

adb shell input keyevent 224

熄灭屏幕:

adb shell input keyevent 223


三、使用python脚本自动运行cmd命令

在adb文件夹下建立一个python文件

import os
os.system('adb shell input tap 100 100');

运行脚本,发现在命令行输入同样的语句,效果是一样的。

也可以使用subprocess.Popen,最简单的使用方法如下,设置shell=True,不会弹出cmd框

process = subprocess.Popen('adb shell input tap 14 1402',shell=True)

程序实例:

#coding:utf-8
#程序功能:可以实现抖音个人页面视频的自动点击,从而自动增加访问量
#思路:抖音主页中两个视频切换点击,可以实现访问量的增加
#使用ADB程序,视频的屏幕坐标可以使用adb shell uiautomator dump命令,获取该页面xml源码后查得
#下述是小米MIX2抖音主页第一个视频和第二个视频的坐标位置
#缺点:运行时不能移动屏幕,后续可以采用获取模块ID号的方式去点击相应的位置
import time
import subprocess
i = 0
#每次操作的间隔时间取决于手机配置,配置越高时间越短
sleep_time = 0.5
while 1:
  #用popen设置shell=True不会弹出cmd框
  process = subprocess.Popen('adb shell input tap 14 1402',shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input tap 375 1402', shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)
  time.sleep(sleep_time)
  #os.system('adb shell input tap 14 1402')
  #os.system('adb shell input keyevent KEYCODE_BACK')
  #os.system('adb shell input tap 375 1402')
  i+=1
  print str(i) + 'clicks have been completed'


实现原理

Hierarchy Viewer:获取当前手机的实时UI信息,方便手机自动测试;

python中的subprocess.Popen() 或 Python os模块:调用系统命令;

uiautomator工具:获取界面控件信息;

adb命令:对手机进行操作;

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享