设为首页 收藏本站
查看: 1479|回复: 0

[经验分享] mac 下 配置appium +ios真机环境

[复制链接]

尚未签到

发表于 2017-7-6 13:49:18 | 显示全部楼层 |阅读模式
  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这些 都是我遇到的 问题 ,这些都解决后 ,就能跑起来了


python启动脚本如下:



from appium import webdriver



desired_caps['platformName']='ios'

desired_caps['platformVersion'] = '9.3.5'
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`|



wd = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)



各项与Android那里的介绍一致。

但是app那里,如果使用的是模拟器,只能用.app文件而不能用.ipa文件

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-390989-1-1.html 上篇帖子: mac:ssh登陆总是需要输入钥匙串密码解决 下篇帖子: mac上创建MySQL的基本步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表