准备阶段
在使用appium前,需要安装java,node,以及android sdk等。
1、java安装
从官网中下载jdk-17的版本,可以选择其他版本,自行选择
Java Archive Downloads - Java SE 17
解压后移动/usr/local目录下
tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz
sudo mv jdk-17.0.10_linux-x64_bin /usr/local
同时修改文件为jdk17
sudo mv usr/local/jdk-17.0.10_linux-x64_bin /usr/local/jdk17
设置环境变量,在/etc/profile和.bashtrc中都设置一样的,让toot和远程使用user用户时候上都能使用环境,也可以就在/etc/profile中
export JAVA_HOM=/usr/local/jdk17
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
source ~/.bashrc
配置好后检测是否安装成功
java -v
2、node安装
在Node.js官网下载对应的版本,nodejs版本也是没太大要求,主要我们下载安装appium的方式为通过nodejs来进行安装,以及appium的driver安装方式也是nodejs
解压移动,并改名
tar -xvf node-v20.11.1-linux-x64_bin.tar.xz
sudo mv node-v20.11.1-linux-x64_bin /usr/local
sudo mv usr/local/node-v20.11.1-linux-x64_bin /usr/local/node-v20.11.1
在设置好环境变量
export NODE_HOM=/usr/local/node-v20.11.1
export PATH=$PATH:$NODE_HOM/bin
配置好后验证是否成功
npm -v
3、安装Android SDK
对使用Android Studio安装等,嫌弃占用空间,还不方便,将使用sdk manager的命令的方式进行安装
先在网站下载对应的版本,命令方式的下载位于网页的最下方,请chuachua的移动到最下方下载 Android Studio 和应用工具 - Android 开发者 | Android Developers
同时将其解压,放入提取准备好的android-sdk-linux文件中
unzip commandlinetools-linux-11076708_latest.zip
sudo mkdir /usr/local/android-sdk-linux
sudo mv ./cmdline-tools /usr/local/android-sdk-linux/
现有版本的command tools命令需要在lastest文件下,因此将cmdline-tools下的所有文件都移动到latest目录下
sudo mkdir /usr/local/android-sdk-linux/cmdline-tools/latest
sudo mv /usr/local/android-sdk-linux/cmdline-tools/bin /usr/local/android-sdk-linux/cmdline-tools/latest/
sudo mv /usr/local/android-sdk-linux/cmdline-tools/lib /usr/local/android-sdk-linux/cmdline-tools/latest/
sudo mv /usr/local/android-sdk-linux/cmdline-tools/NOTICE.txt /usr/local/android-sdk-linux/cmdline-tools/latest/
sudo mv /usr/local/android-sdk-linux/cmdline-tools/source.properties /usr/local/android-sdk-linux/cmdline-tools/latest/
配置环境变量
export ANDROID_TOOLS_HOME=/usr/local/android-sdk-linux
export PATH=$PATH:$ANDROID_TOOLS_HOME/cmdline-tools/latest/bin
完成后查看一下sdkmanager 是否可用,直接使用list查看到方式,也方便后面安装工具方便,使用后可以看到所有已经安装以及可以安装的工具的信息
sdkmanager --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;29.0.2 | 29.0.2 | Android SDK Build-Tools 29.0.2 | build-tools/29.0.2
cmdline-tools;latest | 12.0 | Android SDK Command-line Tools (latest) | cmdline-tools/latest
emulator | 33.1.24 | Android Emulator | emulator
platform-tools | 34.0.5 | Android SDK Platform-Tools | platform-tools
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
add-ons;addon-google_apis-google-16 | 4 | Google APIs
add-ons;addon-google_apis-google-17 | 4 | Google APIs
add-ons;addon-google_apis-google-18 | 4 | Google APIs
add-ons;addon-google_apis-google-19 | 20 | Google APIs
add-ons;addon-google_apis-google-21 | 1 | Google APIs
add-ons;addon-google_apis-google-22 | 1 | Google APIs
add-ons;addon-google_apis-google-23 | 1 | Google APIs
add-ons;addon-google_apis-google-24 | 1 | Google APIs
build-tools;19.1.0 | 19.1.0 | Android SDK Build-Tools 19.1
build-tools;20.0.0 | 20.0.0 | Android SDK Build-Tools 20
build-tools;21.1.2 | 21.1.2 | Android SDK Build-Tools 21.1.2
build-tools;22.0.1 | 22.0.1 | Android SDK Build-Tools 22.0.1
build-tools;23.0.1 | 23.0.1 | Android SDK Build-Tools 23.0.1
在环境的配置中对JAVA_HOME必须要用JAVA_HOME该名称,后续appium的使用只是检测是否有JAVA_HOME存在,而非java环境是否可用
4、安装android相关工具
在window电脑中,我们可以直接打开其中的SDKManager.exe来进行安装,在linux和MACos中,可以使用命令安装
当sdkmanager可以用后,我们将通过命令的方式安装其他工具,我们通过刚才list的查到的信息,根据我们对应的安卓版本进行安装,一般默认安装在ANDROID_HOME的路径文件下
sdkmanager --install "platform-tools"
sdkmanager --install "build-tools;30.0.3"
sdkmanager --install "platforms;android-30"
在安装时可能出现安装不上的情况,我暂时就遇到的了是文件没有权限;我就直接将文件的权限给了用户
chown gting:gting /usr/local/android-sdk-linux
在环境中添加安卓工具的地址,同时home地址的变量名必须是ANDROID_HOME;如果不想写多个相同地址的变量,可以将之前的ANDROID_TOOLS_HOME的变量名都使用ANDROID_HOME
配置的内容上我们主要用到的方式是adb、android、emulator、apkanalyzer;只要将含有这些方式的文件配置进来就好,我们只要找到含有这些方法的文件,将他们配置进来就好
export ANDROID_HOME=/usr/local/android-sdk-linux
export PATH=$PATH:$ANDROID_HOME/build-tools/30.0.3:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
同时其中几个工具文件中含有相同的方法,因此只要下载几个主要的工具即可
安装APPIUM
我们安装appium的为其server服务方式,使用nodejs来进行安装
npm install -g appium
安装后可以查看一下是否安装完成
appium -v
官方有提供一个检测工具包
npm install -g appium-doctor
下载完成后可以使用appium-doctor来检测,是否将一些内容安装完成
appium-doctor
WARN AppiumDoctor [Deprecated] Please use appium-doctor installed with "npm install @appium/doctor --location=global"
info AppiumDoctor Appium Doctor v.1.16.2
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Node version is 18.16.0
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed in: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
WARN AppiumDoctor ✖ Carthage was NOT found!
info AppiumDoctor ✔ HOME is set to: /Users/ting
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/ting/tools/android-sdk-macosx
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
info AppiumDoctor Checking adb, android, emulator, apkanalyzer
info AppiumDoctor 'adb' is in /Users/ting/tools/android-sdk-macosx/platform-tools/adb
info AppiumDoctor 'android' is in /Users/ting/tools/android-sdk-macosx/tools/android
info AppiumDoctor 'emulator' is in /Users/ting/tools/android-sdk-macosx/emulator/emulator
info AppiumDoctor 'apkanalyzer' is in /Users/ting/tools/android-sdk-macosx/cmdline-tools/latest/bin/apkanalyzer
info AppiumDoctor ✔ adb, android, emulator, apkanalyzer exist: /Users/ting/tools/android-sdk-macosx
info AppiumDoctor ✔ 'bin' subfolder exists under '/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home'
info AppiumDoctor ### Diagnostic for necessary dependencies completed, one fix needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
WARN AppiumDoctor ✖ opencv4nodejs cannot be found.
WARN AppiumDoctor ✖ ffmpeg cannot be found
WARN AppiumDoctor ✖ mjpeg-consumer cannot be found.
WARN AppiumDoctor ✖ set-simulator-location is not installed
WARN AppiumDoctor ✖ idb and idb_companion are not installed
WARN AppiumDoctor ✖ applesimutils cannot be found
WARN AppiumDoctor ✖ ios-deploy cannot be found
WARN AppiumDoctor ✖ bundletool.jar cannot be found
info AppiumDoctor ✔ gst-launch-1.0 and gst-inspect-1.0 are installed at: /Users/ting/tools/anaconda3/bin/gst-launch-1.0 and /Users/ting/tools/anaconda3/bin/gst-inspect-1.0
info AppiumDoctor ### Diagnostic for optional dependencies completed, 8 fixes possible. ###
info AppiumDoctor
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor ➜ [For lower than Appium 1.20.0] Please install Carthage. Visit https://github.com/Carthage/Carthage#installing-carthage for more information.
info AppiumDoctor
info AppiumDoctor ### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor ➜ Why opencv4nodejs is needed and how to install it: http://appium.io/docs/en/writing-running-appium/image-comparison/
WARN AppiumDoctor ➜ ffmpeg is needed to record screen features. Please read https://www.ffmpeg.org/ to install it
WARN AppiumDoctor ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with 'npm i -g mjpeg-consumer'.
WARN AppiumDoctor ➜ set-simulator-location is needed to set location for Simulator. Please read https://github.com/lyft/set-simulator-location to install it
WARN AppiumDoctor ➜ Why idb is needed and how to install it: https://github.com/appium/appium-idb
WARN AppiumDoctor ➜ Why applesimutils is needed and how to install it: http://appium.io/docs/en/drivers/ios-xcuitest/
WARN AppiumDoctor ➜ ios-deploy is used as a fallback command to install iOS applications to real device. Please read https://github.com/ios-control/ios-deploy/ to install it
WARN AppiumDoctor ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it
info AppiumDoctor
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor
不必完全一直,主要的JAVA_HOME、ANDROID_HOME以及相关的adb、等安装完成即可
之后下载安装控制驱动
appium driver install uiautomator2
或者也能直接通过npm安装
npm install appium-uiautomator2-driver
在安装驱动后,可开启appium尝试
[Appium] Welcome to Appium v2.4.1
[Appium] The autodetected Appium home path: /Users/ting/.appium
[Appium] Attempting to load driver uiautomator2...
[Appium] Attempting to load driver xcuitest...
[Appium] Requiring driver at /Users/ting/.appium/node_modules/appium-uiautomator2-driver/build/index.js
[Appium] Requiring driver at /Users/ting/.appium/node_modules/appium-xcuitest-driver/build/index.js
[Appium] AndroidUiautomator2Driver has been successfully loaded in 0.779s
[Appium] XCUITestDriver has been successfully loaded in 0.779s
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
[Appium] http://192.168.6.107:4723/
[Appium] Available drivers:
[Appium] - uiautomator2@2.42.2 (automationName 'UiAutomator2')
[Appium] - xcuitest@5.14.0 (automationName 'XCUITest')
[Appium] No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.
但运行不成功,或者在安装驱动时就报错,现发现两个可能原因:
1、网络等原因npm下载失败,或者不完全,可以换个源,换个网等方式操作
2、驱动下载的位置不在我们需要的全局位置,特别是window上,比较常见,可以找到位置,一般在root用户侧下,找到后直接文件复制放到node_modle文件下和appium一起
对于appium server启动的方式,设置启动端口,设置基础地址,默认的端口为4723,以及默认的地址为127.0.0.1:4723/
appium -p 3214 --base-path /wd/hub
对于不适应server服务方式的,可以安装appium-gui桌面的版本进行使用,桌面版本在github仓库进行下载,使用window、macos的用户可以直接下载使用,并且可以进行对安卓进行定位操作
Releases · appium/appium-desktop · GitHub
对于linux的用户,上诉的功能仅仅类似于之前我们安装的server版本,要进行对安卓的定位操作,仍要下载定位方法的工具
Releases · appium/appium-inspector · GitHub
再使用定位工具前,也仍然要将服务启动,可以为gui方法启动也可以为server方法启动。