Mac环境下Appium 2.X安装与配置(支持Android/iOS及Python)
前置条件
以下是为macOS环境搭建Appium 2.X的详细步骤,支持Android和iOS自动化测试。
通用安装步骤
- 确保已安装Python(建议版本小于3.10,尤其是PyCharm 2019版用户)。
- 安装Java JDK(推荐版本11)。
- 通过Homebrew安装Git:
brew install git。 - 根据macOS版本安装Xcode。
- 安装Node.js和npm:
brew install node和brew install npm。 - 安装Selenium和ChromeDriver:
确保ChromeDriver版本与Chrome浏览器匹配,并验证驱动是否正常运行:pip3 install seleniumfrom selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.baidu.com')
Android相关配置
- 下载并解压Android SDK,执行以下命令安装必要组件:
cd [android-sdk路径] tools/bin/sdkmanager "platform-tools" "platforms;[版本号]" - 配置环境变量,编辑
.bash_profile或.zshrc文件:
保存后执行:export ANDROID_HOME='/Users/[用户名]/Documents/android-sdk' export PATH=${PATH}:$ANDROID_HOME/platform-tools:$ANDROID_HOME/toolssource ~/.bash_profile或source ~/.zshrc。 - 安装UiAutomator2驱动:
npm install appium-uiautomator2-driver。
iOS相关配置
- 安装libimobiledevice:
brew install libimobiledevice --HEAD。 - 安装ideviceinstaller:
brew install ideviceinstaller。 - 安装Carthage:
brew install carthage。 - 安装ios-deploy:
brew install ios-deploy。 - 可选:安装ios_webkit_debug_proxy:
brew install ios-webkit-debug-proxy。 - 验证Command Line Tools是否安装成功:
xcodebuild -version。
Appium安装与配置
- 全局安装Appium:
npm install -g appium@next。 - 安装驱动程序:
appium driver install uiautomator2 appium driver install xcuitest - 安装Appium Doctor以检查环境:
npm install -g appium-doctor。 - 验证环境:
appium-doctor --ios。
WebDriverAgent配置
- 进入Appium WebDriverAgent目录,重新下载最新版本替换原有版本。
- 打开
WebDriverAgent.xcodeproj文件,配置Team和Bundle Identifier。 - 构建并运行
WebDriverAgentRunner项目。 - 使用iproxy映射端口:
iproxy 8100 8100。 - 检查设备连接状态:
http://127.0.0.1:8100/status。
示例代码
import unittest
from appium.options.ios import XCUITestOptions
from appium import webdriver
class IosTest(unittest.TestCase):
def setUp(self):
options = XCUITestOptions()
options.load_capabilities({
'platformName': 'iOS',
'deviceName': 'iPhone 14',
'platformVersion': '16.0',
'bundleId': 'com.example.app',
'udid': 'your_device_udid',
'xcodeOrgId': 'your_xcode_org_id',
'xcodeSigningId': 'iPhone Developer',
'noReset': True,
})
self.driver = webdriver.Remote(
'http://127.0.0.1:4723',
options=options
)
def tearDown(self):
self.driver.quit()
def test_sample(self):
print("Running test...")
常见命令
- 查看设备列表(Android):
adb devices。 - 查看设备列表(iOS):
xcrun simctl list。