使用Appium自动化控制安卓、苹果等设备

准备阶段

在使用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方法启动。

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值