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的环境变量配置