前言

mac 搭建 Appium 自动化测试环境

环境搭建

环境 作用 版本
Mac 系统 macOS Sonoma
Homebrew Mac 包管理器 4.2.10
npm node.js 包管理器 8.3.1
nodejs js 运行环境 v16.14.0
Carthage iOS 包管理 0.39.1
ideviceinstaller 列出安装app的信息
libimobiledevice appium连接iOS设备依赖库,可以获取iOS库的信息
Xcode 开发工具 15.2
WebDriverAgent 集成Appium测试ios应用的桥梁 7.01
Appium - Desktop 客户端 1.22.3
Appium - inspector 检查app元素的工具 2024.2.2
Appium - doctor 检测Appium整体依赖环境配置情况 1.16.2
Android sdk Google提供的Android开发工具包
JAVA_JDK

Homerbrew

国内源:

1
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

验证是否成功:
1
brew -v

node.js / npm

1
brew install node

验证是否成功:

1
2
node -v 
npm -v

Carthage

1
brew install carthage

libimobiledevice

1
brew install --HEAD libimobiledevice

验证是否成功:

1
idevice_id -l

ideviceinstaller

1
brew install ideviceinstaller

验证是否成功:

1
ideviceinstaller -l

Xcode

App store 商店下载

WebDriverAgent

facebook开源的框架,Appium是接手开发

1
git clone https://github.com/appium/WebDriverAgent

Appium

bash:

1
npm install -g appium

客户端:

1
2
3
4
5
6
url: https://github.com/appium/appium-desktop/releases
title: "Releases · appium/appium-desktop"
description: "Appium Server in Desktop GUIs for Mac, Windows, and Linux - appium/appium-desktop"
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/ddb35796edcc1ed6df94eda28a0851a236dfd6cf172660dfce2ce7b9a01c81d4/appium/appium-desktop

Appium - inspector

1
2
3
4
5
6
url: https://github.com/appium/appium-inspector/releases
title: "Releases · appium/appium-inspector"
description: "A GUI inspector for mobile apps and more, powered by a (separately installed) Appium server - appium/appium-inspector"
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/282be159fff944aa325d077799888cabfbde4f34f3f7cf63f1b1ce55ce7fe8ea/appium/appium-inspector

Appium - doctor

1
npm install appium-doctor -g 
1
appium-doctor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 16.14.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.
info AppiumDoctor ✔ Carthage was found at: /usr/local/bin/carthage. Installed version is: 0.39.1
info AppiumDoctor ✔ HOME is set to: /Users/akuvox
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/akuvox/Library/Android/sdk
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/akuvox/Library/Android/sdk/platform-tools/adb
info AppiumDoctor 'android' is in /Users/akuvox/Library/Android/sdk/tools/android
info AppiumDoctor 'emulator' is in /Users/akuvox/Library/Android/sdk/emulator/emulator
info AppiumDoctor 'apkanalyzer' is in /Users/akuvox/Library/Android/sdk/cmdline-tools/latest/bin/apkanalyzer
info AppiumDoctor ✔ adb, android, emulator, apkanalyzer exist: /Users/akuvox/Library/Android/sdk
info AppiumDoctor ✔ 'bin' subfolder exists under '/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home'

Android sdk

运行安卓需要

1
2
3
4
5
url: https://developer.android.com/studio?hl=zh-cn
title: "下载 Android Studio 和应用工具 - Android 开发者  |  Android Developers"
description: "Android Studio 提供了一些应用构建器以及一个已针对 Android 应用进行优化的集成式开发环境 (IDE)。立即下载 Android Studio。"
host: developer.android.com
image: https://developer.android.com/static/images/social/android-developers.png?hl=zh-cn

环境配置

JAVA_JDK

1
2
3
4
5
6
url: https://www.oracle.com/java/technologies/downloads
title: "Download the Latest Java LTS Free"
description: "Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts."
host: www.oracle.com
favicon: https://www.oracle.com/asset/web/favicons/favicon-32.png
image: https://www.oracle.com/a/ocom/img/social-og-java-logo-1200x628.jpg

遇到问题

libimobiledevice 报错

现象:curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 1 ms: Couldn't connect to server
原因:
github 的一些域名的 DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。
解决:
配置一下hosts sudo vi /etc/hosts

1
2
3
4
5
6
url: https://github.com/hawtim/hawtim.github.io/issues/10
title: "如何解决类似 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题 · Issue #10 · hawtim/hawtim.github.io"
description: "背景 笔者最近发现 github 的用户头像和自己文章中的图片显示不出来了。然后今天发现安装 homeBrew 和 nvm 出现了标题的报错信息。 以上是安装 pnpm 的报错信息,可以发现,脚本需要到 raw.githubusercontent.com 上拉取代码。 网上搜索了一下,发现是 github 的一些域名的 DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。..."
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/c0f974e5a83ed99983dac5999b260a3c3b098e622e630e98d02f93b6cebf3e58/hawtim/hawtim.github.io/issues/10

./Scripts/bootstrap.sh 报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Fetching Inspector dependencies...
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: web-driver-inspector@1.0.0
npm ERR! Found: react@15.6.1
npm ERR! node_modules/react
npm ERR! react@"15.6.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^15.7.0" from react-dom@15.7.0
npm ERR! node_modules/react-dom
npm ERR! react-dom@"^15.6.1" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:

原因:npm依赖冲突
解决:
WebDriverAgent - Scripts - bootstrap.sh 文件中的命令
npm install 改成 npm install --legacy-peer-deps

appium-doctor 报错

1
2
3
4
5
6
7
8
9
10
11
12
info AppiumDoctor  ✔ The Node.js binary was found at: /opt/homebrew/bin/node
info AppiumDoctor ✔ Node version is 21.6.1
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.
info AppiumDoctor ✔ Carthage was found at: /opt/homebrew/bin/carthage. Installed version is: 0.39.1
info AppiumDoctor ✔ HOME is set to: /Users/akuvox
WARN AppiumDoctor ✖ ANDROID_HOME environment variable is NOT set!
WARN AppiumDoctor ✖ JAVA_HOME environment variable is NOT set!
WARN AppiumDoctor ✖ adb, android, emulator, apkanalyzer could not be found because ANDROID_HOME or ANDROID_SDK_ROOT is NOT set!
WARN AppiumDoctor ✖ Cannot check $JAVA_HOME requirements since the environment variable itself is not set

原因:环境变量没有配置
解决:

1
vi ~/.bash_profile

配置变量内容:
1
2
3
4
export ANDROID_HOME=/Users/xxxxxxxxxxxx/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform_tools
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=${JAVA_HOME}/bin:$PATH

Appium Inspector运行报错

1
2
3
Error

Could not connect to Appium server URL 'http://127.0.0.1:4723/'. Please check if the server is running and the URL is correct (valid URLs can be found at the start of the Appium server log). If you are using the Inspector's browser version, ensure the server has been started with '--allow-cors'.

解决:
Remote Path 要填:/wd/hub
image.png|500