Mac 搭建Appium自动化测试环境
环境搭建列表
- 通用环境
- Homebrew
- Node & NPM
- JDK
- Carthage
- Appium
- Appium Doctor
- iOS 环境
- Xcode
- ios-deploy
- ideviceinstaller & libimobiledevice
- ios_webkit_debug_proxy
- Android 环境
- android-sdk
- platform-tools
- build-tools
- emulator
通用环境
Ⅰ 安装 Homebrew
Homebrew是一个包管理软件,它可以使我们更容易地安装其他一些软件,终端输入安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果安装失败(网速不行等。。),可以打开网址:https://raw.githubusercontent.com/Homebrew/install/master/install
将其内容保存为homebrew.txt
(链接: 下载 提取码: 8htr
),然后终端输入:
/usr/bin/ruby homebrew.txt
此步骤还顺带安装了Xcode命令行工具。
Ⅱ 安装 Node & NPM
Node是一个javascript运行时环境,npm是节点包管理器。我们需要这些,因为Appium是一个节点应用程序。在终端中,输入以下命令(此命令也将安装npm):
brew install node
Ⅲ 安装 JDK
下载 Java jdk ,按步骤安装,安装完成后需要在.bash_profile
设置 JAVA_HOME
,设置之前你可以通过下边的命令查看Java的安装路径,terminal输入:
/usr/libexec/java_home --v
输出路径:
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
通过vim
编辑.bash_profile
文件,终端输入:
vim ~/.bash_profile
按 i
键进入编辑模式,移动到最下边加入如下两行(路径为之前查看的):
# [改为你自己的java_home路径]
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
# 或者直接导入这两行(不必找到自己的java_home)
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=${
JAVA_HOME}/bin:$PATH
添加后按 Esc
按键,输入:wq
保存并退出编辑。输入使其生效(或重启终端):
source ~/.bash_profile
Ⅳ 安装 Carthage
Carthage是一个依赖管理器,WebDriverAgent
需要它,终端输入:
brew install carthage
Ⅴ 安装 Appium
Appium(Version 1.15.1)是一个用于本地、混合和移动web应用程序的开源测试自动化框架。它使用WebDriver协议驱动iOS、Android和Windows mobile应用程序。终端安装server版输入:
# 安装 server 版
npm install -g appium
默认安装最新的版本,如果想安装指定的版本:
npm install -g appium@1.7.2
卸载 Appium:
npm uninstall -g appium
npm cache clean --force
安装桌面版(因为桌面版方便元素定位),下载 相应的版本进行安装(安装两种方式,方便使用)。
Ⅵ 安装 Appium Doctor
Appium doctor是一个小型软件,它检查Appium成功运行的所有(几乎所有)前提条件。终端输入:
npm install -g appium-doctor
appium-doctor的输出应该是这样的:
IOS
Ⅶ 安装Xcode和模拟器
启动Mac应用程序商店并下载/安装Xcode(Version 10.1)。安装之后,启动Xcode并选择
Xcode > Preferences > Components
来安装可能想要测试的模拟器。
如果已经安装过xcode,appium-doctor提示未安装,则运行命令即可:
sudo xcode-select -r
Tips
:
# 查看已启动的模拟器udid
xcrun simctl list | grep '(Booted)'
# 列出所有设备,包括真机、模拟器、mac
instruments -s devices
#录像
xrecord --quicktime --list
xrecord --quicktime --name="iPhone" --out="/Users/blah/video/iphone.mp4" --force
模拟器相关命令参考:这里
Ⅷ 安装 libimobiledevice & ideviceinstaller
libimobiledevice
是一个跨平台的软件库,支持 iPhone®, iPod Touch®, iPad® and Apple TV® 等设备的通讯协议。不依赖任何已有的私有库,不需要越狱。应用软件可以通过这个开发包轻松访问设备的文件系统、获取设备信息,备份和恢复设备,管理 SpringBoard 图标,管理已安装应用,获取通讯录、日程、备注和书签等信息,使用 libgpod 同步音乐和视频。
ideviceinstaller
是一个与iOS设备的installation_proxy交互的工具,允许安装、升级、卸载、存档、还原和列举已安装或存档的应用程序。此工具用于在真机上运行测试,默认是都安装的。
brew install libimobiledevice --HEAD # 安装最新的更新,支持 iOS 10
brew install ideviceinstaller # 仅在 iOS9工作
如果安装时遇到: “invalid active developer path” 则运行:
xcode-select --install
sudo xcode-select -r
问题
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from:
/usr/local/opt/libimobiledevice/lib/libimobiledevice.6.dylib Reason: image not found
如果遇到如上错误,则先卸载ideviceinstaller 和 libimobiledevice
(brew uninstall ideviceinstaller
,brew uninstall libimobiledevice
),然后再重安装即可
Tips
:
-
获取设备的udid
idevice_id --list # 略写为 -l 显示当前所连接设备的 udid idevice_id -l # 显示当前所连接的设备[udid],包括 usb、WiFi 连接 instruments -s devices # 列出设备包括模拟器、真机及 mac 电脑本身 ideviceinfo # 可以在返回的数据中找到 udid # 苹果手机 safari打开网址http://fir.im/udid 就看到了
-
安装应用
xxx.ipa为应用在本地的路径 ideviceinstaller -i apppath # 安装apppath下的app ideviceinstaller -u [udid] -i [xxx.ipa] # 给指定连接的设备安装应用
-
卸载应用
bundleId为应用的包名 ideviceinstaller -u [udid] -U [bundleId] # 给指定连接的设备卸载应用
-
查看设备已安装的应用
ideviceinstaller -l #列出手机上所有用户安装的app 运行某个app idevicedebug run 'APP_BUNDLE_ID' # 可以直接launch某个app,当然,这个app必须是你通过development证书build到手机上的才行 ideviceinstaller -u [udid] -l # 指定设备,查看安装的第三方应用 ideviceinstaller -u [udid] -l -o list_user # 指定设备,查看安装的第三方应用 ideviceinstaller -u [udid] -l -o list_system # 指定设备,查看安装的系统应用 ideviceinstaller -u [udid] -l -o list_all # 指定设备,查看安装的系统应用和第三方应用
-
获取设备信息
ideviceinfo -u [udid] # 指定设备,获取设备信息 ideviceinfo -u [udid] -k DeviceName # 指定设备,获取设备名称:iPhone6s idevicename -u [udid] # 指定设备,获取设备名称:iPhone6s ideviceinfo -u [udid] -k ProductVersion # 指定设备,获取设备版本:10.3.1 ideviceinfo -u [udid] -k ProductType # 指定设备,获取设备类型:iPhone8,1 ideviceinfo