uiautomator

appium---appium自动化原理

人走茶凉 提交于 2020-10-16 10:56:10
  这几天在群里也看到一个这样的面试题,appium的原理是什么?我们一直在思考如何编写自动化测试用例,但是却忘记了最基本的原理是什么。 Appium appium是一种开源的软件,跨平台(IOS、android),跨语言的自动换软件,不仅可以使用python,java编写测试用例,都可以进行运行。Appium使用的WebDriver的json wire协议来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架 更多介绍查看appium官网: http://appium.io/ Appium工作原理 1、Android设备 在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriv等来实现基于H5的自动化。 from appium import webdriver desired_caps = { ' platformName ' : ' Android ' , # 测试版本 ' deviceName ' : ' emulator-5554 ' , # 设备名 '

App 自动化,Appium 凭什么使用 UiAutomator2?

无人久伴 提交于 2020-10-01 09:38:51
1. UiAutomator2 是什么 可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清楚 UiAutomator 是 Google 开发的一款运行在 Android 设备上的 UI 自动化测试工具,基于JAVA语言,使用它有一个限制,就是必须打包成 APK 或 JAR,然后上传到设备,才能运行 事实上,UiAutomator2 同样有 JAVA和 Python 版,今天我们聊的是 Python 版本的 UiAutomator2 至于 JAVA 版本的可以参考之前写的文章: 点我查看 Python 版本的 UiAutomator2 项目地址: https://github.com/openatx/uiautomator2 2.Appium 和 UiAutomator2 作为移动端自动化的鼻祖,早期版本的 Appium 是基于 UiAutomator 和 Bootstrap.jar 其中,Bootstrap 在 Appium初始化的时候,被推送到 Android 设备上,负责监听 Appium 发过来的请求,并转换后发送给 UiAutomator 去处理,完成自动化操作 最新版本的 Appium 加入了对 UiAutomator2 的支持,原理进行了更新,功能和稳定性更加完善 原理图可以参考: 3.准备 在使用 UiAutomator2 之前

appium+python自动化测试真机测试时报错“info: [debug] Error: Could not extract PIDs from ps output. PIDS: [], P...

本小妞迷上赌 提交于 2020-08-19 17:27:21
刚开始启动服务时,弹出授权提示,以为是手机app权限问题,后来debug后,发现了一个警告日志:UiAutomator did not shut down fast enough, calling it gone 在appium启动服务时调用adb.js文件,执行 info: [debug] Cleaning up android objects info: [debug] Cleaning up appium session 而出现这个错误,经查阅资料解决方案: 找到Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js文件,并修改如下: 找到这行, var outlines = stdout.split( "\n"); 在其下面添加 outlines.shift() 来源: oschina 链接: https://my.oschina.net/u/4270977/blog/4513163

Appium的一些问题的总结答案

核能气质少年 提交于 2020-08-19 17:26:28
问题 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress 之前的会话没有关闭,然后你又运行了 测试 实例,也没有设置覆盖 . 解决 : 1. 重新停止 appium 服务,开启 Appium 服务 2. 在 Genarel Setting 那里设置覆盖 Session ,重启 Appium 测试结束在 AfterClass 加 driver.quit() ------------------------------------------------------------------------------------- 2. error: Failed to start an Appium session, err was: Error: Command failed: C:\Windows\system32\cmd.exe /s /c "D:\android-sdk-windows\platform-tools\adb.exe -s adb server version (32) doesn't match this client (36); killing… wait-for-device" error:

android 8.0 以后 uiautomator 无法直接使用的问题

会有一股神秘感。 提交于 2020-08-19 13:32:32
android8.1以后sdk tools自带的uiautomator直接打开,截取不到设备界面信息。 可以使用以下方法手动截取。 首先操作设备定位到要分析的界面。 1.截取uix资源文件 adb shell uiautomator dump /sdcard/screen.uix adb pull /sdcard/screen.uix D:/screen.uix 2.截取截图 adb shell screencap -p /sdcard/screen.png adb pull /sdcard/screen.png D:/screen.png 运行sdk/tools目录下的uiautomatorviewer.bat,导入从设备获取的截图和资源文件 来源: oschina 链接: https://my.oschina.net/u/4404709/blog/4511214

《自拍教程76》Python 一键批量安装第三方包

时光怂恿深爱的人放手 提交于 2020-08-18 05:41:18
案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上。 准备阶段 确保python及pip已经添加到了Path环境变量 可以利用os.system("具体命令")函数来实现批量安装 自动化测试人员,常用的第三方包如下表: 第三方包名 应用场景 requests 接口测试,文件下载,http访问 httprunner 自动化测试框架,更适合接口 selenium Web UI自动化 openpyxl Excel读写操作 robotframework 自动化框架,更适合移动终端或web UI自动化 appium-python-client App UI自动化 uiautomator2 Android App UI 自动化 locust Web 性能测试工具 flask Web框架,搭建测试环境用 django Web框架,搭建测试环境用 pillow 图片处理 pandas 数据分析 keyboard 键盘事件 python-jenkins Jenkins构建任务自动化 pyinstaller Py脚本编译成二进制可执行文件 python_docx Word读写操作 plotly 制图工具 pyserial 串口设备通讯 pymysql 数据库处理 MySQLdb

配置Appium环境避坑指南/为什么需要安装这些环境依赖

拈花ヽ惹草 提交于 2020-08-17 03:38:30
Appium环境安装是最坑的一部分,大多数人会死在安装环境的路上。只要你迈过这个坎,后面的代码编写压根不是事儿 安装环境需要: jdk(建议使用1.8版本) sdk(build-tools建议使用29以下版本) appium-desktop/appium-server+node.js(两者安装其一即可,推荐使用1.15版本) appium-python-client库(pip安装即可) 真机/模拟器 python/java环境(根据选择的语言安装相应的环境) 说一下为什么使用推荐版本,因为build-tools从30开始,appium有些地方不兼容,所以build-tools需要使用30以下版本。30以下版本依赖于jdk1.8,而appium目前最新版本1.17不稳定且部分依赖于jdk1.9,因此使用appium1.15版本为佳。总结:使用上述推荐环境基本不会出现问题。跟哥混,没错的! 再说一下我遇到过的坑,使用uiautomatorviewer.bat程序一闪而过,这一般是你的java环境或者android环境没配全。虽然你打adb,java -version能看到版本信息,但其实还是没配置齐全的。详细的配置信息网上有很多教程,百度一下你就知道。 这里我解释下为什么需要安装这些环境。这是一张Appium的工作原理图,最左侧的是代码编写区域,也就是我们编写代码的客户端

抓取抖音数据(fiddler+uiAutomator2+java)

你。 提交于 2020-08-11 18:11:42
最近研究抖音的爬虫,获取抖音的粉丝信息,分享给大家(共同学习,进步)我会把相关代码上传,方便大家直接下载使用 使用的软件:fiddler + androidStudio(MyEclipse/eclipse) ,硬件:手机或手机模拟器(抖音版本:10.8.0) 1.使用fiddler来抓取抖音https的接口信息,uiAutomator2用来实现自动化操作手机界面,java代码用来上传数据到服务器 2.fiddler的使用方法我就不列详说,网上很多的介绍和使用 3.成功截图演示:获取到粉丝信息: 4.记得修改fiddlerSprite里面的代码,截取到的接口信息放到本地(方便java,python上传)后续上传 5.使用UiAutomator2 来执行脚本代码,自动化的刷抖音:自己去查关于uiAutomator的相关资料(需要一定的android基础知识), 相关文件我会上传,请下载查看: 6.使用java项目来解析本地的文件,并上传到服务器: 7.修改的fiddler的fiddlersprite脚本下载地址,直接覆盖即可: https://download.csdn.net/download/xiaoze_1987/12421181 uiAutomator2下载地址 https://download.csdn.net/download/xiaoze_1987/12421213 8

移动应用测试:挑战,类型和最佳实践

霸气de小男生 提交于 2020-08-11 05:14:45
随着智能手机的普及,移动app测试越来越重要。现在很多互联网都把注意精力放在了移动端,移动app尽量提供完美的用户体验。但是诸如崩溃,冻结问题,加载时间慢,不直观的导航以及侵犯隐私之类的严重错误可能会触发用户立即卸载应用程序。 现在,移动应用程序已成为我们日常微时刻不可或缺的一部分,人们平均每天花费3-4个小时。移动应用在职业和个人生活中对每个人都起着关键作用。 因此,手机移动端测试在构建移动应用程序以提供流畅的用户体验和功能方面扮演着重要角色。 移动应用测试金字塔 软件测试的人都知道Mike Cohn的测试自动化金字塔。典型的金字塔由三层组成。顶部是自动化集成测试层的中间,是一个自动化的端到端测试层(包括用户界面测试),而底部是自动化单元测试层。手动测试不是测试金字塔的一部分。每一层指示每个阶段应编写的测试数量,并具有不同的大小。 对于移动应用程序测试,典型的金字塔结构不适用于移动测试自动化。与Web或桌面应用程序不同,移动应用程序由不同的设备,传感器和网络组成,需要不同的测试模型。 移动应用测试 移动应用程序的测试金字塔由四层组成,包括手动和自动步骤。金字塔的最顶层是手动测试,并为每个移动应用程序项目奠定了坚实的基础,随后是端到端测试,beta测试以及包括单元测试的顶层。单元测试和端到端测试具有相同的颜色,代表自动化测试,而beta测试和手动测试则具相同的颜色,代表手动测试

SoloPi:支付宝 Android 专项测试工具 | 开源

好久不见. 提交于 2020-08-11 02:23:08
| 导语 本文主要介绍支付宝在移动端上实现的一套无线化、非侵入、免 Root 的 Android 专项测试方案 SoloPi。直接操控手机,即可实现自动化的功能、性能、兼容性、以及稳定性测试等工作。 1、移动测试 1.0 时代 移动测试 1.0 时代,也可以称之为探索期。由于厌倦了日复一日的手工操作,如何提升测试效率成为了移动测试领域最重要的课题,在此期间,除了 Monkey、UiAutomator、Instruments 等官方提供的工具,业界还涌现了一批优秀的开源自动化测试工具/框架,在自动化驱动能力的基础之上,不仅可以实现基本功能的验证,还可以结合性能采集方案、遍历算法等实现各类专项测试的自动化。在这个阶段,自动化测试的常见形态是在单机或本地少数几台 PC 上部署测试环境,再利用 Jenkins 等工具实现持续集成。 2、移动测 来源: oschina 链接: https://my.oschina.net/u/4352922/blog/4284431