用ADB命令写Android自动化测试脚本

之前有用过monkey进行测试,简单测试一下稳定性;最近也简单了解了一下Espresso感觉还可以,可以对UI进行测试和校验;最近发现自己根据adb命令来写一下脚本来执行自动化测试也是不错的,比较有意思,主要是测试程序的稳定性

脚本来执行测试的优缺点

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

实现原理

Espresso比较起来,其实原理是差不多的,都是模拟输入事件来操作程序;脚本是用adb命令来实现点击哪一个位置,位置需要自己测量,而Espresso的话就是通过写代码来获取控件的位置来实现的,还可以添加一些对控件内容的校验;所以脚本不需要知道程序的代码,只需要看见界面,自己拿控件位置,就可以写出测试脚本,而Espresso需要知道这个界面的具体组成部分,拿到每个控件的ID,写代码获取到控件,也自然可以对控件本身做一些校验

实现难度

脚本其实就只需要反复执行那么几个adb命令,主要工作在于测量控件位置和命令的执行顺序,还是比较简单;Espresso其实也差不多,也比较简单,但是写测试代码的人员肯定要能看懂Android代码,根据代码和流程写测试代码

屏幕适配

脚本可能还需要根据界面尺寸来做调整,其实就是多种尺寸需要写多套脚本;Espresso肯定是不用的

测试过程

测试过程就是模拟输入事件,所以哪里出了问题,自己观察整个过程是最好的,有错误的话,也可以通过输出错误日志到文件;其实感觉和Espresso也差不多

可玩性

写写脚本肯定是更有意思一点,不仅仅是某个程序,所用应用都可以写出一些脚本来玩,执行自动化运行;搭配上ADB网络调试,不就可以忽悠一大堆小白,成为他们的黑客了

简单的运用

比如在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 4444 && adb shell input keyevent 66
sleep 0.6

执行脚本

sh test.sh

常用命令

打电话

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

打开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 start com.tencent.mm/com.tencent.mm.ui.LauncherUI

打开支付宝

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

杀死支付宝

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

关闭QQ

adb shell am force-stop com.tencent.mobileqq

点击事件

adb shell input tap 500 500

home键

adb shell input keyevent 3

返回键

adb shell input keyevent 4

截图(保存到SDCard)

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

从SD卡导出到电脑

adb pull /sdcard/screenshot.png /Users/dhht/Desktop

录屏

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

亮屏

adb shell input keyevent 26

上下滑动

adb shell input swipe 700 2000 700 1000

左右滑动

adb shell input swipe 100 1000 1000 1000

解锁

adb shell input keyevent 82

锁定

adb shell input keyevent 26

输入密码,并回车:

adb shell input text 123456 && adb shell input keyevent 66

屏幕长亮

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

wifi设置界面

adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
adb shell svc wifi enable  //打开wifi
adb shell svc wifi disable  //关闭wifi

蓝牙

adb shell service call bluetooth_manager 6 //打开蓝牙
adb shell service call bluetooth_manager 9 //关闭蓝牙

关机重启

adb reboot  //重启
adb shell reboot  //重启
adb shell reboot -p  //关机

打开网页

adb shell am start -a android.intent.action.VIEW -d  http://google.com

卸载应用

adb uninstall com.example.appname

屏幕相关

wm density
wm size
wm density 240

定位当前页面位置

adb shell dumpsys activity top

获取屏幕分辨率

adb shell wm size

删除屏幕锁

adb shell rm /data/system/access_control.key 
adb shell rm /data/system/password.key 
adb shell rm /data/sysem/gesture.key 
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容