首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

提高Android自动化测试稳定性方法(三)

小卡片,回复 “合集” 获取系统性学习笔记和测试开发技能图谱 背景 在之前一篇文章《移动端UI自动化过程中难点及应对策略》中,我们提到在Android自动化测试执行过程中经常会遇到一些非预期系统弹框...,我们可以通过无障碍服务来实现智能点击处理,但是通常这个服务只能手动到设置中开启,今天就跟大家分享一下如何实现一个自定义无障碍服务以及如何自动化开启它。...实现自定义无障碍服务 自定义一个服务继承自AccessibilityService package com.android.jarvis.accessibility import android.accessibilityservice.AccessibilityService...= null) { if (findblockingUI("是否允许 USB 调试?"...="@xml/accessibility_service_config" /> 自动开启无障碍服务 可以通过执行下面的命令就可以自动开启指定无障碍服务: adb

52120

利用无障碍服务(AccessibilityService)批量清理后台进程

这些事件表示在用户界面中一些状态改变,例如:焦点改变、按钮被点击等。这类服务可以有选择性地请求查询活动窗口内容。...> <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:description...="true" /> 属性名称 属性简介 android:accessibilityEventTypes 指定我们在监听窗口中可以模拟哪些事件 android:accessibilityFeedbackType...指定无障碍服务反馈方式 android:accessibilityFlags 指定额外标志 android:canRetrieveWindowContent 指定是否允许我们程序读取窗口中节点和内容...指定监听应用程序包名,多个以,隔开 更多属性介绍请参考:AccessibilityServiceInfo 4.AndroidManifest配置 <?

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

免Root实现Apk静默安装,覆盖兼容市场主流98%机型

请求允许BIND_ACCESSIBILITY_SERVICE确保只有系统可以绑定到它。...> 配置 AccessibilityService可以配置为接收特定类型辅助事件,监听特定包,给定时间内得到每种事件,检索窗口内容, 指定一个设置activiy,等等。...注意:这种方法只允许设置动态可配置属性:eventTypes, feedbackType, flags, notificationTimeout, packageNames 检索视图内容 服务可以指定在其声明...逻辑: 我们可以指定监测某个包,这里我为了实现自动安装,因此监测com.android.packageinstaller“包下com.android.packageinstaller.InstallerActivity...,用户未打开辅助服务,因此我做了是否开启本服务判断,如果未打开则跳到设置页面开启此服务,开启了本服务情况则直接安装; public static boolean isAccessibilityOn

2.1K30

移动测试Appium之API手册

从上图来看,整个模块分为两大块: 导入相关基础模块或资源 从webdriver.Remote继承,定义和实现了Appium Python版本客户端驱动webdriver类 由此我们可以清楚得出以下几个结论...只要是selenium2中定义webdriver方法在移动设备端可用,那么在移动测试时,可以直接用 API说明 下面我们把上述API以一个表格方式进行说明,以便后续大家在使用appium进行自动化测试时使用...= MobileBy.ANDROID_UIAUTOMATOR By.ACCESSIBILITY_ID = MobileBy.ACCESSIBILITY_ID 关键函数分析 在webdirver...id查找N个元素 用法:driver.find_elements_by_accessibility_id() 函数:create_web_element 参数:element_id 描述:使用指定element..., app_activity, **opts 描述:启动指定参数app, android专用 函数:lock 参数:seconds 描述:锁屏一段时间,ios专用 用法:driver.lock(5)

1.6K90

Android静默安装实现方案,仿360手机助手秒装和智能安装功能

description指定在无障碍服务当中显示给用户看说明信息,上图中360手机助手一大段内容就是在这里指定。...accessibilityFlags可以指定无障碍服务一些附加参数,这里我们传默认值flagDefault就行。...accessibilityFeedbackType指定无障碍服务反馈方式,实际上无障碍服务这个功能是Android提供给一些残疾人士使用,比如说盲人不方便使用手机,就可以借助无障碍服务配合语音反馈来操作手机...最后canRetrieveWindowContent指定是否允许我们程序读取窗口中节点和内容,必须写true。...> 智能安装服务,无需用户任何操作就可以自动安装程序。

3.2K90

Android Accessibility 安全性研究报告

三、 使用情况 依据Android官方详细介绍,开发者应该从自身应用出发,在增加视图属性如contentDescription等内容后,可以在不修改原有代码逻辑情况下使用户体验得到优化,如预装在Android...根据Android官方说明,TalkBack会使用语音反馈描述用户所执行操作,以及告知用户收到提醒和通知,可以帮助视力水平较低用户顺利进行手机触控、阅读内容进行。...在国内,Accessibility被更多地用于免ROOT自动安装以及自动抢红包功能实现,免ROOT自动安装可以优化用户体验,但自动抢红包功能既没有帮助有缺陷用户更好使用手机,也没有提升用户体验,与Android...正如硬币有正反两面那样,在Accessibility使用趋势明显上升势头发生之时,是否也有木马或者恶意软件趁机混迹于其中呢?图2.4是带有Accessibility功能恶意样本数量统计。 ?...三、 滥用原因 通过对Accessibility相关技术和样本分析,发现Accessibility可以获取用户操作界面的信息、获取用户输入信息甚至可以获取到用户操作手机状态,那么,Accessibility

1.7K80

自动化-Appium-元素定位(Python版)

元素定位 本章节讲解是指在原生(APP)下进行元素定位,如果是Web(移动端里浏览器)、混合(APP与WEBVIEW)里含有WEBVIEW页面进行元素定位,元素定位方法同Selenium一致,则可以参考...本章节讲解使用元素定位工具: Android使用Android SDK里uiautomatorviewer工具。..."accessibility_id") Android: 如图所示:利用uiautomatorviewer工具查看,accessibility_id指的是content-desc属性。...Views label:绝大多数情况下,与name作用一致 enabled:元素是否可点击,一般值为true或者false visible:元素是否可见,一般值为true或者false 9.1元素定位方式...+s$' 9.2以一种属性定位元素 可以用元素属性:type、value、name、label、enabled、visible进行定位。

1.5K40

Android:AccessibilityService辅助功能基础使用(附微信抢红包教程)

这里配置有很多属性,我们只研究其中6个: android:packageNames:指定辅助服务监听哪些应用发出事件,多个应用包名之间用逗号分隔,如果不填,则监听手机上所有应用。...例如FLAG_REPORT_VIEW_IDS可以使回调事件带上viewID。...android:notificationTimeout:两个同样类型监听事件发给辅助类最小时间间隔 android:canRetrieveWindowContent:是否可以获取窗口内容,一般设置为...id,而且辅助配置标记必须是android:accessibilityFlags="flagReportViewIds"才能获取节点id,可以使用Android Device Monitor或者Layout...getChild(i)) } } 此外,在MainActivity里面,还有判断服务是否开启逻辑,如果没有开启,则可以点击跳转带开启页面: // 代码片段6 MainActivity.kt class

5.4K20

appium 元素定位方法总结(一)

resource-id 唯一标识该元素值(id有时候并不唯一) 使用前最好先判断下id是否唯一 一般优先根据id定位 # resource-id = 'io.manong.developerdaily...driver.find_element_by_class_name('android.widget.Button') 通过content-desc定位元素find_dlement_by_accessibility_id...content-desc属性是用来描述该元素作用 如果要查询界面元素content-desc在当前界面唯一,则可以使用此方法 大部分情况下,该字段为空 driver.find_dlement_by_accessibility_id...('test') 通过text定位元素driver.find_element_by_android_uiautomator("text('xxx')") 元素id相同时,可以根据text来进行定位...' # 指定apk启动界面(通常启动界面是唯一) 通过aapt命令查找 desired_caps['unicodeKeyboard'] = True # 安装中文输入法,以便于控制,及部分中文输入

4.3K10

技术分享 | app自动化测试(Android)--App 控件定位

其中包含内容为: 节点 node 节点属性:包括 clickable(是否可点击)、content-desc(内容)、resource-id(元素 id)、text(文本)、bounds(坐标)等。...通过 ID 定位 在 Android 系统元素 ID 称为 resource-id,使用页面分析工具比如 Appium Inspector 能够获取元素唯一标识是 ID 属性,可以使用 ID 进行元素定位...通过 Accessibility 定位 当分析工具能抓取到 content-desc 属性值是唯一时,可以采用 Accessibility 定位方式,示例代码: Python 版本 driver.find_element_by_accessibility_id...如果只想定位 Android 系统页面元素,可以直接使用 uiautomatorviewer,速度快并且不需要配置任何参数,直接点击获取页面的图标就可以将客户端页面抓取出来。...另外,uiautomatorviewer 只能抓取 android8 以下版本,如果要抓取 android8 以上版本页面信息,可以使用 Appium Inspector 或 WEditor。

1K40

微信小游戏 跳一跳 Android 插件分析开发测试 adb 命令

现在微信跳一跳小游戏都是通过 PC 端破解,于是我就写了一个只用 Android 手机就能破解插件。...【建议】应该还可以通过Accessibility直接在手机端实现 分析 kotlin, Android Studio, Accessibility, adb, root Accessibility https...://developer.android.com/guide/topics/ui/accessibility/services.html Accessibility 可以用来辅助操作,自动化测试等,可以参考微信抢红包插件...我们可以监测微信,如果是跳一跳界面就触发插件。 查了一下文档,好像只有长按,不能自己控制时间。用 Accessibility 实现跳跃是不行了。...adb 如果是连接 PC 端,可以通过 adb 命令截图,模拟跳跃长按(点击拖动)操作。

927100

app自动化测试(Android)--App 控件定位

其中包含内容为:节点 node节点属性:包括 clickable(是否可点击)、content-desc(内容)、resource-id(元素 id)、text(文本)、bounds(坐标)等。...通过 ID 定位在 Android 系统元素 ID 称为 resource-id,使用页面分析工具比如 Appium Inspector 能够获取元素唯一标识是 ID 属性,可以使用 ID 进行元素定位...通过 Accessibility 定位当分析工具能抓取到 content-desc 属性值是唯一时,可以采用 Accessibility 定位方式,示例代码:Python 版本driver.find_element_by_accessibility_id...如果只想定位 Android 系统页面元素,可以直接使用 uiautomatorviewer,速度快并且不需要配置任何参数,直接点击获取页面的图标就可以将客户端页面抓取出来。...另外,uiautomatorviewer 只能抓取 android8 以下版本,如果要抓取 android8 以上版本页面信息,可以使用 Appium Inspector 或 WEditor。

62300

Android基于AccessibilityService制作钉钉自动签到程序代码

:name="android.permission.BIND_ACCESSIBILITY_SERVICE" / <service android:name=".DingService" android...<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityEventTypes...; import android.util.Log; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo...AccessibilityNodeInfo nodeInfo) { if(type == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED){ //判断当前是否是主页签到页..., 1).show(); index = 1; } } 以上基本是所有代码,这个小程序中可以不用Activity组件,也可以加一个小Activity,用来作为系统总开关,当然也可以自动检测时间,来判断是否开启服务

1.2K10

App自动化测试之Appium环境搭建

Appium简介 Appium是一个开源、跨平台测试框架,可以用来测试原生及混合移动端应用。Appium支持IOS、Android及FirefoxOS平台。支持多种语言。...SDK环境变量配置: 先下载安卓sdk工具: http://tools.android-studio.org/index.php/sdk 也可以从我网盘下载我已经下载好包: 链接:https:/...两个路径: %ANDROID_HOME%\tools; %ANDROID_HOME%\platform-tools; 配置好后,在命令行窗口输入adb version 即可检查是否配置好。...接下来执行一段脚本来验证环境是否搭建成功,是否可以正常操作app,以华为P20手机上系统自带计算器软件为例,演示一下如何操作app一个最简单demo。...2、安卓app除了使用Appium Desktop里面的Inspector功能定位/录制元素之外,还可以使用android sdk目录下tools目录下uiautomatorviewer.bat进行元素定位

1.9K20
领券