ADB自动化测试框架

一、介绍

adb的全称为Android Debug Bridge,就是起到调试桥的作用,利用adb工具的前提是在手机上打开usb调试,然后通过数据线连接电脑。在电脑上使用命令模式来操作手机:重启、进入recovery、进入fastboot、推送文件功能等。简单来说,adb就是连接Android手机和pc端的桥梁,让用户在电脑上对手机进行全面操作。

二、安装及配置

 下载的adb tools,地址:Android SDK - Download ,解压放D盘;配置环境变量,在Path中添加刚刚adb tools中的路径 ;在命令行窗口,输入adb,出现信息证明已成功。

三、常用命令

带有shell的表示Linux本身的操作系统的命令,不带shell 的是adb本身的命令; 

 
  
  1. 基础命令:

  2. 0、adb connect IP:Port 连接设备(-s:可指定连接设别)

  3. 1、adb devices 查看连接的手机设备

  4. 2、adb install packsge(包路径) 安装包

  5. 3、adb install -r packages(保留数据及缓存文件安装新包)

  6. 4、adb uninstall package (卸载包)

  7. 5、adb kill-server 关闭adb服务

  8. 6、adb start-server 启动adb服务

  9. 7、adb shell 进入shell ,进入shell后可执行命令。

  10. 7、adb shell pm list packages 查看手机里面所有包名

  11. 8、adb shell pm list packages -3查看手机里面所有第三方包名

  12. 9、adb shell /system/bin/screencap -p /sdcard/xx.png 截频并保存文件在手机上为xx.Png

  13. 10、adb pull /sdcard/xx.png D:/xx.png 将手机xx.png文件保存到D盘文件下 ,下载文件

  14. 11、adb push D:/xx.text /adcard/xx.text 将电脑文件导入手机 ,上传文件

  15. 12、adb shell pm clear com.ablesky.ui.activity 清除缓存数据

  16. 13、adb shell am start -n com.ablesky.ui.activity/com.ablesky.activity.SplashActivity 启动程序

  17. 14、adb shell am force-stop com.ablesky.simpleness.activity 强制停止运行程序

  18. 15、adb logcat 查看日志

  19. 16、adb logcat > D:\log.txt 将日志打印到电脑上

  20. 17、netstat -aon|findstr "5037" 查看被占用端口对应的PID

  21. 18、 tasklist /fi “PID eq PID号” 查看端口号对应的进程

  22. 19、 taskkill /pid 2027 /f 杀掉某进程

  23. 20、adb shell monkey -p 包名 100 指定APP产生随机事件100次

  24. 21、adb shell monkey -p 包名 -v -v 100 指定APP产生随机事件100次并发送详细的activity信息

  25. 22、adb root 获取root权限

  26. 23、adb remount 获取system文件的读写权限

  27. 24、shell rm *.apk 删除系统应用

  28. 25、adb install d:\\xxx.apk 通过命令安装安卓应用

  29. 26、adb shell dumpsys activity top | find "ACTIVITY" 查看启动的app的包名

  30. 27、adb shell dumpsys activity activities | findstr "Run" 查看所有启动的应用的包名

  31. 28、adb shell dumpsys window w |findstr \/ |findstr name= 查看当前启动应用的包名

  32. 29、adb -s 127.0.0.1:62001 shell pm list package 多台设备,需指定设备名;查看所有的按照应用包名

  33. 30、adb shell am start -n 主包名/包名+类名 启动应用程序

  34. 31、adb shell am force-stop 主包名 强制关闭程序

  35. 32、adb shell ps | findstr browser ps 是查看当前启动的成效,管道输入,变成查看browse这程序是否在运行

  36. 进阶命令:

  37. 1、获取手机系统信息( CPU,厂商名称等)

  38. adb shell "cat /system/build.prop | grep "product""

  39. 2、获取手机系统版本

  40. adb shell getprop ro.build.version.release

  41. 3、获取手机系统api版本

  42. adb shell getprop ro.build.version.sdk

  43. 4、获取手机设备型号

  44. adb -d shell getprop ro.product.model

  45. 5、获取手机厂商名称

  46. adb -d shell getprop ro.product.brand

  47. 6、获取手机的序列号

  48. 有两种方式

  49. 1、 adb get-serialno

  50. 2、 adb shell getprop ro.serialno

  51. 7、获取手机的IMEI

  52. 有三种方式,由于手机和系统的限制,不一定获取到

  53. 1、 adb shell dumpsys iphonesubinfo其中Device ID即为IMEI号

  54. 2、 adb shell getprop gsm.baseband.imei

  55. 3、 service call iphonesubinfo 1

  56. 此种方式,需要自己处理获取的信息得到

  57. 8、获取手机mac地址

  58. adb shell cat /sys/class/net/wlan0/address

  59. 9、获取手机内存信息

  60. adb shell cat /proc/meminfo

  61. 10、获取手机存储信息

  62. adb shell df

  63. 获取手机内部存储信息:

  64. 魅族手机: adb shell df /mnt/shell/emulated

  65. 其他: adb shell df /data

  66. 获取sdcard存储信息:

  67. adb shell df /storage/sdcard

  68. 11、获取手机分辨率 ,竖线 是管道,前面语句的输出,当做后面语句的输入;过滤某条命令的输出

  69. adb shell "dumpsys window | grep mUnrestrictedScreen"

  70. 12、获取手机物理密度

  71. adb shell wm density

  72. 13、获取手机包名

  73. 1.查看指定apk的包名:aapt dump badging +包的全路径

  74. 2.查看所有apk包名:adb shell pm list package -f

 测试常用

 
  
  1. #查看当前界面的app的包名

  2. adb shell dumpsys window windows | findstr mFocusedApp

  3. #查看启动的app的包名

  4. adb shell dumpsys activity top | find "ACTIVITY"

  5. #查看所有启动的应用的包名

  6. adb shell dumpsys activity activities | findstr "Run"

  7. #查看当前启动应用的包名

  8. adb shell dumpsys window w |findstr \/ |findstr name=

  9. #通过应用查看包名

  10. aapt dump badging D:\test\xxx.apk(APK的全名)

  11. #查看电池状况

  12. adb shell dumpsys battery

  13. #查看分辨率

  14. adb shell wm size

  15. #查看屏幕密度

  16. adb shell wm density

  17. #查看显示屏参数

  18. adb shell dumpsys window displays

  19. #查看IMEI

  20. adb shell dumpsys iphonesubinfo

四、链接设备

 USB线连接,让安卓设备进入调试模式:开发者模式->打开USB调试;PC通过USB线连接安卓设备,进入window终端,输入adb devices:(注意:夜神模拟器可能回报 doesn't match this client (41)的错;主要是SDK版本不匹配;需要:把AndroidSDK\platform-tools下的adb.exe复制到夜神模拟器bin路径下,重命名为nox_adb.exe; 重启夜神模拟器即可。)

ADB自动化测试框架_第1张图片

五、input 事件

 input可以用来模拟各种输入设备的输入操作。      

输入文本:模拟输入文本text ,主要用于在输入框输入内容,输入前提是获得焦点;空格、&、‘’ 等特殊字符无法直接输入,要输入只能使用keywvent ;输入过程中左右移动、删除等都要使用keyevent。

adb shell input text  helloworld

 模拟按键:keyevent,主要用于模拟键盘输入,因此是在用键盘的地方才用得到。

 
  
  1. #通过键值模拟按键操作:模拟按back键

  2. adb shell input keyevent 4

  3. 或 adb shell input keyevent KEYCODE_BACK

 
  
  1. adb shell input keyevent 26 # 电源键

  2. adb shell input keyevent 82 # 菜单键

  3. adb shell input keyevent 3 # HOME 键

  4. adb shell input keyevent 4 # 返回键

  5. adb shell input keyevent 24 # 音量+

  6. adb shell input keyevent 25 # 音量-

  7. adb shell input keyevent 164 # 静音

  8. adb shell input keyevent 85 # 播放/暂停

  9. adb shell input keyevent 86 # 停止播放

  10. adb shell input keyevent 87 # 播放下一首

  11. adb shell input keyevent 88 # 播放上一首

  12. adb shell input keyevent 126 # 恢复播放

  13. adb shell input keyevent 127 # 暂停播放

  点击tap:用于模拟手指在屏幕的轻触点击

 
  
  1. #通过坐标模拟点击操作:点击横坐标300纵坐标500的点

  2. adb shell input tap 300 500

其他:

 
  
  1. #通过坐标模拟滑动操作:从坐标(200,200)滑动到(300,300),滑动时间100ms

  2. adb shell input swipe 200 200 300 300 100

  3. #通过坐标模拟拖动操作:从坐标(100,200)拖动到(300,400),滑动时间2000ms

  4. adb shell input draganddrop 100 200 300 400 2000

  5. #通过坐标模拟长按操作:从坐标(200,300)的点滑到(400,500),滑动时间2000ms,由于划动距离短,在一个图标之内则主观显示为长按操作

  6. adb shell input swipe 200 300 400 500 2000

  7. #通过坐标/键值模拟同时按下两个键,用and连接:电源键亮屏并点击菜单

  8. adb shell input keyevent KEYCODE_POWER and KEYCODE_MENU

  9. #获取当前页面的控件信息文件,可用于查找元素的属性;生成的是 xml文件

  10. adb shell uiautomator dump

六、案例实战

七、os模块

 os 指operate system,os模块是python标准库中的一个用于访问操作系统功能的模块,使用os模块中提供的接口,可以实现跨平台访问。通用操作:一、获取平台信息,二、对目录操作,三、判断操作。在测试中,使用最多的是 os.system(cmd) 方法,通过传入cmd 命令,相当于直接在命令行输入命令。软件测试学习资源免费分享加扣裙:1125939340      

你可能感兴趣的:(adb,压力测试,postman,自动化,单元测试,测试用例,测试工具)