mac 下 配置appium +ios真机环境
Posted 明镜止水丨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac 下 配置appium +ios真机环境相关的知识,希望对你有一定的参考价值。
mac系统:10.11.6
xcode:7
appium:1.5.3
iphone: 6 p
1.搭建 appium
安卓的环境:
1.jdk
2.sdk
3.appium
4.配置环境变量
mac下的环境变量是在 登录用户的 根目录下 cd ~/ 下的 .bash_profile中 没有自己 创建一个
8 # Setting PATH for Python 3.5 9 # The original version is saved in .bash_profile.pysave 10 PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}" #配置python3.5 11 export PATH 12 export PATH=${PATH}:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/platform-tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk/build-t ools/25.0.0 #配置sdk 13 export android_HOME=/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-20131030/sdk #配饰安卓 14 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home #配置java ~
安装 python3.5 ,(mac下 自带python2):
mac 下的软件包管理工具 为Homebrew,所以下载 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"(因为网址会经常变化,多关注官网 http://brew.sh)
安装完以后 ,输入 brew -v 查看版本:
Homebrew 1.1.0
Homebrew/homebrew-core (git revision 1a39; last commit 2016-11-07
说明成功
用它来安装pytho3.5
直接输入 brew install python3.5
安装成功后 输入 python3
能进入python编辑页面则是 安装成功
5.安装pip 进到 python3.5 的目录 下载 pip brew install pip
下载完成后 就能用pip 下载 python 的 一些扩展包 比如 appium-python-client
我python3.5的 pip路径为 :
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages(可以用which找,pip xxxx在这里执行)
以上是安卓的 一些环境
以下是ios需要的 :
安装 xcode7 : 这里面有一个坑 ,就是 开始我安装的 xcode8 ,因为当我ios 启动真机的时候:报:Could not find Automation.tracetemplate in any of the following locations /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate….
需要先使用Xcode的automation,去保存一份模板。但是Xcode8将automation从Xcode->Open Developer Tool->Instrument中去掉了。所以要从Xcode8切换回Xcode7(可以在安装一个Xcode7两者共存)。
这个 真是 折腾了 我好久!!
安装 node
brew install node
安装 appium
1.可以用终端安装
2.使用gui安装
我因为npm 的下载速度太慢 所以 我采取的是第二种方式 ,直接从官网上直接下载 1.5.3 mac版本 直接安装
安装好后 启动appium
点击 红色按钮检查 环境 安装的 是否正常
![技术分享]()
ok 环境基本搭建好了 开始弄ios真机 ,后面 很多坑:
先说下 appium 要想用真机调试的 前置条件:
1.在真机上跑APPIUM的前提是,手机应该注册成开发者手机,这样就可以在Settings的页面看到 Developer(开发者)这个选项了。
developer选项里的 Enable UI Automation开启,不然会报错:
selenium.common.exceptions.WebDriverException: Message: u‘A new session could not be created. (Original error: Instruments crashed on startup)‘
(这个错误 可能还和 app签名有关 ,如果换手机:只要把用这个手机的签名重新编译一个APP,就可以了。)
2.开发给你装的 必须是 debug包
3.需要有BundleID 找开发要
4.UDID :手机的id 可以用itools等软件看,当然 xcode也是可以看的
5.mac能监听到手机的app包 :
ideviceinstaller -l
显示如下:
很可能 你的 ideviceinstaller版本太低 或者 没有 ,会报错找不到 这个 ideviceinstaller
ok:
删除老的并下载最新的 :
brew uninstall ideviceinstaller
brew install ideviceinstaller(网上说 有这样的 brew install --HEAD ideviceinstaller :我没有成功)
就OK了
然后这时候 还可能监听不到:ideviceinstaller Could not connect to lockdownd. Exiting.
appium 会报的错误为: 安装app失败 大概就是: install xxx app faile
这时候 运行:sudo chmod 777 /var/db/lockdown/
6.找到 xocde的版本号 ,有时候会报找不到 xcode的版本号:运行:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
7.跑真机,测试机不能锁屏,不然会报错
ok这些 都是我遇到的 问题 ,这些都解决后 ,就能跑起来了
desired_caps[‘bundleId‘] = ‘com.wuba.zhuanzhuan‘
desired_caps[‘app‘] = os.path.abspath(‘/Users/a58/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/zhuanzhuan.app‘)
|----|-----------|-------|
|`automationName`|你想使用的自动化测试引擎|`Appium` (默认) 或 `Selendroid`|
|`platformName`|你要测试的手机操作系统|`iOS`, `Android`, 或 `FirefoxOS`|
|`platformVersion`|手机操作系统版本|例如: `7.1`, `4.4`|
|`deviceName`|使用的手机类型或模拟器类型|`iPhone Simulator`, `iPad Simulator`, `iPhone Retina 4-inch`, `Android Emulator`, `Galaxy S4`, 等。在 iOS 上,这个关键字的值必须是使用 `instruments -s devices` 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用。|
|`app`|`.ipa` or `.apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip`。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定`app-package`和`app-activity`(具体见下面)的话,那么就可以不指定`app`。 **会与 `browserName` 冲突** |比如`/abs/path/to/my.apk`或`http://myapp.com/app.ipa`|
|`browserName`|需要进行自动化测试的手机 web 浏览器名称。如果是对应用进行自动化测试,这个关键字的值应为空。|iOS 系统上可以用 ‘Safari‘ ,Android 系统上可以用 ‘Chrome‘, ‘Chromium‘, 或 ‘Browser‘。|
|`newCommandTimeout`|设置命令超时时间,单位:秒。达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话。|比如 `60`
|`autoLaunch`|Appium是否需要自动安装和启动应用。默认值`true`|`true`, `false`|
|`language`| (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。|如: `fr`|
|`locale`| (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的区域设置。|如: `fr_CA`|
|`udid`| 连接的物理设备的唯一设备标识|如: `1ae203187fc012g`|
|`orientation`| (Sim/Emu-only) 在一个设定的方向模式中开始测试|`LANDSCAPE` (横向) 或 `PORTRAIT` (纵向) |
|`autoWebview`| 直接转换到 WebView 上下文。 默认值 `false`、|`true`, `false`|
|`noReset`|不要在会话前重置应用状态。默认值`false`。|`true`, `false`|
|`fullReset`|(iOS) 删除整个模拟器目录。(Android) 通过卸载——而不是清空数据——来重置应用状态。在 Android 上,这也会在会话结束后自动清除被测应用。默认值 `false`|`true`, `false`|
以上是关于mac 下 配置appium +ios真机环境的主要内容,如果未能解决你的问题,请参考以下文章
Mac + Appium + Java1.8学习之IOS自动化环境安装配置以及简单测试用例编写(模拟器真机)
MAC OS环境下搭建基于Python语言的appium自动化测试环境
appium----已解决MacANDROID_HOME的环境变量配置