Appium学习
文章平均质量分 82
基于Appium自动化工具的Android自动化学习,从基础的环境搭建、源码分析、工具应用到最后的持续集成应用等等
雨墨轩痕
软件测试
展开
-
Appium基础学习之 | ANDROID_UIAUTOMATOR定位介绍
Appium实现自动化底层是依赖UiAutomator框架,定位元素也是经由UiAutomator处理后转换Accessibility服务对象完成元素查找并且操作。在前面介绍过Appium-Desktop支持的ID、XPATH、ACCESSIBILITY_ID、CLASS_Name定位,对于这四种定位比较容易理解,剩下的ANDROID_UIAUTOMATOR定位在这篇文章介绍。一、疑问...原创 2019-04-19 16:56:59 · 4010 阅读 · 1 评论 -
Appium基础学习之 | Appium长按、滑动、获取坐标
一、TouchAction使用Appium需要引入java-client-xx.jar包,在java-client-5.0版本之前,Appium滑动使用的是swipe方法,从5.0之后,Appium已经取消swipe方法,交由TouchAction对象的方法来完成滑动操作。在java-client-5.0版本之前也有TouchAction对象,在java-client-5.0版本之后Touch...原创 2019-04-11 16:09:53 · 4260 阅读 · 1 评论 -
Appium基础学习之 | 设备端Appium Server APK源码简单分析
在《Appium基础学习之 | Appium-Desktop日志分析》中说到,推送了一个Package为io.appium.uiautomator2.server.test的APK到设备端,然后通过adb shell am instrument -wio.appium.uiautomator2.server.test/androidx.test.runner.AndroidJunitRunner...原创 2019-03-13 17:31:48 · 716 阅读 · 0 评论 -
Appium基础学习之 | Appium-Desktop日志分析
在《Appium基础学习之 | Appium-Desktop使用》这篇文章介绍了Appium-Desktop的基本流程使用,也就是把运行环境都调试通过了,下面开始分析分析Appium-Desktop的执行过程中发生了些什么事情。1.启动Appium-Desktop Server,默认端口的47232.根据DesiredCapabilities设置的所有参数值,并根据这个设置创建一个Ap...原创 2019-03-13 11:47:24 · 1840 阅读 · 12 评论 -
Appium基础学习之 | Appium-Desktop使用
本来还想继续写一篇UiAutomator2.0新增几个API的介绍,但是已经迫不及待回到Appium的轨道中来了,了解UiAutomator2.0与Instrumentation、Accessibility对于学习android自动化帮助都是特别大的,有机会还是想继续往下研究的。从这篇文章开始就正式回到Appium的使用中来了。一、Appium-Desktop下载Appium-Deskto...原创 2019-03-11 19:04:17 · 10451 阅读 · 0 评论 -
Android基础知识学习-Instrumentation启动源码简析
Application与Activity是Android中非常重要的组件之其二,当然更多提起的还是Activity,它与用户界面有更直接的关系;当点击设备App图标时,界面上展示给用户能看到过程中,就包含启动Application与Activity的过程。应用运行的一刻,Android系统会为应用创建一个Application对象,这个对象有数据传递、数据共享和数据缓存等功能,它就如同一个...原创 2019-03-08 16:18:19 · 3294 阅读 · 0 评论 -
Appium基础学习之 | Instrumentation再续
在《Appium基础学习之 | UiAutomator2.0使用》最后留下了三个问题1.什么叫做运行器,比如AndroidJUnitRunner、instrumentationTestRunner?2.UiAutomator2.0基于Instrumentation运行,好像非常复杂,这样做相对于UiAutomator1.0来说有什么优势呢?3.adb shell am instrume...原创 2019-03-08 16:18:25 · 690 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator2.0使用
一、Android Studio安装Android Studio是Google开发的一款针对Android开发的IDE,由于UiAutomator2.0基于Instrumentation运行,所以脚本需要打包成应用程序APK push到device执行,并且它还是依赖gradle构建,So,我可以理解为Google是在规范大家使用Android Studio。Android Studio下...原创 2019-03-08 16:18:13 · 2351 阅读 · 0 评论 -
Appium基础学习之 | Appium-Desktop与UiAutomator2
一、Appium-Desktop在Appium1.4.16版本之后,Appium重新发布了新的集成工具Appium-Desktop,可以把Appium-Desktop当作是Appium1.4.16版本之后的替代品,Appium-Desktop同样提供了Appium Server端服务于客服端,也同样提供了像UI Automator Viewer获取设备页面的元素,除了这些它还提供了新手梦寐以求...原创 2019-03-08 16:18:04 · 1782 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator启动命令dump、events
1.dump之前已经说过dump命令的解释了,来实操感受一下它的作用。玩过Android UI 自动化的肯定都很熟悉uiautomatorviewer这个工具了,它能帮助用户定位设备界面上的元素,然后显示元素的全部信息,便于用户使用这些信息完成一些元素定位工作。但如果uiautomatorviewer发神经获取不到设备UI界面的时候,就可以找dump帮忙了,虽然麻烦点。(1)设备或者模拟器...原创 2019-01-24 17:40:58 · 1823 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator启动命令runtest浅析二
UiAutomator1.0基于AccessibilityService是否正确?这篇文章揭开 从《Appium基础学习之 | UiAutomator启动命令runtest浅析一》中最后可以看到是执行了Launcher,回到UiAutomator1.0的源码,继续看代码了;源码在\cmds\uiautomator\src\com\android\commands\uiautoma...原创 2019-01-24 17:12:46 · 849 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator启动命令runtest浅析一
总结一下前面流程,首先Appium运行,推送Bootstrap.jar到设备端,而Bootstrap.jar这个jar实际上就是继承了UiAutomatorTestCase的测试类,然后通过命令运行这个jar包开始执行自动化脚本先来看看执行命令:adb.exe -s 5b30ee87 shell uiautomator runtest AppiumBootstrap.jar -c...原创 2019-01-23 19:02:24 · 1792 阅读 · 0 评论 -
Appium基础学习之 | AccessibilityService服务
从Appium扯到了UiAutomator再扯到AccessibilityService服务,好像有点扯远了。而为什么要扯到AccessibilityService服务,是由于在几乎所有资料中都有一个方向就是UiAutomator基于AccessibilityService服务,而到了UiAutomator2.0又基于Instrumentation,有兴趣看到这篇文章的朋友可以注意下,在有...原创 2019-01-23 12:27:49 · 1591 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator与Junit的关系
在《Appium基础学习之 | UiAutomator使用》文章中大概介绍了UiAutomator的使用,把代码打包成jar后推送到Android设备上并运行。然后在回顾一下《Appium基础学习之 | Appium执行日志流程分析》中讲解到的,Appium其中一个重要的步骤就是把一个Bootstrap.jar推送到Android设备,这样结合来说,应该更好的理解Appium与UiAutomato...原创 2019-01-11 15:01:50 · 661 阅读 · 0 评论 -
Appium基础学习之 | Appium代码转换为UiAutomator代码Click
二、Click1.Bootstrap的Click类Click类就一个方法execute()方法public AndroidCommandResult execute(final AndroidCommand command) throws JSONException { if (command.isElementCommand()) { try { ...原创 2019-01-04 19:29:59 · 478 阅读 · 0 评论 -
Appium基础学习之 | Appium代码转换为UiAutomator代码Find
在Appium基础学习之 | Bootstrap源码分析留的尾巴,然后通过Appium基础学习之 | UiAutomator使用过渡简单介绍了一下UiAutomator、由于在Android设备中是由UiAutomator工具接管,所以接下来看看Appium代码是如何转化为UiAutomator代码的。 在Appium基础学习之 | Bootstrap源码分析这篇文章的最后部分是...原创 2019-01-04 09:43:53 · 458 阅读 · 0 评论 -
Appium基础学习之 | UiAutomator使用
在Appium基础学习之 | Bootstrap源码分析中留下了一个尾巴就是Bootstrap如何转化代码到UiAutomator执行,想了想觉得有必要先把UiAutomator使用简单了解下,于是有了本文(归于UiAutomator,现在最新版的UiAutomator2后续再讲,路需要一步步走)。 Android团队在4.1版本(API 16)中推出了一款全新的UI自动化测试工...原创 2019-01-03 15:44:15 · 2098 阅读 · 0 评论 -
Appium基础学习之 | Bootstrap源码分析
在Appium执行日志流程分析这里已经讲解到Bootstrap的重要作用,今天就来切洋葱切一下它,看看它的真实面目:源码地址:https://github.com/appium-boneyard/appium-android-bootstrap/tree/master/bootstrap,下载后导入Eclipse如下1.Bootstrap类(在io.appium.android.boo...原创 2018-12-22 19:39:41 · 658 阅读 · 0 评论 -
Appium基础学习之 | setting、unlock与unicode ime
通过Appium执行测试会在设备上安装unlock.app、setting.app、io.appium.android.ime三个应用,第一次使用Appium在新的Android设备上执行是不会有任何问题的,但是如果第二次运行代码,就会抛出异常。原因也很简单,就是因为unlock.app、setting.app、io.appium.android.ime在Appium中并没有去做智能判断设备上是否...原创 2018-12-22 16:11:01 · 3729 阅读 · 0 评论 -
Appium基础学习之 | Appium执行日志流程分析
在上篇文章Appium执行示例中把Appium的日志保存在了本地,接下来分析一下,Appium到底是如何工作的,打开保存在本地D盘的log日志文件开始分析1.Appium服务启动默认端口为4723,这个端口是可以在启动Appium服务时自定义的,没有其他业务占用4723端口的话使用默认就好;然后可以看到日志保存的位置以及日志的等级。2.在Eclipse运行代码,开始打印下面的日志;根据...原创 2018-12-22 15:36:20 · 2355 阅读 · 0 评论 -
Appium基础学习之 | Appium执行简单示例
一、运行前准备1.启动Appium Server在前面文件已经说过AppiumForWindow版本的下载、安装、启动;在运行代码前,先启动Appium服务(使用Appium桌面应用或许CMD命令行启动个人选择),并把日志保存在本地路径下方便后续排查。2.准备环境需要的jar包Appium需要的2个Jar包,分别是java-client.jar、selenium-server-...原创 2018-12-21 17:26:51 · 6409 阅读 · 0 评论 -
Appium基础学习之 | adb连接设备
adb(Android Debug Bridge)工具,从英文翻译过来可以理解为安卓调试桥接工具。只要做Android相关工作的,无论是开发还是测试,都离不开这个强大的调试工具。 adb有三部分,分别是adbd、adb server、adb client;当手机使用USB或者同网段连接时, adb server会主动去连接Android系统底层运行的服务就是adbd。adb se...原创 2018-12-20 13:02:23 · 2016 阅读 · 0 评论 -
Appium基础学习之 | Android Virtual Device Manager使用
模拟器英文全称Android Virtual Device,检查AVD,就是安卓虚拟设备的意思。无论是在做安卓开发或者安卓测试都需要设备来运行、调试APP应用程序。所以在做APP自动化测试之前一定要准备好一台模拟器、一台安卓手机(IOS app不属于本文讲解)。一、monitor.bat在SDK\tools目录下找到monitor.bat双击打开二、Eclipse首先打...原创 2018-12-19 18:43:40 · 12243 阅读 · 0 评论 -
Appium基础学习之 | SDK Manager使用
Appium环境部署中IDE集成工具包包含Android SDK的部署配置,在Android SDK目录下,有一个SDK Manager.exe应用程序也就是Android软件开发工具包管理,它可以下载安装、卸载管理本地SDK中的开发工具。双击打开SDK Manager.exe后,界面如下图:1.Tools打开Tools工具目录,如下图:(1)Android SDK T...原创 2018-12-19 14:49:00 · 799 阅读 · 0 评论 -
Appium基础学习之 | Appium桌面应用与Appium服务启动
Appium的安装在上一篇已经大概介绍,在安装完Appium会在桌面生成一个应用程序(如果没有桌面应用程序则在安装目录下双击Appium.exe应用)一、Appium服务启动双击打开后如下:1.菜单栏第一个选项Android Settings(1)Application 本模块设置被测试app信息,如安装包路径、包名、activity等 Applicat...原创 2018-12-18 17:20:14 · 2350 阅读 · 0 评论 -
Appium基础学习之 | 环境搭建
一、JDK环境 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;下载完成后安装并配置环境变量,在cmd命令窗口验证安装成功即可。二、IDE集成工具 IDE(Integrated Development Environment) 是用于提供程序...原创 2018-12-18 17:03:29 · 654 阅读 · 0 评论