uiautomator

ATX agent+UIautomation2 自动化测试介绍

回眸只為那壹抹淺笑 提交于 2019-11-27 21:08:30
纯搬运贴,内容几乎来源于作者的几篇介绍文章,这里做了整合 目前ATX+UIautomator2 处于自动化界的浪口风尖,现在有幸终于有时间对ATX进行了粗浅的了解 为什么要用ATX ATX+UIautomator2的优势: 1.速度吊打appnium,群里面的人这样说的 运行速度快,比Appium运行速度快了好多。(用户表示不知道ATX为什么快,PS(作者): 我其实也不知道appium为什么这么慢) 部署和使用比较简单 (当初就是朝着这个方向开发的) 最开始笔者在部署appium的时候,花了一整天的时间,最终还是部署好了。但后来还是放弃了,因为想到要部署这么多台机器,还不如自己开发一个测试框架来的方便(当时的需求也比较简单) 2.即使是id,text相同的控件也能随意指定哪一个进行点击操 d(resourceId="com.tencent.wecarnews:id/radio_list_item_frequency")[0].get_text()/click() d(resourceId="com.tencent.wecarnews:id/radio_list_item_frequency", instance=1).get_text() 3.能获取到控件的安卓原生属性 d(text="Settings").info { u’contentDescription’: u’’, u

Appium原理分析

大兔子大兔子 提交于 2019-11-27 04:04:53
前言:   随着产品发布的周期越来越快, 行业对测试的要求也越来越高; 往往需要在很短的时间内完成 多端测试(Android iOS 小程序、H5)、 多环境测试(联调环境、测试环境、预发布环境)、 多机型覆盖(后逃统计到的top20 or top50?) 多版本共存(历史版本兼容?) 历史用例的回归(回归测试时的覆盖面?) 这些问题都在推动这整个行业去寻求技术的突破, 自动化测试就是能够保证产品质量的一个重要手段, 其与企业 产品线的CI CD 集成 完成回归测试 兼容性及自动化探索测试等;今天主要整理下UI自动化测试技术中的主流技术 手段 Appium. 使用分层测试策略,控制UI自动化测试规模(在决定做UI自动化前 一定要确定其主要解决的问题) 少数核心用例交给自动化测试 大部分的基础回归测试交给自动遍历 新功能测试交给人工测试 一、Appium应用原理:    Appium是一个独立的模块,使用的时候需要我们启动它; 当开启appium服务器的同时就开启了监听端口;我们运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求,(我们可以使用任何方式去发送交互的post http请求, 各语言脚本,或者是自定义curl等,只要请求符合webdirver协议 );请求内容就是根据webdriver wire

Android自动化测试探索(四)uiautomator2简介和使用

时光毁灭记忆、已成空白 提交于 2019-11-26 22:49:56
uiautomator2简介 项目Git地址: https://github.com/openatx/uiautomator2 安装 #1. 安装 uiautomator2 使用pip进行安装, 注意因为uiaotumator2还在开发中需要加上--pre来安装最新的版本 pip install --upgrade --pre uiautomator2 也可以使用源码来进行安装 git clone https://github.com/openatx/uiautomator2 pip install -e uiautomator2 安装pillow库, 截屏功能会需要用到这个库 pip install pillow #2.安装守护程序到设备上(对设备进行初始化) 电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序: uiautomator-server 、 atx-agent 、 openstf/minicap 、 openstf/minitouch 执行之前需要确保adb service开启了 adb devices 执行上面的指令能看到连接的设备id就可以 # init 所有的已经连接到电脑的设备 python -m uiautomator2 init 如果没有开启adb service会提示以下错误, 开启adb

appium元素定位(三)

回眸只為那壹抹淺笑 提交于 2019-11-26 05:54:52
APP自动化测试关键环节--元素定位,以下我们来了解appium提供的元素定位方法! 1. id定位,id一个控件的唯一标识,由开发人员在项目中指定,如果一个元素有对应的resource-id,我们就可以采用这种方式来实现元素定位操作,但是实际开发中,也有可能app项目的开发人员不是很严谨,一个页面有很多个相同的id,获取到的元素结果是一个集合,所以这种情况我们需要用list进行接收 //找到想要定位的元素并进行点击 androidDriver.findElement(By.id("id")).click(); 2. text 定位,java-client旧版本提供了相应的API支持 //根据text属性进行定位 androidDriver.findElement(By.name("登录")); 注意:java-client新版本运行之后会发现定位失败,这是因为java-client 5.0 以后新版本不支持这个API: Exception in thread "main" org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session (WARNING: The server did not provide any stacktrace

Appium for Android元素定位方法

亡梦爱人 提交于 2019-11-25 20:43:10
Appium定位元素的方法有很多,比如经常用的by_name、by_resource-id、by_classname 下面介绍下通过UI Automator方法来定位元素的方法,而且这些方法定位都比较准。 先假设我们通过UiAutomator定位到的元素部分属性如下: Index 1 Text xxx Resource-id android:id/text1 Class android.widget.TextView Content-desc xxx 一、 通过Text属性定位 直接通过text名称定位: Driver.find_element_by_android_uiautotmator(‘new UiSelector().text(“xxx”)’) 查找某个字符串包含有xxx的元素 Driver.find_element_by_android_uiautomator(‘new UiSelector().textContains(“xxx”)’) 某个以x打头的元素 Driver.find_element_by_android_uiautomator(‘new UiSelector().textStartWith(“x”)’) 通过Matches方法查找 Driver.find_element_by_android_uiautomator(‘new UiSelector()