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

一、简介:

以前因为手机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按键Home3
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_ESCAPEESC键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_INSERT插入键124
KEYCODE_TABTab键61
KEYCODE_NUM_LOCK小键盘锁143
KEYCODE_CAPS_LOCK大写锁定键115
KEYCODE_BREAKBreak/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 常用命令

 

未完待续。。。

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值