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中 没有自己 创建一个

 # Setting PATH for Python 3.5
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}" #配置python3.5
export PATH
export PATH=${PATH}:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-/sdk/platform-tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-/sdk/tools:/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-/sdk/build-t ools/25.0.0 #配置sdk
export ANDROID_HOME=/Users/hanzhao/Desktop/sdk/adt-bundle-mac-x86_64-/sdk #配饰安卓
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1..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文件

mac 下 配置appium +ios真机环境的更多相关文章

  1. Appium+iOS真机环境搭建

    安装目录 1.macOS系统  10.12.6 2.xcode  9.0 3.appium Desktop  1.12.1 4.node.js node -v npm 5.cnpm npm insta ...

  2. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  3. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  4. 搭建Mac+Java+appium+IOS真机自动化环境

    一.安装前环境准备 1.确保电脑已经有homebrew(包管理器)  下载链接[https://brew.sh/]   2.通过 brew 安装node.js brew install node 安装 ...

  5. MAC本上appium连接真机

    简单介绍一下appium连接ios真机测试环境的软件安装及配置过程: 目前我用的是desktop版本的appium, 所以MAC版本必须要升级到10.12以上,Xcode版本必须要在8.0以上,否则亲 ...

  6. mac 下配置protobuf 3.0 golang环境

    protobuf 3.0  与 之前的 protobuf 2.6 的语法是不一样的.需要重新安装一下,本机的环境是 OS X Yosemite  10.10.2 1. 不采用home brew安装,用 ...

  7. Mac下安装appium+python+Android sdk 环境完整流程

    安装大纲:1,安装jdk (jdk1.8及以上版本都可以,尽量不要用最新可能会不兼容) 2,安装android-sdk (mac版本的android-sdk) 3,mumu模拟器 (随便找的一个) 4 ...

  8. Mac 下配置 Cocos2d-x 3-x android 的环境

    本人初学Cocos2d 3-x,环境配置,搭建android环境弄了好长时间,走了不少弯路,翻阅了好多人的博客和文档,包括官方文档讲的似乎有些似懂非懂,好多依然是旧的版本,所以把我的整个过程梳理一下. ...

  9. appium ios 真机自动化环境搭建

    近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的.本次书 ...

随机推荐

  1. Word 2010 怎么在每一章中使用不同的页眉

    1.要做到每一章的页眉不同首先要进行   分节 word2010中  页面布局   ->  分隔符  ->下一页 上述操作即可实现分节 2.实现分节后,在每一节开头的那一页,编辑页眉   ...

  2. MSDN 单机 MVC 帮助文档

    因为微软的mvc框架也是从开源框架演变而来的,所以微软没把mvc帮助文档放到单击帮助文档中.sososos下载好msdn单机帮助后,却找不到 System.Web.MVC 等命名空间的东西. 解决办法 ...

  3. 代码题(59)— 字符串相加、字符串相乘、打印最大n位数

    1.415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 思路:和链表相加类似,求进位. class Solution { public: string addS ...

  4. HTML DOM scrollTo()方法

    一. 作用 scrollTo()方法可把内容滚动到指定的坐标 二. 语法 scrollTo(x, y)   其中参数x为要在窗口文档显示区左上角显示的文档的x坐标, y为要在窗口文档显示区左上角显示的 ...

  5. MinGW main()

    MinGW没有wmain入口函数,为了获取宽字符的参数,可以用系统API函数GetCommandLineW. main.cpp #include <iostream> #include & ...

  6. Unity 3D 离线协议

    在联网状态下,获得离线协议,然后导入到Untiy的协议管理器里. 以后在断网的情况下,也能离线使用Unity. 步骤: 1.生成 Request 文件.(Unity_v5.3.1f1.alf) 1) ...

  7. String随笔

    1.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:,请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想:1)定义一个String类型 ...

  8. 项目管理理论与实践(4)——UML应用(上)

    本篇文章介绍UML的相关知识.参考<UML从入门到精通> 一.UML综述 1. UML简介 统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件 ...

  9. Python ord()与chr()函数

    chr():十进制或十六进制数(0-255)转成对应的ASCII字符. ord():ASCII字符转成对应的十进制数. 一个小性质:ASCII表中大写字母排在前面小写排在后面,相差32. 比如: or ...

  10. EF中使用Linq的Lambda比较字符串格式日期大小

    在使用EF时,想要比较字符串类型的日期时,参考以下: SQL语句: 1)select * from TableName where StartTime > ‘2015-04-08‘ 2)sele ...