mac下appium安装
1.准备:
- appium(1.5.3)
- Xcode(8.1)
- IDEA
- 设备(普通设备&开发者设备&越狱设备均可以)
2.appium安装
(1)命令行方式
step1:安装:$
npm install -g appium@1.5.3
step2: 启动:$
appium
step3:查看系统环境是否配置正常
$ npm install -g appium-doctor
$ appium-doctor
ps:这种方式安装appium时,需要各种组件环境配置都OK,所以直接采用以上方式即可安装成功;如果其他组件不齐全,详细的安装过程可以参考以下:
http://www.blogjava.net/qileilove/archive/2014/11/06/419574.html
(2)dmg安装包:使用这种方式安装的appium是可视化界面
-dmg方式appium安装以及配置的流程
- 下载appium dmg,完成安装
- 下载xcode,并download 模拟器
- 下载android sdk,jdk,完成环境变量配置
- 下载安装selenium
- 配置appium中的参数
ps:具体的环境配置参考:Demo-Appium+idea
点击可视化界面的appium doctor,检测环境配置是否正常
3.Xcode安装:
下载地址:https://developer.apple.com/download/more/
4.App包准备:
(3.1)使用真机启动包
(1)provisioning profiles文件生成
Xcode7.3新建一个工程,链接真机,点击fix issue,生成provisioning profiles文件(每一个pp文件只针对一个机器,下图的pp文件就是针对真机iPhone(谢凯)的机器),创建一个bundleID:com.hyz.imeituan760
(2)app包重签名:
从 Jenkins上下载build的包,并使用文档中的方法进行重签名:iOS打包与重签名
将重签名后的包安装在手机上
(3.2)使用模拟器启动包
下载代码:http://git.sankuai.com/projects/IOS/repos/imeituan/browse?at=refs%2Fheads%2Frelease%2F7.0
使用Xcode8进行打包,打包方式参考:iOS打包与重签名
ps:Xcode7.3以及以下版本无法再进行打包
4.连接机器时的配置
(4.1)真机
(4.1.1)使用可视化的appium连接:
设置bundleid&device&platform version&udid
(4.1.2)使用命令行方式的appium连接真机,不需配置,命令行启动appium,并在代码中配置以下,即可运行case
遇到的问题:
1.appium使用过程中出现的问题
(1)启动appium模拟器,app闪退现象:
问题一:模拟器中包没有进行重签名(如果手动可以打开包,那么不是签名的问题)
问题二:真机的Enable UI Automation没有打开,在setting->developer->Enable UI Automation中设置
问题三:平台打的包有问题
ps:设置Enable UI Automation 时,如果手机连接了其他设备(比如电脑),打开这个开关时,手机上的developer选项会消失。需要关机重启,手机不连接其他设备后才会再次出现
2.启动时遇到报错:
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Installing com.meituan.imeituan-beta failed (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.34 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'huangyuanzhendeMacBook-Pro.local', ip: '172.30.19.88', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_91'
Driver info: io.appium.java_client.ios.IOSDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
解决:这是由于Xcode中的BundleID与Appium settings中的不符或者没有在Xcode中配置BundleID
需要在 Xcode中设置对应BundleID的provisioning profiles
3.如果命令行安装appium过慢,替换成国内镜像
npm --registry http://registry.cnpmjs.org install -g appium@1.5.3
4.命令行安装appium时遇到报错:
Cannot find module 'core-js/library/fn/is-iterable'
那么按照提示安装core-js:npm install core-js
ps:安装过程中遇到其他问题则按照提示修改即可
5.appium 环境变量问题
解决方案:
(5.1).下载android sdk,下载地址:https://developer.android.com/studio/index.html ,下载Mac os x:android-sdk_r24.4.1-macosx.zip
(5.2).解压文件,有一个tools目录,运行目录中的android,会打开如下的图,只需要安装默认勾选的即可。
(5.3).配置android_home以及jdk的环境变量
安装完sdk之后运行命令:sudo vi /etc/profile
配置环境变量
(5.4)再次启动appium doctor,问题解决。
6.如果在appium启动过程中遇到以下问题:
info: [debug] [INST STDERR] Instruments Usage Error : Ambiguous device name/identifier 'iPhone 5s (8.1 Simulator)':
iPhone 5s (8.1 Simulator) [6CF8569C-C303-4137-AC6E-D9EDED164A94]
iPhone 5s (8.1 Simulator) [AAAB7161-45F9-4628-A3A9-DF3CF7E2212E]
这个问题是说有两个iPhone 5s (8.1 Simulator),appium无法判断应该使用哪一个,
解决方法:删去模拟器中重复的设备