mac配置appium的坑比较多,且网上的文档比较旧,最近正好刚刚配置完成,在此记录下,方便其他同学参考。
需要安装哪些东西?
1.Homebrew 安装
Homebrew是Mac系统的包管理工具,可以利用brew语句方便安装卸载软件包,同时可以不用考虑各包的依赖关系方便安装;
/usr/bin/ruby -e "$(curl –fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
homebrew是ruby开发的,所以调用ruby命令安装;后面node、npm和一些Appium缺少的依赖包的安装都会用到brew。
2.npm包安装
npm是node.js内置的软件包管理工具,可以利用npm命令安装相关工具(后面ios-deploy、appium的安装都会用到)
brew install npm
安装后npm、node环境就都添加好了。
3.libimobiledevice库安装
libimobiledevice是本机协议与ios测试设备通信的库,Appium通过它完成pc与测试设备的通信;
同时后期查看设备udid等都会用到。
brew install libimobiledevice --HEAD
3.1 ios-deploy库安装
与libimobiledevice类似,也是一个终端安装调试手机应用的工具包;
目前较多的解释是如果需要测试ios10+以上的设备,必须安装该工具。
npm install -g ios-deploy
4.xcode安装
App Store直接搜索下载即可;
后续编译appium webdriveragent工具包时会用到。
5.Appium doctor工具
doctor工具可以帮助检查appium环境是否完整;
npm install appium-doctor -g
安装后可查看appium环境配置情况
appium-doctor --ios
如图,上半部分部“必须依赖项”全部打对号即为环境正确,有缺失打叉的对应安装即可;
比如Carthage缺少
brew install carthage
(下半部分是“可选择依赖项”,可后续按需安装)
6.appium安装
npm install –g appium
6.1 webdriveragent配置
webdriveragent是facebook开发的自动化测试工具,可以借助它完成ios ui相关操作,目前appium底层就是封装的这个包;
需要先将该包编译下,指定一个Development team;
操作如下:
找到appium-webdriveragent文件夹 (一般路径是/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent);
双击打开WebDriverAgent.xcodeproj文件,点击左侧菜单栏WebDriverAgent、找到TARGETS下的webDriverAgentLib项;
点击Signing & Capabilities项,对应选择Team (需要先选择Add an account…添加AppleID和密码);
(尽量选择企业team账号,否则后续给手机安装webdriver包的时候需要手动验证证书,自动执行case的时候会有问题;
可以联系IOS开发同学将个人邮箱添加到企业Apple Developer列表中,会收到邀请邮件,按邮件注册新Appleid即可。)
将Targets下面的各项都对应添加好Team项(_tvOS的项可以先不用管)。
注意:
之前很多文档介绍需要下载github上的webdriveragent项目,然后执行sh相关脚本后替换appium文件夹下面的webdriver包;
按照该方法配置后会执行脚本时会出现一系列问题,建议目前可直接使用appium自带的这个包,暂未出现问题。
(替换的方法可能出现如下问题:执行case提示无法找到appium-webdriveragent包、提示bundleid未提供(其实是配置的了)等等;大家可以对照下,避免入坑)。
到这appium相关环境基本配置完成了,可以写条脚本测试执行一下了。
7.Appium destop
appium的桌面工具,可以帮助查看手机应用页面元素UI属性,方便case编写;
下载地址:https://github.com/appium/appium-desktop
找到相应版本、对应mac系统文件包(可以下载dmg文件的)
下载后双击dmg文件,按照箭头指示将app拖到应用程序文件夹中;
电脑目录中,找到应用程序文件夹,就可以看到Appium.app文件了;
此时还要按照步骤6.1中配置webdriveragent的方式配置一下destop的webdriver包(destop和appoium两个是独立的);
Appium.app右键点击“显示包内容”,/Contents/Resources/node_modules/appium/node_modules/appium-webdriveragent找到对应包,操作方法通步骤6.1 (务必操作,否则启动session会失败);
此时就可以正常启动appium destop了,双击Appium.app;