Android | adb命令编写Android自动化测试脚本

  • Post author:
  • Post category:其他


一、简介:

以前因为手机root权限问题,一直没有实现脚本自动化测试,最近看了一些博客,进行了一些实验,发现自己根据adb命令来写一下脚本来执行自动化测试也是可行的,主要是为了解放双手,顺便测试一下程序的稳定性。

脚本来执行测试的优缺点

  • 写起来容易
  • 基本上可以实现90%以上的功能性覆盖
  • 测试结果需要通过自己观察整个过程和日志文件来得出的
  • 有些外部的动作,脚本是无法实现的,比如需要录入指纹
  • 只适配特定尺寸的设备
  • 没法对内容进行校验
  • 执行命令间隔时间要把控好

二、运用:

1.简单运用

比如在mac上,写一个解锁的

shell

脚本,点亮程序解锁;首先要知道解锁密码,或者图案密码,人脸、虹膜、指纹肯定是不行的;

#!/bin/bash
adb shell svc power stayon true    #解锁亮屏
sleep 0.2
adb shell input keyevent 82     #只针对于非密码指纹图案等锁屏
sleep 0.2
adb shell input text 123456 && adb shell input keyevent 66
sleep 0.6

执行脚本

sh test.sh

2.adb shell input keyevent详解

adb shell input keyevent

82



键值



电话键

键名 描述 键值
KEYCODE_CALL 拨号键 5
KEYCODE_ENDCALL 挂机键 6
KEYCODE_HOME 按键Home 3
KEYCODE_MENU 菜单键 82
KEYCODE_BACK 返回键 4
KEYCODE_SEARCH 搜索键 84
KEYCODE_CAMERA 拍照键 27
KEYCODE_FOCUS 拍照对焦键 80
KEYCODE_POWER 电源键 26
KEYCODE_NOTIFICATION 通知键 83
KEYCODE_MUTE 话筒静音键 91
KEYCODE_VOLUME_MUTE 扬声器静音键 164
KEYCODE_VOLUME_UP 音量增加键 24
KEYCODE_VOLUME_DOWN 音量减小键 25


控制键

KEYCODE_ENTER 回车键 66
KEYCODE_ESCAPE ESC键 111
KEYCODE_DPAD_CENTER 导航键 确定键 23
KEYCODE_DPAD_UP 导航键 向上 19
KEYCODE_DPAD_DOWN 导航键 向下 20
KEYCODE_DPAD_LEFT 导航键 向左 21
KEYCODE_DPAD_RIGHT 导航键 向右 22
KEYCODE_MOVE_HOME 光标移动到开始键 122
KEYCODE_MOVE_END 光标移动到末尾键 123
KEYCODE_PAGE_UP 向上翻页键 92
KEYCODE_PAGE_DOWN 向下翻页键 93
KEYCODE_DEL 退格键 67
KEYCODE_FORWARD_DEL 删除键 112
KEYCODE_

IN

SERT
插入键 124
KEYCODE_TAB Tab键 61
KEYCODE_NUM_LOCK 小键盘锁 143
KEYCODE_CAPS_LOCK 大写锁定键 115
KEYCODE_BREAK Break/Pause键 121
KEYCODE_SCROLL_LOCK 滚动锁定键 116
KEYCODE_ZOOM_IN 放大键 168
KEYCODE_ZOOM_OUT 缩小键 169


基本

KEYCODE_0 按键’0′ 7
KEYCODE_1 按键’1′ 8
KEYCODE_2 按键’2′ 9
KEYCODE_3 按键’3′ 10
KEYCODE_4 按键’4′ 11
KEYCODE_5 按键’5′ 12
KEYCODE_6 按键’6′ 13
KEYCODE_7 按键’7′ 14
KEYCODE_8 按键’8′ 15
KEYCODE_9 按键’9′ 16
KEYCODE_A 按键’A’ 29
KEYCODE_B 按键’B’ 30
KEYCODE_C 按键’C’ 31
KEYCODE_D 按键’D’ 32
KEYCODE_E 按键’E’ 33
KEYCODE_F 按键’F’ 34
KEYCODE_G 按键’G’ 35
KEYCODE_H 按键’H’ 36
KEYCODE_I 按键’I’ 37
KEYCODE_J 按键’J’ 38
KEYCODE_K 按键’K’ 39
KEYCODE_L 按键’L’ 40
KEYCODE_M 按键’M’ 41
KEYCODE_N 按键’N’ 42
KEYCODE_O 按键’O’ 43
KEYCODE_P 按键’P’ 44
KEYCODE_Q 按键’Q’ 45
KEYCODE_R 按键’R’ 46
KEYCODE_S 按键’S’ 47
KEYCODE_T 按键’T’ 48
KEYCODE_U 按键’U’ 49
KEYCODE_V 按键’V’ 50
KEYCODE_W 按键’W’ 51
KEYCODE_X 按键’X’ 52
KEYCODE_Y 按键’Y’ 53
KEYCODE_Z 按键’Z’ 54

详细介绍:

Android adb shell input keyevent code整理

支持的KEYCODE

0 –>  “KEYCODE_UNKNOWN”

1 –>  “KEYCODE_MENU”

2 –>  “KEYCODE_SOFT_RIGHT”

3 –>  “KEYCODE_HOME”

4 –>  “KEYCODE_BACK”

5 –>  “KEYCODE_CALL”

6 –>  “KEYCODE_ENDCALL”

7 –>  “KEYCODE_0”

8 –>  “KEYCODE_1”

9 –>  “KEYCODE_2”

10 –>  “KEYCODE_3”

11 –>  “KEYCODE_4”

12 –>  “KEYCODE_5”

13 –>  “KEYCODE_6”

14 –>  “KEYCODE_7”

15 –>  “KEYCODE_8”

16 –>  “KEYCODE_9”

17 –>  “KEYCODE_STAR”

18 –>  “KEYCODE_POUND”

19 –>  “KEYCODE_DPAD_UP”

20 –>  “KEYCODE_DPAD_DOWN”

21 –>  “KEYCODE_DPAD_LEFT”

22 –>  “KEYCODE_DPAD_RIGHT”

23 –>  “KEYCODE_DPAD_CENTER”

24 –>  “KEYCODE_VOLUME_UP”

25 –>  “KEYCODE_VOLUME_DOWN”

26 –>  “KEYCODE_POWER”

27 –>  “KEYCODE_CAMERA”

28 –>  “KEYCODE_CLEAR”

29 –>  “KEYCODE_A”

30 –>  “KEYCODE_B”

31 –>  “KEYCODE_C”

32 –>  “KEYCODE_D”

33 –>  “KEYCODE_E”

34 –>  “KEYCODE_F”

35 –>  “KEYCODE_G”

36 –>  “KEYCODE_H”

37 –>  “KEYCODE_I”

38 –>  “KEYCODE_J”

39 –>  “KEYCODE_K”

40 –>  “KEYCODE_L”

41 –>  “KEYCODE_M”

42 –>  “KEYCODE_N”

43 –>  “KEYCODE_O”

44 –>  “KEYCODE_P”

45 –>  “KEYCODE_Q”

46 –>  “KEYCODE_R”

47 –>  “KEYCODE_S”

48 –>  “KEYCODE_T”

49 –>  “KEYCODE_U”

50 –>  “KEYCODE_V”

51 –>  “KEYCODE_W”

52 –>  “KEYCODE_X”

53 –>  “KEYCODE_Y”

54 –>  “KEYCODE_Z”

55 –>  “KEYCODE_COMMA”

56 –>  “KEYCODE_PERIOD”

57 –>  “KEYCODE_ALT_LEFT”

58 –>  “KEYCODE_ALT_RIGHT”

59 –>  “KEYCODE_SHIFT_LEFT”

60 –>  “KEYCODE_SHIFT_RIGHT”

61 –>  “KEYCODE_TAB”

62 –>  “KEYCODE_SPACE”

63 –>  “KEYCODE_SYM”

64 –>  “KEYCODE_EXPLORER”

65 –>  “KEYCODE_ENVELOPE”

66 –>  “KEYCODE_ENTER”

67 –>  “KEYCODE_DEL”

68 –>  “KEYCODE_GRAVE”

69 –>  “KEYCODE_MINUS”

70 –>  “KEYCODE_EQUALS”

71 –>  “KEYCODE_LEFT_BRACKET”

72 –>  “KEYCODE_RIGHT_BRACKET”

73 –>  “KEYCODE_BACKSLASH”

74 –>  “KEYCODE_SEMICOLON”

75 –>  “KEYCODE_APOSTROPHE”

76 –>  “KEYCODE_SLASH”

77 –>  “KEYCODE_AT”

78 –>  “KEYCODE_NUM”

79 –>  “KEYCODE_HEADSETHOOK”

80 –>  “KEYCODE_FOCUS”

81 –>  “KEYCODE_PLUS”

82 –>  “KEYCODE_MENU”

83 –>  “KEYCODE_NOTIFICATION”

84 –>  “KEYCODE_SEARCH”

85 –>  “TAG_LAST_KEYCODE”

3.常用命令

获取手机设备号

adb devices
adb devices -l

打电话

adb shell am start -a android.intent.action.CALL -d tel:10088

列出(包名)所有安装的应用apk

adb shell pm list packages    #列出所有安装的应用,包含系统和第三方
adb shell pm list packages -3   #列出所有第三方应用
adb shell pm list packages -s   #列出所有系统应用

根据包名找出apk在内部存储空间的路径(如支付宝)

adb shell pm path com.eg.android.AlipayGphone

将apk文件导出

adb pull  /data/app/com.baicells.voip-1/base.apk voip.apk

查看应用(如支付宝)的package包名和activity名

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

打开支付宝

adb shell am start com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin

打开微信

adb shell am start com.tencent.mm/com.tencent.mm.ui.LauncherUI

打开QQ

adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity

关闭应用包含进程(如支付宝 )

adb shell am force-stop com.eg.android.AlipayGphone

从电脑向手机安装应用

adb -s NPE4C17302001740 install E:\com.tencent.mobileqq.apk  #从电脑向手机安装应用  
adb -s NPE4C17302001740 install -r E:\com.tencent.mobileqq.apk  #强制安装
# -s 后是设备名称,若只链接了一个设备可以不加

卸载

adb uninstall com.tencent.mobileqq    #卸载手机里面的应用(如QQ)
或
adb shell pm uninstall com.tencent.mobileqq
adb uninstall -k com.tencent.mobileqq    #卸载app但保留数据和缓存文件

点击事件

adb shell input tap 500 500

截图(保存到SDCard)

adb shell /system/bin/screencap -p /sdcard/screenshot.png

录屏

adb shell screenrecord /sdcard/test.mp4
adb pull /sdcard/test.mp4 /Users/dhht/Desktop/test.mp4

上下滑动

adb shell input swipe 700 2000 700 1000

左右滑动

adb shell input swipe 100 1000 1000 1000

在手机文本框中输入文本信息

adb shell input text lalalala   #文本信息:lalalala<不支持中文>

截取日志

adb logcat > e:1.log
adb bugreport > e:2.log  

屏幕长亮

adb shell svc power stayon true      [true|false|usb|ac|wireless]

查看手机分辨率

adb shell wm size

查看进程

adb shell service list

列出手机参数

adb shell getprop

手机重启

adb reboot recovery     #重启手机到recovery界面
adb reboot bootloader   #重启手机到bootloader界面

获取更多参考:


玩转ADB命令(ADB命令使用大全)


adb shell 常用命令

未完待续。。。



版权声明:本文为Sherlock_Homles原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。