macOS下的Appium安装和配置

系统要求和说明:

  • macOS 10.11或更高版本
  • brew需要最新版本的XcodeXcode 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和端口转发iProxyusbmuxd

  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。

需要以所需功能编写的xcodeOrgIdxcodeSigningId

  { 
“ xcodeOrgId”:“ ”,
“ xcodeSigningId”:“ iPhone开发人员”
}

免费的AppleID帐户

  1. 在appium的错误日志中找到WebDriverAgent的位置,打开以进行签名
  2. [XCUITest] Using WDA path: '/usr/local/lib/node_modules/appium/node_modules/.2.23.1@appium-xcuitest-driver/WebDriverAgent'
  3. 更改WebDriverAgentBundleID ,即com.facebook.WebDriverAgentLib 。 我建议将facebook更改为您的姓名或公司名称。 这里也有一个坑。 更改此设置后,我发现存在错误,并且在Build Settings 。 在Product Bundle Identifier对其进行修改。

  1. 点击上方菜单栏中的产品->测试。
    第一次运行将提示无权限,在真实计算机上打开设置应用程序,常规->描述文件和设备管理,找到您的邮箱,选择信任,然后继续执行测试,成功启动后,可以解释一下,单击执行停止后。
  2. 结束,打开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以自动登录,确保它不包含SessionCreateUser键,以防止测试运行。

  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 

更多设置

  1. 下载JDK
  2. 通过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