【Appium】环境搭建

283 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情

Appium简介

Appium是一个开源的自动化测试工具,可以测试Native appsMobile web appsHybrid apps

Native apps也叫原生App,是采用iOS、Android或者Windows自身的SDK开发的。

Mobile web apps是内嵌到移动端浏览器的应用,Appium支持在iOS上的Safari浏览器和Android上的Chrome浏览器和手机本身自带的浏览器应用。

Hybrid apps也叫混合应用,即原生APP中部分页采用web页面去实现。

Appium引擎

环境分析

与Web UI自动化相比,APP UI自动化面临的第一个难关就是环境搭建,Android App与iOS App比较起来,前者的环境稍微简单一些,因此我们从Android App入手来分析一下,Appium完成Android App UI自动化需要哪些条件。

  • 首先Android App需要Android环境,因此需要安装SDK

  • 其次SDK是基于JDK的,因此需要安装JDK

  • Appium分为两部分,一部分是Appium Server,用来接受Appium Client的请求,并将请求转发给终端,Appium Server是node开发的,需要安装Node.js

  • Appium client就是appium提供的各语言的开发包,如果采用java,就需要安装JDK;如果采用python,就需要额外的再安装Python

安装JDk

安装JDK的文档已经非常多了,这里就不展开了,安装完成后,通过命令java -version可以查看java版本信息

> java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

安装SDK

安装SDK的文档也非常多了,但是由于总所周知的一些原因,从外网下载SDK安装包还是非常艰难的一件事,推荐大家通过安装Android Studio去安装SDK,包括后面创建模拟器,下载Android包都非常方便。

推荐文章【Android】 SDK安装指南(超简单!!)

Appium Server

Appium Server是通过node开发的,因此需要安装node.js,直接从Node官网下载node安装包,按要求进行安装即可,安装完成后,将node路径添加到环境变量中,然后可通过命令node -v查看node版本信息

> node -v
v18.11.0

对于Appium Server的安装appium官网提供了两种方式,一种通过命令npm install -g appium直接进行安装,然后直接通过在命令行输入appium就可以启动appium server

另外一种方式,直接从官网下载Appium Server GUI,可以通过界面启动Appium Server。

还可以在官网下载appium-inspector,提供了inspector元素定位的功能,还可以进行简单的脚本录制。

python环境搭建

安装python环境的文档非常多了,不进行展开。

环境检查

到这里,环境基本搭建完成,推荐使用node安装appium环境检查工具npm install -g appium-doctor,可以检查当前appium环境是否搭建完成。

从上图可以看到,appium环境分为两部分,necessary必要部分和optional可选部分,necessary是必须要全部安装的部分,当全部打勾,如上图,necessary就安装完成。

necessary包括

  • Node.js
  • SDK 需要在环境变量中配置变量ANDROID_HOME
  • JDK 需要在环境变量中配置变量JAVA_HOME

optional包括

  • ffmpeg 用于屏幕录制

  • ....

Appium Server GUI连接Android App

注意:在Appium 1.14.0+版本对于Android默认都采用了UiAutomator2,但是对于Android 5.0.0以下的操作系统,需要手动设置automationName=UiAutomator1

开启appium server

打开appium server的Advanced页可以看到以下配置:

暂不对以上配置进行修改,直接点击【Start Server】将采用默认配置开启一个appium server

Desired Capabilities

打开Appium Inspector。要连接App的第一步就是填写Desired Capabilities,必填项有如下:

  • platformName 终端使用的操作系统,iOS, Android, or FirefoxOS

填写后,点击【Start Session】就可以打开一个Session连接到终端,如果是该设备是第一次连接,则会安装下面三个应用:

  • Appium Settings

  • io.appium.uiautomator2.server

  • io.appium.uiautomator2.server.test

可以看到此时已经可以连接到终端了,因此还有一些Desired Capabilities参数未填写,所以采用了默认项,例如,如果此时再打开一个模拟器,appium server就不一定可以连接到当前这个设备上,此时需要设置如下参数:

  • deviceName 指定使用的设备,通过adb devices命令可以查看当前连接的终端设备

此外,如果我们有指定要测试的APP,需要配置如下参数:

  • appPackage 指定APP的包名

  • appActivity 指定APP的启动页的Activity

获取appPackage和appActivity

可以多种方式查看应用的appPackage和appActivity,具体可查看【Android】ADB命令高频使用场景(二)

连接到指定终端APP

填写完所有的参数,如下:

然后点击【Start Session】,此时appium server就可以连接到指定的APP了。

Appium Client连接到Android App

这里主要通过python语言的Appium Clinet包连接到Android App。

安装appium client依赖包

pip install Appium-Python-Client

安装完成后,通过命令pip show Appium-Python-Client可以查看appium client依赖包的版本信息如下:

(可以看出,appium client底层也是用了selenium的,后面给大家介绍~)

到这里环境就搭建完毕啦,撒花🎉🎉🎉