Appium 2.X 做 iOS UI 自动化测试 —— 起步

发布时间 2023-11-07 18:48:58作者: 寡淡的白开水

环境

Appium 2.0 之后,安装方式简化了许多,和之前变化很大;
必须使用 Mac;

分别安装 node、appium

# node
brew install node
npm config set registry https://registry.npm.taobao.org

# appium
npm install -g appium

安装 appium-inspector

客户端 下载
或者 网络调试,不过速度较慢,且无法在 Safari 中使用

安装插件

appium 2.0 之后,出现了 插件 的概念。像以前的 wda、uiautomator2 等都变成了插件,需要安装使用。调试 iOS 的话,必须安装 xcuitest 插件(Android 需要 UiAutomator2 插件):

appium driver install xcuitest

调试

启动 appium sever

# 如果要网络调试的话,需要跟 --allow-cors 参数
appium

image

连接真机或者模拟器

用 Xcode run 一个模拟器,或者插线一个真机。
使用真机的话,需要自签名一个 WebDriverAgent 打到真机上面,WebDriverAgent 在安装 xcuitest 插件时已经下载到本机了。位置在:

echo "$(dirname "$(find "$HOME/.appium" -name WebDriverAgent.xcodeproj)")"

之后用 Xcode 打开 WebDriverAgent.xcodeproj,给 WebDriverAgentRunner 加 Team、修改 Bundle Identifier,之后 Test 到真机就行:
image

启动 appium-inspector

需要填写三个必要的参数,真机的话还需要加 udid,如下:
image

启动成功之后是这样的,可以用 inspector 来定位元素、生成 shit(代码)等
image

使用 python 运行

python 版本尽量 3.6 以上吧

安装三方库 Appium-Python-Client

pip install Appium-Python-Client

写代码

from appium import webdriver
from appium.options.ios import XCUITestOptions


options = XCUITestOptions().load_capabilities({
	'platformName': 'iOS',
	'deviceName': 'iPhone 15 Pro',
	'antomationName': 'XCUITest',
	'app': '/xxx/testApp Debug.app'  # 安装包路径
})

driver = webdriver.Remote(
	'http://127.0.0.1:4723',
	options=options,
	direct_connection=True
)

运行

先启动 appium sever,再运行代码,可以看到设备上自动安装并运行了指定 App。