Android adb 简单UI自动化测试
Android移动端自动化测试框架UIAutomator2入门

Android移动端自动化测试框架UIAutomator2入门随着智能手机的普及,移动应用也越来越受到欢迎。
移动端应用相对于传统的Web应用或桌面应用,有自身独特的测试需求。
在这种情况下,自动化测试框架成为了移动端测试的必备工具。
本文将介绍Android移动端自动化测试框架UIAutomator2的基础知识和使用方法。
一、UIAutomator2介绍UIAutomator2是Android平台上的一个自动化测试框架,它的作用是为测试人员提供一种自动化测试手段,以验证移动应用的正确性、稳定性和性能。
UIAutomator2可以模拟用户在移动应用上的各种操作,包括点击、滑动、输入等等,以实现对应用的全面自动化测试。
二、UIAutomator2的环境搭建要使用UIAutomator2,我们首先需要构建相应的测试环境。
具体步骤如下:1. 安装Android SDK,并配置环境变量。
2. 下载UIAutomator2的源代码。
3. 根据源代码中的README文档,进行所需的编译和安装。
三、UIAutomator2的使用1. 创建测试脚本使用UIAutomator2进行自动化测试需要编写相应的测试脚本。
测试脚本是由Java编写的,并可以使用Android Studio进行编辑和调试。
下面是一个简单的测试脚本:```import androidx.test.uiautomator.By;import androidx.test.uiautomator.UiDevice;public class MyTest {public static void main(String[] args) throws Exception {UiDevice device = UiDevice.getInstance();device.pressHome();device.findObject(By.text("Chrome")).click();device.findObject(By.res("com.android.chrome:id/search_box_text")).c lick();device.findObject(By.res("com.android.chrome:id/search_box_text")).s etText("UIAutomator2");device.pressEnter();}}```这个脚本的功能是启动Chrome浏览器,并在浏览器中搜索“UIAutomator2”。
自动化常用命令

自动化常用命令
自动化常用命令包括:
1. adb pm:包管理,用于清理特定包缓存数据、权限,强制关掉app。
2. adb shell pm clear 包名:清理特定包缓存数据、权限。
3. adb shell am start -n 包名:重新启动app,但不清除缓存。
4. dumpsys:获取系统/app的性能数据。
5. uiautomator:获得app的页面结构,进行自动化测试。
6. adb shell uiautomator dump:在手机上生成当前app所有的控件
界面到一个xml文件,可以被拉取下来。
7. input:完成简单的自动化指令,如模拟点击事件等。
8. test条件[条件]:用于数值比较和字符串比较的表达式。
9. 逻辑表达式:如命令1&&命令2 (1 成功则执行2)和命令1||命
令2 (1 失败则执行2)等。
10. 文件表达式:-f 判断是否是文件,-d 判断是否是目录等。
如需更多自动化常用命令,建议咨询专业人士获取准确信息。
Android测试中的自动化工具评测与选择

Android测试中的自动化工具评测与选择随着移动应用开发的快速发展,Android平台成为了最受欢迎的移动操作系统之一。
然而,随之而来的是对移动应用质量的不断追求,这要求开发人员在应用发布之前进行全面而准确的测试。
为了提高效率和质量,Android测试中的自动化工具成为开发人员的首选。
本文将对几种常用的Android自动化测试工具进行评测,并提供选择的建议。
1. AppiumAppium是一种开源的移动应用自动化测试工具,支持多种操作系统(包括Android)。
它使用WebDriver协议进行测试,并支持各种编程语言(如Java、Python和Ruby)。
Appium的优点在于可以在真实设备和模拟器上运行测试,且支持多种操作系统版本。
然而,Appium需要开发人员具备较强的编程能力,并且在配置和安装方面较为复杂。
2. EspressoEspresso是由Google开发的Android自动化测试工具,专注于用户界面(UI)测试。
它提供了一套简洁明了的API,可以方便地编写和运行UI测试。
Espresso的优点在于速度快、稳定性高,且无需涉及设备配置或者系统安装。
然而,在处理复杂场景或者多个应用程序之间的交互时,Espresso的能力相对较弱。
3. UI AutomatorUI Automator也是由Google开发的自动化测试框架,用于执行跨应用程序的功能测试。
它可以与Android系统进行交互,并模拟用户在多个应用程序之间的操作。
UI Automator的优点在于支持多应用程序测试和跨应用程序交互,适用于复杂的测试场景。
然而,使用UI Automator需要对Android框架有一定的了解,并且测试脚本编写较为繁琐。
4. RobotiumRobotium是一种Android自动化测试工具,专注于功能和用户界面的测试。
它提供了易于使用的API,能够模拟用户在应用程序中的操作和事件。
Robotium的优点在于容易上手、功能强大,可用于测试各种应用程序场景。
Android自动化测试工具的选择与比较

Android自动化测试工具的选择与比较Android应用程序的自动化测试在软件开发过程中扮演着重要的角色。
为了保证应用程序的质量和稳定性,开发人员需要选择一个适合他们需求的自动化测试工具。
在本文中,我们将比较几种常见的Android自动化测试工具,并为您提供有关如何选择适合您的项目的建议。
一、UI AutomatorUI Automator是由Google开发的一个基于黑盒测试的自动化测试框架。
它允许开发人员跨应用程序的用户界面元素进行测试。
UI Automator支持Android 4.1及以上的设备,并提供了丰富的API来与设备进行交互。
它的优点是可以通过模拟用户的真实操作来测试应用程序的性能和用户体验。
然而,UI Automator的学习曲线较陡峭,对于新手来说可能需要一些时间来熟悉其使用方法。
二、EspressoEspresso是一个由Google开发的轻量级自动化测试框架,旨在简化Android应用程序的UI测试。
Espresso的主要特点是易于使用和快速执行测试。
它提供了简洁的API用于编写可读性强的测试代码,并且能够处理异步操作和UI事件。
Espresso还集成了多种延时和等待机制,以便于开发人员进行稳定的测试。
然而,Espresso的适用范围相对较窄,主要针对应用程序的单个Activity进行测试。
三、AppiumAppium是一个开源的跨平台自动化测试框架,支持Android和iOS平台。
它使用WebDriver协议来驱动真实的设备和模拟器,可以以多种编程语言编写测试脚本。
Appium的优点是支持网页应用测试和混合应用测试,可以覆盖更广泛的测试场景。
然而,Appium的配置和设置相对复杂,对于初学者来说可能需要一些技术知识和经验。
四、Robot FrameworkRobot Framework是一个通用的自动化测试框架,支持多种应用程序和系统的测试。
它具有可扩展性、易用性和灵活性的特点。
Airtest简单上手讲解

Airtest简单上⼿讲解Airtest是⽹易开发的⼿机UI界⾯⾃动化测试⼯具,它原本的⽬的是通过所见即所得,截图点击等等功能,简化⼿机App图形界⾯测试代码编写⼯作。
安装和使⽤Airtest运⾏以后的界⾯如下图所⽰。
连接⼿机以Android⼿机为例,由于Airtest会通过adb命令安装两个辅助App到⼿机上,再⽤adb命令通过控制这两个辅助App进⽽控制⼿机,因此⾸先需要确保⼿机的adb调试功能是打开的,并允许通过adb命令安装App到⼿机上。
启动Airtest以后,把Android⼿机连接到电脑上,点击下图⽅框中的refresh ADB:此时在Airtest界⾯右上⾓应该能够看到⼿机的信息,如下图所⽰。
(本⼈以mumu模拟器为例)点击connect按钮,此时可以在界⾯上看到⼿机的界⾯,并且当你⼿动操作⼿机屏幕时,Airtest中的⼿机画⾯实时更新。
如下图所⽰。
对于某些⼿机,例如⼩⽶,在第⼀次使⽤Airtest时,请注意⼿机上将会弹出提⽰,询问你是否允许安装App,此时需要点击允许按钮。
打开雪球股票app先通过⼀个简单的例⼦,来看看如何快速上⼿Airtest,稍后再来详解。
例如我现在想使⽤电脑控制⼿机,打开雪球股票app。
此时,点击下图中⽅框框中的touch按钮:此时,把⿏标移动到Airtest右边的⼿机屏幕区域,⿏标会变成⼗字型。
在雪球股票app图标的左上⾓按下⿏标左键不放,并拖到雪球股票app 右下⾓松开⿏标。
此时请注意中间代码区域发⽣了什么变化,如下图所⽰。
好了。
以上就是你需要使⽤电脑打开雪球股票app所要进⾏的全部操作。
点击上⽅⼯具栏中的三⾓形图标,运⾏代码,如下图所⽰。
代码运⾏完成以后,雪球股票app被打开了。
界⾯介绍在有了⼀个直观的使⽤以后,我们再来介绍⼀下Airtest的界⾯,将会更加有针对性。
Airtest的界⾯如下图所⽰。
这⾥,我把Airtest分成了A-F6个区域,他们的功能如下:A区:常⽤操作功能区B区:Python代码编写区C区:运⾏⽇志区D区:⼿机屏幕区E区:App页⾯布局信息查看区F区:⼯具栏A区是常⽤的基于图像识别的屏幕操作功能,例如:touch: 点击屏幕元素swipe: 滑动屏幕exists: 判断屏幕元素是否存在text: 在输⼊框中输⼊⽂字snashot: 截图……⼀般来说,是点击A区⾥⾯的某⼀个功能,然后在D区屏幕上进⾏框选操作,B区就会⾃动⽣成相应的操作代码。
uiautomator原理

uiautomator原理UiAutomator是Android提供的一个自动化测试框架,用于对Android设备和应用程序进行功能测试。
UiAutomator使用Java编写,可以在模拟器或实际设备上运行。
UiAutomator的原理主要包括以下几个方面:1. Android框架层支持:UiAutomator通过与Android系统进行交互来执行各种测试任务。
它使用了Android的AccessibilityService和Instrumentation等服务和接口,进而获取当前屏幕上的UI元素、模拟用户输入和相应事件等。
2. 底层命令执行:UiAutomator通过adb命令执行以运行测试任务。
用户可以通过adb命令启动UiAutomator服务,并在设备或模拟器上运行特定的测试脚本。
adb命令可以在电脑上实现与设备的通信,并发送一系列指令来实现测试功能。
3. UI元素识别:UiAutomator可以通过遍历视图层次结构来查找需要测试的UI元素。
它可以通过特定的属性或控件的文本内容等来识别UI元素。
这样,UiAutomator可以模拟用户的交互行为,如点击按钮、滑动屏幕、输入文本等。
4. 用户输入模拟:UiAutomator可以模拟用户在设备上的各种输入行为,如触摸、滑动、按键等。
通过模拟这些用户输入行为,UiAutomator可以对应用程序的不同交互场景进行测试,并验证应用程序的正确性。
5. 事件记录和注入:UiAutomator可以记录用户与应用程序的交互事件,并将它们转换为测试用例。
在测试期间,UiAutomator可以将这些事件注入到应用程序中,并验证应用程序对这些事件的正确响应。
总结起来,UiAutomator的原理是通过与Android系统的交互,获取并识别应用程序的UI元素,模拟用户输入和事件触发,然后通过底层命令执行相应的操作,实现对应用程序的自动化测试。
通过UiAutomator,可以提高测试效率和覆盖范围,并确保应用程序在不同场景下的正确响应。
uiautomator2+weditor

uiautomator2+weditor之前呢⼀直⽤的python+appium做安卓⾃动化测试,最近看⼤佬的博客,发现了⼜⼀个神器,简单介绍⼀下哈:iautomator是Google提供的⽤来做安卓⾃动化测试的⼀个Java库。
功能很强,可以对第三⽅App进⾏测试,获取屏幕上任意⼀个APP的任意⼀个控件属性,并对其进⾏任意操作,但有两个缺点:1. 测试脚本只能使⽤Java语⾔2. 测试脚本必须每次被上传到设备上运⾏。
1.安装uiautomator2E:\python36\Scripts>pip3 install -U uiautomator22.adb连上⼿机确保⼿机和电脑能连得上,使⽤adb devices查看链接状态,adb相关的环境本篇就不多说了,搞android测试的都知道1.E:\python36\Scripts>adb devices2.List of devices attached3.adb server version (31) doesn't match this client (40); killing...4.* daemon started successfully5.emulator-5554 device安装atx-agentpython -m uiautomator2 init1.E:\python36\Scripts>python -m uiautomator2 init2.[D 190716 23:34:53 __main__:28] use cache directory: C:\Users\dell\.uiautomator23.Namespace(serial=None, server=None, subparser='init') init4.[I 190716 23:34:53 __main__:88] >>> Initial device AdbDevice(serial=emulator-5554)5.[I 190716 23:34:53 __main__:172] Install minicap, minitouch6.[Kminitouch |################################| 33.5K / 33.5K7.[?25h[D 190716 23:34:56 __main__:157] Push https:///openatx/stf-binaries/raw/master/node_modules/minitouch-prebuilt/prebuilt/x86/bin/minitouch -> /data/local/tmp/minitouch:07558.[I 190716 23:34:56 __main__:176] abi:x86 seems to be android emulator, skip install minicap9.[I 190716 23:34:56 __main__:182] Install com.github.uiautomator, com.github.uiautomator.test10.[D 190716 23:34:56 __main__:100] Shell: ('pm', 'uninstall', 'com.github.uiautomator')11.[D 190716 23:34:56 __main__:100] Shell: ('pm', 'uninstall', 'com.github.uiautomator.test')12.[Kapp-uiautomator.apk |################################| 1.7M / 1.7M.7M13.[?25h[D 190716 23:35:05 __main__:157] Push https:///openatx/android-uiautomator-server/releases/download/1.1.7/app-uiautomator.apk -> /data/local/tmp/app-uiautomator.apk:064414.[D 190716 23:35:05 __main__:100] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator.apk')15.[Kapp-uiautomator-test.apk |################################| 966.8K / 966.8K16.[?25h[D 190716 23:35:11 __main__:157] Push https:///openatx/android-uiautomator-server/releases/download/1.1.7/app-uiautomator-test.apk -> /data/local/tmp/app-uiautomator-test.apk:064417.[D 190716 23:35:11 __main__:100] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator-test.apk')18.[I 190716 23:35:18 __main__:193] Install atx-agent19.[Katx-agent_0.6.0_linux_386.tar.gz |################################| 4.0M / 4.0M.0M20.[?25h[D 190716 23:35:23 __main__:157] Push https:///openatx/atx-agent/releases/download/0.6.0/atx-agent_0.6.0_linux_386.tar.gz -> /data/local/tmp/atx-agent:075521.[D 190716 23:35:26 __main__:100] Shell: ('/data/local/tmp/atx-agent', 'server', '--stop')22.[D 190716 23:35:26 __main__:100] Shell: ('/data/local/tmp/atx-agent', 'server', '-d')23.[I 190716 23:35:26 __main__:202] Check install24.[D 190716 23:35:26 __main__:212] Forward: local:tcp:53461 -> remote:tcp:791225.[D 190716 23:35:28 __main__:214] atx-agent version 0.6.026.Successfully init AdbDevice(serial=emulator-5554)看到Successfully就是安装成功了(当然总是有⼏个⼩伙伴的⼿机需要换下了)连接⼿机python-uiautomator2连接⼿机的⽅式有两种,⼀种是通过WIFI,另外⼀种是通过USB⾸先查看uiautomator状态是启动状态b连接⼿机先使⽤adb devices获取⼿机的唯⼀识别序列号,也就是devices前⾯的那⼀串:emulator-5554E:\python36\Scripts>adb devicesList of devices attachedemulator-5554 device测试是否连接成功,先打开你的⼿机上的任意app,⽐如淘宝,cmd输⼊以下信息1.E:\python36\Scripts>python2.Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win323.Type "help", "copyright", "credits" or "license" for more information.4.>>> import uiautomator2 as u25.>>> d = u2.connect_usb('emulator-5554')6.>>> 7.{'currentPackageName': 'com.taobao.taobao', 'displayHeight': 1280, 'displayRotation': 0, 'displaySizeDpX': 360,8.'displaySizeDpY': 640, 'displayWidth': 720, 'productName': 'h60-l01', 'screenOn': True, 'sdkInt': 22, 'naturalOrientation': True}9.>>>看到输出’currentPackageName’: ‘com.taobao.taobao’说明连接成功了2.wifi连接⾸先保证⼿机和电脑在⼀个局域⽹,可以先ping ⼿机ip,看能不能ping的通1.>>> import uiautomator2 as u22.>>> d = u2.connect('192.168.1.xx')3.>>> weditor环境准备pip install —pre weditor创建桌⾯快捷图标python -m weditor —shortcut创建完成后,桌⾯会出现⼀个WEditor快捷图标,双击就能启动了也可以不创建图标,⽤命令⾏启动python -m weditor看到窗⼝出现如下信息,就是启动成功了(窗⼝别关掉了)1.C:\Users\dell>python -m weditor2.listening on http://192.168.1.125:173103.[I 190717 23:50:55 web:2246] 304 GET / (::1) 7.98ms4.[I 190717 23:50:55 web:2246] 304 GET /static/libs/css/buttons.css (::1) 196.47ms5.[I 190717 23:50:55 web:2246] 304 GET /static/loading.svg (::1) 5.99ms6.[I 190717 23:50:55 web:2246] 304 GET /static/ace/ace.js (::1) 12.97ms7.[I 190717 23:50:55 web:2246] 304 GET /static/running.svg (::1) 13.96ms8.[I 190717 23:50:55 web:2246] 304 GET /static/ace/mode-python.js (::1) 19.96ms9.[I 190717 23:50:55 web:2246] 304 GET /static/libs/fontawesome/css/font-awesome.min.css (::1) 1.99ms10.[I 190717 23:50:59 web:2246] 304 GET /api/v1/version (::1) 0.00msweditor连接⼿机先使⽤adb连上⼿机,输⼊adb devices查看⼿机设备号:emulator-55541.C:\Users\dell>adb devices2.List of devices attached3.adb server version (31) doesn't match this client (40); killing...4.* daemon started successfully5.emulator-5554 device在页⾯上输⼊⼿机设备号,点Connet按钮,看到出现⼀个⼩草的图标,就是连接成功了页⾯元素抓取定位元素定位元素的⽅法⽀持uiautomator的定位⽅法,也可以⽀持xpath和坐标定位1.可以查看元素的resourceId属性2.⾃动⽣成xpath定位⽅法3.⽀持坐标点击,根据屏幕的⽐例4.⾃动⽣成uiautomator定位⽅法参考代码5.可以勾选强制使⽤xpath在线Coding调试可以在页⾯的右边调试运⾏代码,这点⽐appium强很多,可以编写代码边调试,还是⾮常⽅便的操作步骤:点勾选⾼铁动车后,点查询按钮1.d(resourceId="com.yipiao:id/checkGaotie").click()2.d.xpath('//*[@resource-id="com.yipiao:id/layQueryCard"]/android.widget.FrameLayout[1]').click()Ctr+Enter运⾏代码,会发现⼿机上已经点击成功⽀持wifi连接⾸先保证电脑和⼿机wifi在⼀个局域⽹,电脑上能ping的通⼿机的ip,输⼊⼿机的ip也可以抓到⼿机上的页⾯元素看完上⾯的⽂章再加上⽂章开头的api⽂档相信基本使⽤应该没问题了,下⾯呢,我写⼀个⽤uiautomator2去⽀付宝收集能量的⼀个脚本哈:脚本如下:1.# coding:utf-82.import uiautomator2 as u23.d = u2.connect_usb('740dc3d1')4.print('打开⽀付宝')5.d.app_start('com.eg.android.AlipayGphone')6.print('点击蚂蚁森林')7.d.xpath('//*[@text="蚂蚁森林"]').click()8.n = d(descriptionContains='收集').count9.for i in range(n):10.d.xpath('//*[contains(@content-desc,"收集能量")]').click()11.print('收集能量成功')12.print('收集能量结束!')怎么样?只要将这个脚本设置未定时任务就可以⾃⼰每天定时去收取能量了,这样你的⼩树才会长得快呀!总体来说呢,uiautomator2⽐appium安装搭建环境要简单⼀点,代码呢也⼗分简洁!其次就是这个weditor 也⽐appium查看页⾯元素要⽅便,反应快,可实时调代码这是关键!期待后⾯的⾃动化项⽬可以⽤uiautomaor2 来试试⼿,届时会继续更新uiautomator2的详细使⽤,及踩坑的记录!———————————————————————————。
Android自动化测试框架对比选择最适合你的工具

Android自动化测试框架对比选择最适合你的工具随着移动应用的快速发展,测试移动应用的重要性变得愈加显著。
为了提高测试效率和质量,许多开发者和测试人员转向自动化测试框架。
而对于Android平台而言,选择最适合的自动化测试工具成为了关键。
本文将对比一些常用的Android自动化测试框架,帮助读者选择最适合自己的工具。
以下是几个常见的框架:1. EspressoEspresso是Google提供的一款简单易用的自动化测试框架,主要用于UI测试。
它支持Java和Kotlin语言,可以在Android Studio中直接集成使用。
Espresso提供了丰富的API,可以方便地进行View的查找和交互操作,同时还支持断言和验证UI行为。
2. UI AutomatorUI Automator同样由Google开发,专注于系统层面的UI自动化测试。
它可以跨应用进行测试,并支持Java编写。
UI Automator提供了强大的查找和操作能力,可以轻松地访问系统组件和UI元素,适用于跨应用的复杂场景。
3. AppiumAppium是一个跨平台的自动化测试框架,支持Android和iOS平台。
它使用WebDriver协议,可以用多种编程语言编写测试脚本,包括Java、Python和JavaScript等。
Appium可以与Android Studio等开发环境集成,支持UI交互和断言,同时也支持跨应用的测试。
4. RobotFrameworkRobotFramework是一个通用的开源自动化测试框架,可以用于不同的平台和应用。
它使用关键字驱动的方式编写测试脚本,支持多种编程语言,包括Python和Java等。
RobotFramework提供了丰富的测试库和插件,支持UI和API层面的测试,并且具有良好的扩展性。
5. CalabashCalabash是一个基于Cucumber的自动化测试框架,使用Ruby语言编写。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
adb shell input keyevent 26 adb shell input keyevent KEYCODE_POWER 连续输入0123 adb shell input keyevent 7 8 9 10
adb shell input keyevent KEYCODE_0 KEYCODE_1 KEYCODE_2 KEYCODE_3
6
综合例子
综合例子
例子:拍照压力测试
步骤分析: 1、回到主屏幕; 2、点击相机图标 3、拍照 4、点击到相册 5、删除图片 5、循环3、4、5,100遍 命令分析: 1、按键Home,延迟2秒 2、点击相机图标的坐标,延迟2秒 3、点击拍照按钮坐标,延迟2秒 4、点击相册按钮,延迟2秒 5、向上滑动删除,延迟2秒 5、循环语句
KEYCODE
• KEYCODE 键盘映射码
说明 拨号键 挂机键 按键Home 菜单键 返回键 搜索键 拍照键 拍照对焦键 电源键 通知键 话筒静音键 扬声器静音键 音量增加键 音量减小键 键值 5 6 3 82 4 84 27 80 26 83 91 164 24 25
• 相关信息搜索 ANDROID KEYCODE 快速查询KEYCODE值与键名
1、右键-保存到文件 2、解压 3、配置环境变量
ad b . rar
Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-android
备注: 完整配置:完整配置请配置完整Android 开发环境:JDK+SDK
连接手机
1、开启”USB调试“,USB连接手机
步骤:开发者选项→Android 调试
2、安装adb驱动
步骤:使用”ADBDriverInstaller.exe“工具进行驱动安装
3、允许”USB授权“ 4、验证连接成功 >adb devices >adb shell
驱动安装工具
2屏幕操作之点击操作点命令格式点击 tap <x> <y>
参数说明: <x>: 必选参数,传入X坐标值 <y>: 必选参数,传入Y坐标值
4
滑动与长按屏幕
滑动命令说明
滑动与长按屏幕 swipe <x1> <y1> <x2> <y2> [duration(ms)]
参数说明: <x1> :必须参数,起点X坐标 <y1> :必须参数,起点Y坐标 <x2> :必须参数,终点X坐标 <y2> :必须参数,终点Y坐标 [duration(ms)]:可选参数,两点之间持续滑动时间
按键命令格式
按键与长按键 keyevent [--longpress] <key code number or name> ...
参数说明: [--longpress]: 可选参数,指定是否为长按键 <key code number or name>: 必选参数,传入按键值或者键名
... :可选参数,可以传入多个按键值或者键名形成链式操作
输入文本 text <string>
按键与长按键
点击 滑动与长按屏幕
keyevent [--longpress] <key code number or name> ...
tap <x> <y> swipe <x1> <y1> <x2> <y2> [duration(ms)]
环境要求
配置adb命令环境 简单配置:将adb目录设置到环境变量path中
• 获取指定坐标 • 设置--开发者选项--输入-指针位置 • 开发者选项开启:快速点击5次版本号
• 备注:通过UIAutomatorViewer获取坐标
• SDK目录下的tools目录下 • 如:android-sdk-windows\tools\uiautomatorviewer.bat
3
按键与长按键
例如:点击坐标[500,500]位置 adb shell input tap 500 500
坐标
绝对坐标:是以点O为原点,作为参考点,来定位平面内某一点的具体位置, 表示方法为:A(X,Y);
X轴 坐标原点 (0,0)
Y 轴
Android 坐标系
获取屏幕坐标
• 获取屏幕分辨率
adb shell wm size
键名 KEYCODE_CALL KEYCODE_ENDCALL KEYCODE_HOME KEYCODE_MENU KEYCODE_BACK KEYCODE_SEARCH KEYCODE_CAMERA KEYCODE_FOCUS KEYCODE_POWER KEYCODE_NOTIFICATION KEYCODE_MUTE KEYCODE_VOLUME_MUTE KEYCODE_VOLUME_UP KEYCODE_VOLUME_DOWN
目录
1 2
input 命令帮助介绍 屏幕操作之点击操作 按键与长按键 滑动与长按屏幕 综合例子
3
4 5
1
input 命令帮助介绍
简单UI自动化常见操作动作
UI 操作
屏幕操作
点击、长按、滑动
按键操作
物理按键、软键盘按键 长按按键
输入操作
输入文本
input 帮助命令
• 命令格式
Usage: input <command> [<arg>...]
例子
• 从点p1[500,500]滑动到点p2[800,800]
adb shell input swipe 500 500 800 800 adb shel input swipe 500 500 800 800 50
长按屏幕
• 调整两点之间的持续时间可以实现长按效果 1、两点足够近 2、两地移动时间,可以按长按时间调节
例如长按点[500,500]
adb shell input swipe 500 500 510 510 3000
5
输入文本
输入文本命令说明
输入文本 text <string>
参数说明: <string> :必须参数,需要输入的字符串
例子:输入1234abcd adb shell input text 1234abcd
Android adb 简单UI自动化测试
课程介绍
本课程主要介绍使用adb shell input 命令实现简单快速自动化测试 input 命令可以实现模拟常用的手机操作步骤:点击、滑动、长按、按键、 文本输入 本课程特点:
• 测试入门课程 • 零基础课程 • 简单好学 • 涉及所有物件都会提供 • 涉及所有概念都解释清楚 • 用途:无需编程语言,快速实现简单压力测试