Android adb 简单UI自动化测试

合集下载

Android移动端自动化测试框架UIAutomator2入门

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测试中的自动化工具成为开发人员的首选。

本文将对几种常用的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应用程序的自动化测试在软件开发过程中扮演着重要的角色。

为了保证应用程序的质量和稳定性,开发人员需要选择一个适合他们需求的自动化测试工具。

在本文中,我们将比较几种常见的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简单上⼿讲解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原理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

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平台而言,选择最适合的自动化测试工具成为了关键。

本文将对比一些常用的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语言编写。

Android常用adb命令总结

Android常用adb命令总结

Android常⽤adb命令总结针对移动端 Android 的测试, adb 命令是很重要的⼀个点,必须将常⽤的 adb 命令熟记于⼼,将会为 Android 测试带来很⼤的⽅便,其中很多命令将会⽤于⾃动化测试的脚本当中。

Android Debug Bridgeadb 其实就是Android Debug Bridge, Android 调试桥的缩写,adb 是⼀个C/S架构的命令⾏⼯具,主要由 3 部分组成:运⾏在 PC 端的 Client : 可以通过它对 Android 应⽤进⾏安装、卸载及调试Eclipse 中的 ADT、SDK Tools ⽬录下的 DDMS、Monitor 等⼯具,都是同样地⽤到了 adb 的功能来与 Android 设备进⾏交互。

PC 端的⼿机助⼿,诸如 360 ⼿机助⼿、豌⾖荚、应⽤宝等,其除了安装第三⽅应⽤⽅便,其他的功能,基本上都可以通过 adb 命令去完成,这⾥建议测试⼈员尽量不要在电脑上安装这类⼿机助⼿,因为其⾃带的 adb 程序可能会与 Android SDK下的 adb 程序产⽣冲突,5037端⼝被占⽤,导致使⽤ adb 命令时⽆法连接到设备运⾏在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程运⾏在 Android 设备上的 adb 后台进程执⾏adb shell ps | grep adbd,可以找到该后台进程,windows 请使⽤findstr替代 grep[xuxu:~]$ adb shell ps | grep adbdroot 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd这⾥注意⼀个地⽅,就是 adb 使⽤的端⼝号,5037,有必要记⼀下接下来我将 adb 命令分为三部分进⾏介绍,adb 命令、adb shell 命令、linux 命令adb 命令在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其⼀般的格式为:adb [-e | -d | -s <设备序列号>] <⼦命令>在配好环境变量的前提下,在命令窗⼝当中输⼊ adb help 或者直接输⼊ adb ,将会列出所有的选项说明及⼦命令。

APP测试面试题分享(附带参考答案)

APP测试面试题分享(附带参考答案)

APP测试⾯试题分享(附带参考答案)1、Android四⼤组件Android四⼤基本组件:Activity、BroadcastReceiver⼴播接收器、ContentProvider内容提供者、Service服务。

Activity:应⽤程序中,⼀个Activity就相当于⼿机屏幕,它是⼀种可以包含⽤户界⾯的组件,主要⽤于和⽤户进⾏交互。

⼀个应⽤程序可以包含许多活动,⽐如事件的点击,⼀般都会触发⼀个新的Activity。

BroadcastReceiver⼴播接收器:应⽤可以使⽤它对外部事件进⾏过滤只对感兴趣的外部事件(如当电话呼⼊时,或者数据⽹络可⽤时)进⾏接收并做出响应。

⼴播接收器没有⽤户界⾯。

然⽽,它们可以启动⼀个activity或serice 来响应它们收到的信息,或者⽤NotificationManager来通知⽤户。

通知可以⽤很多种⽅式来吸引⽤户的注意⼒──闪动背灯、震动、播放声⾳等。

⼀般来说是在状态栏上放⼀个持久的图标,⽤户可以打开它并获取消息。

ContentProvider内容提供者:内容提供者主要⽤于在不同应⽤程序之间实现数据共享的功能,它提供了⼀套完整的机制,允许⼀个程序访问另⼀个程序中的数据,同时还能保证被访问数据的安全性。

只有需要在多个应⽤程序间共享数据时才需要内容提供者。

例如:通讯录数据被多个应⽤程序使⽤,且必须存储在⼀个内容提供者中。

它的好处:统⼀数据访问⽅式。

Service服务:是Android中实现程序后台运⾏的解决⽅案,它⾮常适合去执⾏那些不需要和⽤户交互⽽且还要长期运⾏的任务(⼀边打电话,后台挂着QQ)。

服务的运⾏不依赖于任何⽤户界⾯,即使程序被切换到后台,或者⽤户打开了另⼀个应⽤程序,服务仍然能够保持正常运⾏,不过服务并不是运⾏在⼀个独⽴的进程当中,⽽是依赖于创建服务时所在的应⽤程序进程。

当某个应⽤程序进程被杀掉后,所有依赖于该进程的服务也会停⽌运⾏(正在听⾳乐,然后把⾳乐程序退出)。

uiautomator2基本操作及应用

uiautomator2基本操作及应用

uiautomator2是一个用于Android设备自动化测试的Python库,它提供了一组API来操作和控制Android设备。

以下是一些基本的uiautomator2操作及应用:1. 安装uiautomator2库:```bashpip install uiautomator2```2. 连接Android设备并启动uiautomator2服务:```bashadb connect <设备IP地址>:<端口号>uiautomator2 init```3. 获取设备的屏幕尺寸:```pythonimport uiautomator2 as u2device = u2.connect()screen_size = device.window_size()print("屏幕尺寸:宽度{},高度{}".format(screen_size["width"], screen_size["height"]))```4. 点击屏幕上的元素:```pythondevice.click(x=100, y=200) # 点击坐标为(100, 200)的元素device(text="按钮文本").click() # 点击文本为"按钮文本"的元素```5. 输入文本:```pythondevice.set_text("Hello, World!") # 在当前焦点的元素中输入文本"Hello, World!"device(text="输入框").set_text("Hello, World!") # 在文本为"输入框"的元素中输入文本"Hello, World!"```6. 滑动屏幕:```pythondevice.swipe(x1=100, y1=200, x2=300, y2=400, duration=1) # 从坐标(100, 200)滑动到坐标(300, 400),耗时1秒```7. 获取元素属性:```pythonelement = device(resourceId="com.example.app:id/button") # 根据资源ID获取元素print("元素文本:", element.text) # 获取元素的文本内容print("元素可见性:", element.exists) # 判断元素是否可见print("元素是否可点击:", element.is_enabled) # 判断元素是否可点击```8. 截图:```pythondevice.screenshot("screenshot.png") # 截取当前屏幕并将图片保存为"screenshot.png"```。

基于adb命令的安卓自动化测试框架

基于adb命令的安卓自动化测试框架

基于adb命令的安卓自动化测试框架作者:仲林霖来源:《科学与财富》2017年第24期摘要:本文主要介绍了一个可以执行安卓自动化测试的方法,使用adb命令调试手机。

通过adb命令获取手机界面元素,发送动作指令给手机。

关键词:安卓 adb 自动化1. 引言Android系统已经占据智能移动设备市场80%以上的份额,所以相应的对于app的测试也尤为重要,而自动化测试又是一个效率高、及其节省人力的方法。

现在市场上的测试框架用的比较多的是Appium。

虽然Appium框架功能相对比较齐全,但是Appium的框架比较重,相关的文档指导比较少,所以使用起来,学习成本也高。

本文所描述框架,主要是简化测试框架、提高执行效率。

2. 关于adb的基础Android 调试桥(adb)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。

它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。

该工具作为一个客户端-服务器程序,包括三个组件:客户端,该组件发送命令。

客户端在开发计算机上运行。

您可以通过发出 adb 命令从命令行终端调用客户端。

后台程序,该组件在设备上运行命令。

后台程序在每个模拟器或设备实例上作为后台进程运行。

服务器,该组件管理客户端和后台程序之间的通信。

服务器在开发计算机上作为后台进程运行。

3. 自动化框架此框架只支持测试安卓app,是基于adb命令功能的封装,在执行效率上有了很大提升。

1)寻找目标控件控件属性包含:text、resource-id、class、package、content-desc、checkable、checked、clickable、enable、focusable、focused、scrollable、long-clickable、password、selected、bounds。

寻找的条件可以是上面列出属性的其中一个,或者多个组合。

Android自动化测试处理各种弹窗的操作方法

Android自动化测试处理各种弹窗的操作方法

Android⾃动化测试处理各种弹窗的操作⽅法在UI⾃动化测试中弹窗是影响⾃动化⽤例稳定性的⼀⼤因素,如何⽅便快捷的处理各种情况下的弹窗,是搞UI⾃动化测试必须要⾯临的问题.弹窗的种类:安装APP时的系统弹窗此类弹窗⼀般有两种,⼀种是⾃动化测试框初始化本⾝也需要安装⼀些APP,⽐如uiautomator2会安装atx-agent、com.github.uiautomator,这些弹窗在初始化环境的时候可以⼿动点掉,case⾥不需要关注。

另⼀种就是安装我们的被测app,像下⾯这种都是我们不得不去处理的,不然,⾃动化也就是不⾃动了。

APP启动时的权限弹窗这类弹窗是APP在启动时会申请⼀些基础的权限APP内的业务弹窗弹窗处理本⽂使⽤的是uiautomator2这个⾃动化框架,它提供了⼀种watcher对象,可以⽤来配置要监控的元素,这⾥我们配置要监控的就是页⾯上的弹窗,下⾯来看看具体怎么做。

watcher的使⽤# 常⽤写法,注册匿名监控d.watcher.when("安装").click()# 注册名为ANR的监控,当出现ANR和Force Close时,点击Force Closed.watcher("ANR").when(xpath="ANR").when("Force Close").click()# 其他回调例⼦d.watcher.when("抢红包").press("back")d.watcher.when("//*[@text = 'Out of memory']").call(lambda d: d.shell('am force-stop com.im.qq'))# 回调说明def click_callback(d: u2.Device):d.xpath("确定").click() # 在回调中调⽤不会再次触发watcherd.xpath("继续").click() # 使⽤d.xpath检查元素的时候,会触发watcher(⽬前最多触发5次# 移除ANR的监控d.watcher.remove("ANR")# 移除所有的监控d.watcher.remove()# 开始后台监控d.watcher.start()d.watcher.start(2.0) # 默认监控间隔2.0s# 强制运⾏所有监控d.watcher.run()# 停⽌监控d.watcher.stop()# 停⽌并移除所有的监控,常⽤于初始化d.watcher.reset()上⾯是watcher的⼀些常⽤api以及解释,来源于github。

Android测试中的UI自动化测试工具推荐

Android测试中的UI自动化测试工具推荐

Android测试中的UI自动化测试工具推荐在Android测试领域,UI自动化测试工具是至关重要的一环。

它们的目的是通过模拟用户交互来验证应用程序在不同设备和屏幕尺寸下的可靠性和稳定性。

本文将介绍几款在Android测试中被广泛推荐的UI自动化测试工具。

一、Appium:跨平台的自动化测试工具Appium是一款开源、跨平台的自动化测试工具,支持多种编程语言,包括Java、Python、Ruby等。

它可以针对Android和iOS应用进行测试,而且与操作系统解耦,使得测试用例可以在不同平台上重复使用。

Appium使用WebDriver协议进行操作,支持多种自动化框架和测试框架,如JUnit和TestNG。

二、Espresso:Google官方推荐的测试框架Espresso是一个强大的UI测试框架,由Google官方推出并维护。

它专为Android应用程序设计,提供了简单易用的API和丰富的匹配器(Matcher)来组织测试用例。

Espresso支持事件同步和异步操作的优化,能够准确地模拟用户交互,并进行可靠的断言和验证。

三、UI Automator:面向系统级测试的工具UI Automator是Google提供的一种系统级开发测试框架,用于验证Android应用的用户界面。

它提供了一组强大的API,可以访问和操作应用程序中的UI组件。

UI Automator适用于系统级UI测试场景,如跨应用测试、应用间交互和系统设置的测试。

它支持多个设备和多个应用的并行测试,并提供JUnit测试运行器执行测试。

四、Robot Framework:基于关键字的测试框架Robot Framework是一个开源的、通用的自动化测试框架,可以用于Android应用程序的UI自动化测试。

它采用关键字驱动的方式编写测试脚本,非常易读且可维护。

Robot Framework支持多种自动化库和插件,可与其他工具无缝集成,提供了广泛的测试报告和日志。

移动应用UI自动化测试的技巧和工具推荐

移动应用UI自动化测试的技巧和工具推荐

移动应用UI自动化测试的技巧和工具推荐随着移动应用的普及和快速发展,用户对于应用的质量和用户体验要求也越来越高。

为了确保移动应用的正常运行,开发人员必须进行全面的测试工作。

而自动化测试作为一种高效的测试方式,越来越受到开发人员和测试人员的重视。

在移动应用UI自动化测试中,开发人员需要掌握一些技巧和工具。

下面将介绍一些常用的技巧和工具,帮助开发人员更好地进行移动应用UI自动化测试。

首先,要保证测试用例的覆盖率。

移动应用的UI界面非常多样化,不同的用户操作都可能引发不同的场景和交互效果。

因此,在编写测试用例时,要考虑尽可能多的用户操作和交互场景,充分覆盖不同的UI界面和功能模块。

其次,要选择合适的自动化测试框架和工具。

目前市面上有许多优秀的自动化测试框架和工具可供选择,如Appium、Calabash、Robot Framework等。

这些工具都具有简单易用、功能丰富的特点,可以帮助开发人员实现自动化测试流程的快速执行和结果分析。

此外,要注意选择合适的测试环境和设备。

不同的移动操作系统和设备版本对应用的兼容性和性能有不同的要求。

因此,在进行自动化测试时,要选择覆盖常用设备和操作系统版本的测试环境,确保测试结果的准确性和可靠性。

另外,对于需要进行重复测试的场景,可以使用录制回放功能来简化测试过程。

录制回放是一种将用户操作记录为脚本并可以重复执行的功能,可以大大提高测试效率。

一些自动化测试工具,如Appium和Calabash,都提供了录制回放功能,开发人员可以根据需要选择合适的功能。

此外,对于测试结果的分析和报告,也是十分重要的。

测试结果的分析可以帮助开发人员快速定位和修复问题,提高开发效率。

而测试报告可以为开发人员和测试人员提供测试进度和质量的评估依据。

因此,在进行自动化测试时,要选择支持测试结果分析和报告生成的测试工具,并灵活运用这些功能。

在进行移动应用UI自动化测试时,需要关注一些常见的问题。

例如,移动应用的UI界面随着版本更新和功能变更可能会发生变化,因此测试用例也要随之调整,确保测试用例的有效性。

常用的Android手机自动化测试工具

常用的Android手机自动化测试工具

常用的Android手机自动化测试工具Android手机是如今最多用户使用的智能手机,其相关的自动化测试工具也很受工程师的关注。

以下是店铺为你整理推荐常用的Android手机自动化测试工具,希望你喜欢。

Android手机自动化测试工具1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。

实际上该工具只能做程序做一些压力测试,由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的测试工具。

严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。

缺点是脚本用Python来写,对测试人员来说要求较高,有比较大的学习成本。

3、Instrumentation是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。

通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。

Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。

缺点是对测试人员来说编写代码能力要求较高,需要对Android相关知识有一定了解,还需要配置AndroidManifest.xml文件,不能跨多个App。

4、UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。

uiautomator2+python自动化测试2-查看app页面元素利器weditor

uiautomator2+python自动化测试2-查看app页面元素利器weditor

uiautomator2+python⾃动化测试2-查看app页⾯元素利器weditor 前⾔android sdk⾥⾯⾃带的uiautomatorviewer.bat可以查看⼿机app上的元素,但是不太好⽤,⽹上找了个⼤⽜写的weditor,试⽤了下还是蛮不错的python环境:3.6weditor环境准备pip install --pre weditor创建桌⾯快捷图标python -m weditor --shortcut创建完成后,桌⾯会出现⼀个WEditor快捷图标,双击就能启动了也可以不创建图标,⽤命令⾏启动python -m weditor看到窗⼝出现如下信息,就是启动成功了(窗⼝别关掉了)C:\Users\dell>python -m weditorlistening on http://192.168.1.125:17310[I 190717 23:50:55 web:2246] 304 GET / (::1) 7.98ms[I 190717 23:50:55 web:2246] 304 GET /static/libs/css/buttons.css (::1) 196.47ms[I 190717 23:50:55 web:2246] 304 GET /static/loading.svg (::1) 5.99ms[I 190717 23:50:55 web:2246] 304 GET /static/ace/ace.js (::1) 12.97ms[I 190717 23:50:55 web:2246] 304 GET /static/running.svg (::1) 13.96ms[I 190717 23:50:55 web:2246] 304 GET /static/ace/mode-python.js (::1) 19.96ms[I 190717 23:50:55 web:2246] 304 GET /static/libs/fontawesome/css/font-awesome.min.css (::1) 1.99ms[I 190717 23:50:59 web:2246] 304 GET /api/v1/version (::1) 0.00msweditor连接⼿机先使⽤adb连上⼿机,输⼊adb devices查看⼿机设备号:emulator-5554C:\Users\dell>adb devicesList of devices attachedadb server version (31) doesn't match this client (40); killing...* daemon started successfullyemulator-5554 device在页⾯上输⼊⼿机设备号,点Connet按钮,看到出现⼀个⼩草的图标,就是连接成功了页⾯元素抓取定位元素定位元素的⽅法⽀持uiautomator的定位⽅法,也可以⽀持xpath和坐标定位1.可以查看元素的resourceId属性2.⾃动⽣成xpath定位⽅法3.⽀持坐标点击,根据屏幕的⽐例4.⾃动⽣成uiautomator定位⽅法参考代码5.可以勾选强制使⽤xpathCoding调试可以在页⾯的右边调试运⾏代码,这点⽐appium强很多,可以编写代码边调试,还是⾮常⽅便的操作步骤:点勾选⾼铁动车后,点查询按钮d(resourceId="com.yipiao:id/checkGaotie").click()d.xpath('//*[@resource-id="com.yipiao:id/layQueryCard"]/android.widget.FrameLayout[1]').click()Ctr+Enter运⾏代码,会发现⼿机上已经点击成功⽀持wifi连接⾸先保证电脑和⼿机wifi在⼀个局域⽹,电脑上能ping的通⼿机的ip,输⼊⼿机的ip也可以抓到⼿机上的页⾯元素。

UI自动化之ADB常用命令及详解

UI自动化之ADB常用命令及详解

UI⾃动化之ADB常⽤命令及详解基础脚本:1、启动adb服务:adb start-server2、终⽌adb服务:adb kill-server3、进⼊adb运⾏环境:adb shell4、获取帮助⾥⾯有adb的各种命令和参数的介绍:adb help5、查看adb版本:adb version6、以root权限db:adb root7、将system分区重新挂在为可读写分区,此命令在操作系统⽬录时很重要:adb remount8、重启设备,可选参数进⼊bootloader(刷机模式)或recovery(恢复模式):adb reboot [bootloader|recovery]apk相关:1、安装apk:adb install test.apk-r 覆盖安装,保留数据和缓存⽂件 -d 解决低版本version问题 -s 安装apk到sd卡2、卸载apk:adb uninstall -k <package_name>可选参数-k的作⽤为卸载软件但是保留配置和缓存⽂件3、查看app相关所有信息:adb shell dumpsys package <package_name>4、查看app的路径:adb shell pm path <package_name>查看了⼀个普通app的路径,如下,位于data/app下⾯的普通apppackage:/data/app/com.tencent.test-1/base.apk5、查看apk的版本信息:adb shell dumpsys package <package_name> | grep version如果你得到的是下图的两个version版本,则为系统app,下⾯是系统app本⾝的版本,上⾯是升级之后的系统app的版本信息versionCode=8 targetSdk=22 versionName=V0.08 versionCode=6 targetSdk=22 versionName=V0.06、启动activity: adb shell am start -n <package_name>/.<activity_class_name>7、获得应⽤的启动时间,可以很⽅便地获取应⽤的启动时间:adb shell am start -W <package_name>/.<activity_class_name>试验结果如下:adb shell am start -W .test/com.painter.test.PainterMainActivity Starting: Intent { act=android.intent.action.MAIN cat= [UNCHER] cmp=.test/com.painter.test.PainterMainActivity } Status: ok Activity:.test/com.painter.test.PainterMainActivity ThisTime: 355 TotalTime: 355 WaitTime: 365 Complete返回的⼏个结果,以WaitTime为准,返回的是从startActivity到应⽤第⼀帧完全显⽰的时间。

安卓自动化-----常用自动化工具

安卓自动化-----常用自动化工具

安卓⾃动化-----常⽤⾃动化⼯具⼀、⾃动化⼯具1、Android Debug Bridge(ADB)即安卓调试桥,是Google提供的为Android编写UI测试⽤例的⾃动化⼯具;2、UIAutomator Google提供的为Android编写UI测试⽤例的⾃动化⼯具;3、UIAotomator2 uiautomator2 是⼀个可以使⽤Python对Android设备进⾏UI⾃动化的库;4、appium 跨平台的测试框架,同时⽀持iOS和Android。

⼆、详细介绍1、安卓调试桥ADB是⼀个C/S架构的应⽤程序,由三部分组成:运⾏在pc端的adb client:命令⾏程序”adb”⽤于从shell或脚本中运⾏adb命令。

⾸先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序⾃动启动⼀个ADB服务器。

接下来,当设备的adbd和pc端的adb server建⽴连接后,adb client就可以向ADB servcer发送服务请求;运⾏在pc端的adb server:ADB Server是运⾏在主机上的⼀个后台进程。

它的作⽤在于检测USB端⼝感知设备的连接和拔除,以及模拟器实例的启动或停⽌,ADB Server还需要将adb client的请求通过usb或者tcp的⽅式发送到对应的adbd上;运⾏在设备端的常驻进程adb demon (adbd):程序“adbd”作为⼀个后台进程在Android设备或模拟器系统中运⾏。

它的作⽤是连接ADB服务器,并且为运⾏在主机上的客户端提供⼀些服务。

2、 UiAutomatorUiAutomator是⾕歌在Android4.1版本发布时推出的⼀款⽤Java编写的UI测试框架,基于Accessibility服务。

其最⼤的特点就是可以跨进程操作,可以使⽤UiAutomator框架提供的⼀些⽅便的API来对安卓应⽤进⾏⼀系列的⾃动化测试操作,如点击、滑动、键盘输⼊、长按以及常⽤的断⾔⽅法等。

Android 自动化测试命令基础入门3-logcat

Android 自动化测试命令基础入门3-logcat
radio adb logcat -b radio radio adb logcat -b events
3
缓冲区操作
命令行选项
-c
清除(刷新)整个缓冲区日志并退出。
-d
将缓冲区日志转储到屏幕并退出。
-g
打印指定日志缓冲区的大小并退出。
-G
设置环形缓冲区大小,单位可以为K或者M
4
日志过滤
日志格式
tag D/asd_primary_out: L[0],R[0], continus 20 times! raw L[0],R[0], continus 20 times! time 03-22 14:47:38.220 D/asd_primary_out( 630): L[0],R[0], continus 20 times! threadtime 03-22 14:47:38.220 630 1391 D asd_primary_out: L[0],R[0], continus 20 times!
默认值
main
radio
无线装置/电话相关消息
备用
系统日志消息
默认值
system
奔溃日志消息
默认值
crash
日志 缓冲区
events
事件相关消息
备用
缓冲区数据结构
环形缓冲区是一种数据结构 表示一个固定尺寸头尾相连的缓冲区 适合缓存数据流
环形 缓冲区
查看指定缓冲区
[adb] logcat [-b <buffer>]
system_server com.huawei.hiview com.tencent.tim com.alibaba.android.rimet com.huawei.desktop.systemui
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 命令可以实现模拟常用的手机操作步骤:点击、滑动、长按、按键、 文本输入 本课程特点:
• 测试入门课程 • 零基础课程 • 简单好学 • 涉及所有物件都会提供 • 涉及所有概念都解释清楚 • 用途:无需编程语言,快速实现简单压力测试
相关文档
最新文档