macOS下的Appium安装和配置
系统要求和说明:
- macOS 10.11或更高版本
-
brew
需要最新版本的Xcode
或Xcode Command Line
介绍
iOS 9.3及以下版本使用自动化作为基础技术,XCUITest出现在iOS 9.3中,而自动化在iOS 10中被放弃,因此Appium在iOS 9.3及以下版本中的配置与iOS 10不同。
如果已安装部分依赖项,则可以直接跳过它
自家安装
强烈建议使用Homebrew安装macOS上的所有软件。 使用brew安装的软件,不再需要sudo命令。
打开终端,复制并运行:
/ usr / bin / ruby -e “ $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) ”
brew的使用非常简单,安装软件即可使用
brew install #
如果brew提示Xcode版本太低,则需要安装Xcode的新版本(安装时可以保存两个版本)
下载网址:https://developer.apple.com/download/more/
Nodejs安装
brew安装节点@ 8
检查安装是否成功
节点-v
#v6.9.1 npm -v
#3.10.8
Appium安装
Node.js的用法
Appium本质上是一个Nodejs应用程序,我们可以使用npm来安装它,安装完成后,可以使用命令行来启动
npm install -g appium
您可以使用appium-doctor确认安装环境是否完整。
npm install -g appium-doctorappium-doctor
下载应用程式
该软件相对简单,具有图形界面,并具有用于检查界面元素的Inspector工具。
下载网址:https://github.com/appium/appium-desktop/releases
迦太基安装
Carthage是一个程序包管理器,用于管理iOS开发库依赖项
酿造安装迦太基
安装客户端语言
使用哪种语言安装哪种语言
蟒蛇
安装Python 3(与Python 2跳过)
brew安装python3
检查安装成功
python3 -V
#Python 3.6.0 pip3 -V
#来自/usr/local/lib/python3.6/site-packages(python 3.6)的pip 9.0.1
相应代码成功
macOS随附Python2版本。 默认情况下,python调用是系统的python2和pip(建议使用虚拟环境)
此外,如果在python3之前安装了系统版本,导致安装后找不到python3命令,则可以尝试brew link --overwrite python3
重新链接
使用pip安装
pip3安装Appium-Python-Client
#python3-> pip3
#python-> pip
更多信息:https://github.com/appium/python-client
爪哇
JDK安装
酿造自来水桶/版本
brew cask安装java8
使用Maven进行依赖
io.appium
Java客户端
6.1.0
测试
更多信息:https://github.com/appium/java-client
与安装相关的依赖项
idevicesyslog
和端口转发iProxy
, usbmuxd
brew install libimobiledevice --HEAD #与iOS手机通信brew install ideviceinstaller #安装应用程序使用
需要在iOS10或更高版本的ios-deploy
npm install -g ios-deploy
需要真实设备xcpretty
宝石安装xcpretty
首次运行配置
没有任何配置出现xcodebuild exited with code '65' and signal 'null'
错误
如果拥有开发者帐户:
AppiumDesktop添加xcodeOrgId和xcodeSigningId字段
可在https://developer.apple.com/account/左侧的Membership中找到TeamID。
需要以所需功能编写的xcodeOrgId
和xcodeSigningId
{
“ xcodeOrgId”:“ ”,
“ xcodeSigningId”:“ iPhone开发人员”
}
免费的AppleID帐户
- 在appium的错误日志中找到WebDriverAgent的位置,打开以进行签名
-
[XCUITest] Using WDA path: '/usr/local/lib/node_modules/appium/node_modules/.2.23.1@appium-xcuitest-driver/WebDriverAgent'
- 更改
WebDriverAgent
的BundleID
,即com.facebook.WebDriverAgentLib
。 我建议将facebook
更改为您的姓名或公司名称。 这里也有一个坑。 更改此设置后,我发现存在错误,并且在Build Settings
。 在Product Bundle Identifier
对其进行修改。
- 点击上方菜单栏中的产品->测试。
第一次运行将提示无权限,在真实计算机上打开设置应用程序,常规->描述文件和设备管理,找到您的邮箱,选择信任,然后继续执行测试,成功启动后,可以解释一下,单击执行停止后。 - 结束,打开Appium测试。
查看界面元素
- 使用WebDriverAgent
从https://github.com/facebook/WebDriverAgent克隆,执行./Scripts/bootstrap.sh命令,然后打开项目进行签名。
实施方式
-然后点击上方菜单栏中的产品->测试。
-xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id ='udid'测试
#udid可以使用命令idevice_id -l获得
使用AppiumDesktop
应用检查器的用法
#猕猴
npm安装macaca-cli -g
#猕猴医生
猕猴医生
#应用程序检查器
npm安装应用程序检查器-g
#用法
应用程序检查器-u'udid'
253错误代码
如果运行官方的TestApp示例,则可能会出现253错误,则需要重新构建测试应用(需要源代码)
xcodebuild命令
项目
xcodebuild [ -project项目名 ] [ -target目标名 ...] [ -configuration配置名]
[ -sdk [sdkfullpath | sdkname]] [buildaction ...] [setting = value ...]
[ -userdefault =值...]
工作区
xcodebuild -workspace工作区名称-scheme schemename [ -destination destinationspecifier]
[ -destination-timeout值] [ -configuration配置名]
[ -sdk [sdkfullpath | sdkname]] [buildaction ...] [setting = value ...]
[ -userdefault =值...]
例如
#xcodebuild -project RobotCalibration.xcodeproj -target RobotCalibration -sdk iphoneos-配置开发
所需功能配置信息
- 确定
platformVersion
- 确定
bundleId
- 如果只有一台设备,
udid
可以将udid
设置为auto
- 您也可以在不提供app属性的情况下引发该
app
,但是您需要设置bundleId
- 测试iOS 9.3或更低版本时,需要将
automationName
设置为Automation
,将其他XCUITest
设置为XCUITest
。
常用命令
切换Xcode
须藤xcode-select -s #path /Applications/Xcode.app/
查看被调查的设备
idevice_id -l
#或使用ideviceinfo在返回的数据中查找udid。
推荐用途:
Xcode7.3.1
注意:
在iOS8中,您需要确保设置中开发人员选项中的UIAutomation已打开。
拥有开发者帐户->打开Xcode->注册设备
免费帐户─>打开项目->修改bundleID->登录帐户进行签名
在测试之前,请检查设置的App目录是否正确。
然后,您可以打开Appium和测试用例。
如果您不涉及应用程序的自动安装和卸载,则可以在测试之前将应用程序手动安装到目标设备。
先决条件需要ideviceinstaller
ideviceinstaller -u -i
退出的仪器代码为:253
[仪器]启动仪器时出错:仪器在启动时崩溃
可能是App路径不正确
授权的iOS模拟器
为此需要测试模拟器,使用npm安装
npm install -g authorize-ios
安装后运行
须藤authorize-ios
注意:安装新的Xcode之后,您需要再次执行
使用Jenkins运行iOS测试(未经测试)
请先确认authorize-ios
运行成功
下载詹金斯
wget https://jenkins.ci.cloudbees.com/jnlpJars/jenkins-cli.jar
接下来,定义一个Jenkins LaunchAgent以自动登录,确保它不包含SessionCreate
或User
键,以防止测试运行。
java -jar jenkins-cli.jar \
-s https://team-appium.ci.cloudbees.com \
-i〜 / .ssh / id_rsa \
内部执行者
-fsroot〜 /詹金斯\
-labels osx \
名称mac_appium
最后设置并开始
须藤纳米/Library/LaunchAgents/com.jenkins.ci.plist
标签
com.jenkins.ci
ProgramArguments
java
-Djava.awt.headless = true
-jar
/用户/appium/jenkins/jenkins-cli.jar
-s
https://instructure.ci.cloudbees.com
内部执行者
-fsroot
/用户/ appium /詹金斯
-执行者
1
-标签
mac
-名称
mac_appium
-持久
KeepAlive
StandardOutPath
/用户/appium/jenkins/stdout.log
StandardErrorPath
/用户/appium/jenkins/error.log
最后设置所有者,权限,然后启动代理。
须藤弦根:wheel /Library/LaunchAgents/com.jenkins.ci.plist
sudo chmod 644 /Library/LaunchAgents/com.jenkins.ci.plistlaunchctl加载/Library/LaunchAgents/com.jenkins.ci.plist
launchctl start com.jenkins.ci
清理文件(可选)
$ HOME / Library / Logs / CoreSimulator // Library / Caches / com.apple.dt.instruments / $ HOME / Library / Developer / Xcode / DerivedData /
上面目录中的所有文件
maven安装
酿造安装Maven
更多设置
- 下载JDK
- 通过Android Studio下载Android SDK并设置目录
macOS设置了JavaHome和Android SDK目录,并将以下代码放在用户目录中的.bashrc
或.zshrc
中
#安装后使用Android Studio的路径
#Android SDK
出口ANDROID_HOME =〜/ Library / Android / sdk
export PATH =“ $ HOME / .yarn / bin:$ PATH”
#java_home
导出JAVA_HOME = $( / usr / libexec / java_home )
导出PATH = $ JAVA_HOME / bin:$ PATH
导出CLASS_PATH = $ JAVA_HOME / lib #adb ...
export PATH = $ { PATH } :$ ANDROID_HOME / tools:$ ANDROID_HOME / platform-tools
export PATH = $ { PATH } :$ ANDROID_HOME / tools / bin
最迟,您可以使用appium-doctor检查配置环境
阿皮医生
清楚地写出能力
-
platformVersion
-
appPackage
-
appActivity