Appium入门

前言

做了多年的工程性测试后,发现薪资待遇很难再跨上一个新的台阶,对于打工族来说,薪资待遇是我们择业最重要的参考依据,其他的都是虚话。同时随着时间的流逝,年龄也逐渐变大,危机感越来越强,而且感觉只会功能性测试没有什么成就感。基于以上原因我们应该掌握更多的技术,来提高自己的竞争力和生存空间。当然功能性测试如果想达到一定的高度其实也是有难度的。任何工具和技术都无法取代之。在这里我们不讨论这个。学习一门新技术需要经历很多曲折,很多人都可以入门,但因为困难很多,所以没有坚持下去,就这样放弃了。在这里我想对大家说,包括我自己:凡事都需要坚持再坚持!只要坚持下去,总会有收获的。在这里我把我学习过程跟大家一起分享和交流,希望大家一起成长,一起进步。

appium介绍

官方微网站:http://appium.io

1.特点

appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。

“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。

“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。

“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。

2、appium与Selenium

appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。

3.支持多平台、多语言

appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;

appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

在这里插入图片描述

4.appium工作原理

在安装和介绍appium之前,非常有必要介绍一下appium是如何工作的。

那它是怎么工作的呢?

网上讲了一大堆,我这里根据我个人的理解简单明了叙述一下(如果问题,欢迎交流更正),运行脚本后,appium-server会监听到,然后它会解析脚本,驱动Android虚拟机或真机来执行相应的操作。最后将执行结果返回。就好比鹊桥中继星的功能一样,负责牵线搭桥,处理两端的事务。

对于刚入门的我们来说,不需要去深入的了解。随着不断学习,后面我们可以加深理解。

环境搭建

工欲善其事必先利其器,我们做一件事情首先要搞清楚需要哪些东西。我这里是用Java来编写脚本的。用Python的朋友请参考Python的环境搭建,网上很多,这里不赘述。

1.安装JDK

Java的运行环境。

1.1.下载

下载地址:https://www.oracle.com/java/technologies/javase-jdk13-downloads.html

官网下载需要注册Oracle账号,当然也可以通过其他途径下载。目前最新版本是13,我自己使用的是8,其实足够了,不需要很新。

1.2 安装和配置环境变量

安装完以后,需要配置环境变量,这里以win10为例:

右击我的电脑----属性----高级系统设置----环境变量----系统变量----新建path
在这里插入图片描述

把jdk的bin目录地址填上去,点击确定
在这里插入图片描述

测试有没有安装成功

进入命令行,输入Java以及Javac
在这里插入图片描述
在这里插入图片描述

看到以上信息,代表是成功了

2 安装appium

就是安装appium-server(带界面),用于接收请求解析脚本,驱动设备或者模拟器执行相应操作。然后将结果返回。

2.1 下载及安装

下载地址:http://appium.io/

下载完后直接安装,全部next就行了。
在这里插入图片描述

2.2 配置

安装完后打开它。然后开始配置,暂时就按照这个来配置,其他的默认,先用起来再说
在这里插入图片描述
在这里插入图片描述

注意:配置好了一定要保存,不然下次就没了,保存好了下次可以继续使用,这是保存好的信息。下次启动的时候我们直接点击左下角的start server v1.15.1

3 Android-sdk

软件开发工具包,使用Java语言开发。其实就是类库和工具。比如脚本中需要的一些操作,一些组件。再比如我们常用到的元素定位工具–uiautomatorviewer

我看到网上一些资料说是直接下载解压包就行了,但是我这里找不到。还是得安装。如有解压版的朋友可以分享一下

3.1下载

地址:http://tools.android-studio.org/index.php/sdk/
在这里插入图片描述

3.2 安装

下载完后解压,解压后是这样子的。但是里面的add-ones,platforms都是空的,还是得安

点击 SDK Manager,主要安装一下(安装过程有点长,需要耐心,安装完成的后面都会打√ ,并且状态是installed)
在这里插入图片描述

这个地方说明一下,我这里安装的是5.1.1的,我建议跟模拟的版本保持一致。我一开始用的是最高版本,然而却出现了问题。理论上高版本会兼容低版本的
在这里插入图片描述

如果网速不好可以更换镜像库:tools—options
在这里插入图片描述

3.3 配置

在环境变量里面新增ANDROID_HOME,把Android-sdk的路径填上去
在这里插入图片描述

然后把platform-tools和built-tools路径追加进去,点击确定
在这里插入图片描述

3.4测试是否配置OK

先测试adb命令(Android debug bridge,android调试桥),看到以下信息证明是成功的
在这里插入图片描述

再测试aapt命令(这个选项,可以不配置,主要用来解析软件包的一些信息,到时候用得上),后面会讲到怎么用
在这里插入图片描述

4 安装安卓模拟器(可选项,可以用真机代替)

我这里安装的是夜神模拟器,安装雷神模拟器获取APP快照的时候总报错

下载地址:https://www.yeshen.com/

自行根据电脑的情况下载对应的版本,安装完以后的界面
在这里插入图片描述 https://www.cnblogs.com/minbk/p/12390387.html