本人的环境搭建前的准备,MAC电脑一台(macOS Mojave 10.14.0及以上),Xcode 10.0及以上   ,自己注册的一个Apple ID 账户,必须你的电脑能连接互联网,最好不要用公司的网络,限制太多,容易掉坑里。

1.安装Homebrew 

安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

卸载

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

在Mac OS X 10.11系统以后,/usr/local/等系统目录下的文件读写是需要系统root权限的,以往的Homebrew安装如果没有指定安装路径,会默认安装在这些需要系统root用户读写权限的目录下,导致有些指令需要添加sudo前缀来执行,比如升级Homebrew需要:

对/usr/local 目录下的文件读写进行root用户授权: 

 sudo chown -R $USER /usr/local
 

2.安装 libimobiledevice  (得先安装Homebrew) 

brew install libimobiledevice

其实,libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备。

3.安装 usbmuxd 以便于通过 USB 通道测试 iOS 真机,不需要测试真机则不用安装 

brew install usbmuxd

4.安装 ideviceinstaller(真机安装相关)

brew install ideviceinstaller

libimobiledevice中并不包含ipa的安装命令,所以还需要安装ideviceinstaller ,安装 ideviceinstaller 用来给真机安装 App。

5.安装 carthage , WebDriverAgent编译时需要的依赖包。

brew install carthage

6.安装 node(目的是安装 npm)官方下载地址https://nodejs.org/en/download/,下载.pkg 文件安装(LTS版本),推荐最好用Homebrew 的命令去安装 ,

brew install node

7.安装 iOS-deploy   

npm install -g ios-deploy

iOS-deploy 是一个终端安装和调试iPhone应用的是第三方开源库

8.安装 xcpretty

gem install xcpretty

xcpretty 是一个用 ruby 实现的工具,可以用 gem install xcpretty 来安装,主要作用是为了美化 xcodebuild 那冗长而且恶心的log输出

9. Appium桌面端下载安装(选择 dmg 文件)下载,点击安装。

https://github.com/appium/appium-desktop/releases

--点击安装包

10.安装 Appium doctor 

npm install -g appium-doctor

--主要是方便用于检查MAC电脑环境是否满足Appium依赖配置

11 .运行命令,

Appium-doctor --ios

--这这个命令主要是为了检查看MAC的appium ios依赖环境是否安装好。 

12.安装 webpack

npm i -g webpack   

 --这个鬼东西,我也不知到啥东东,呵呵

13.安装 wd

npm install -g wd        --(-g表示全局安装)

--这个鬼东西,我也不知到啥东东,呵呵

14.应用中如含有 WebView,请安装 ios-webkit-debug-proxy

brew install ios-webkit-debug-proxy    --调试H5页面的用到的环境依赖

15.编译并在手机安装 WebDriverAgentRunner 驱动 APP

a. 在安装完Appium Destop ,从 https://github.com/appium/WebDriverAgent 下载的WebDriverAgent文件夹 ,

b. terminer(终端工具) 在 WebDriverAgent 文件夹路径下运行:

mkdir -p Resources/WebDriverAgent.bundle

sh ./Scripts/bootstrap.sh -d

等待几分钟下载依赖的包后进行编译完。替换路径/Application/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 下的WebDriverAgent文件夹 。

c. 双击WebDriverAgent.xcodeproj打开此项目,在这里我们的目的就是更改一些配置,让他能够编译成功,首先编译之前你得有 ID账号,并且登录你的Xcode账户

配置开发证书等

接着编译WebDriverAgentRunner

配置 runner 的证书信息

配置 setting 信息

d. 建立服务WebDriverAgent (手机和MAC都在同一个网段下,且都能连接外网)关闭Xcode,从终端terminer 进入WebDriverAgent目录文件夹运行以下命令:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test

如果终端出现以下信息,表示编译 OK,

Testing failed:

    Early unexpected exit, operation never finished bootstrapping - no restart will be attempted
** TEST FAILED **

这个是时候iphone多了一个WebDriverAgentRunner的app ,

我们在通用设置的描述文件里面信任我们的开发证书之后再次运行下的指令:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test

如果出现以下信息,表示运行成功了:

Test Suite 'All tests' started at 2019-05-04 14:44:24.692

Test Suite 'WebDriverAgentRunner.xctest' started at 2019-05-04 14:44:24.695

Test Suite 'UITestingUITests' started at 2019-05-04 14:44:24.698

Test Case '-[UITestingUITests testRunner]' started.

t =     0.00s Start Test at 2019-05-04 14:44:24.703

t =     0.01s Set Up

2019-05-04 14:44:24.719508+0800 WebDriverAgentRunner-Runner[931:98387] Built at May  4 2019 14:43:43

2019-05-04 14:44:24.827130+0800 WebDriverAgentRunner-Runner[931:98387] ServerURLHere->http://192.168.119.105:8100<-ServerURLHer

e.打开终端terminer运行命令:

iproxy 8100 8100

如下:

 

f. 此时Google浏览器打开:   http://localhost:8100/status


看到这,此时appium的WDA环境配置成功了。
 
16.下载安装python3与安装常用的库,
a. 从 https://www.python.org/downloads/下载python3.6.8  ,双击安装python3.6.8(什么版本自己决定)

b. 进入终端输入如下命令,设置环境变量:

sudo open  ~/.bash_profile

PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
    export  PATH

alias python="/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6"           ---添加,设置别名

修改成功的标志是,重新打开终端,输入Python,界面和python3一样

c.安装robotframework

pip install robotframework

d.终端输入如下命令,安装wxPython 安装版本是4.04

pip install wxPython==4.0.4

e. 下载和安装robotframework-ride  ,  地址 :https://github.com/HelioGuilherme66/RIDE/releases

环境配置要求:

  sudo -H pip install -U -r https://github.com/HelioGuilherme66/RIDE/raw/release/requirements.txt

ride的版本:

  sudo -H pip install -U https://github.com/HelioGuilherme66/RIDE/releases/download/v1.7.3rc1/robotframework_ride-1.7.3rc1- py2.py3-none-any.whl (bug多呀)

  sudo -H pip install -U https://github.com/HelioGuilherme66/RIDE/archive/release.zip 修复了可以查看关键字帮助的bug 暂时用这个看看V1.7.3)

f. 安装常用的库

pip install requests

pip install robotframework-requests

pip install robotframework-selenium2library

pip install robotframework-seleniumlibrary

pip install selenium

pip install robotframework-appiumlibrary

g. 在 MAC电脑的terminer终端运行 ride.py,如下图 ride 运行成功:

整个环境配置踩得的坑不要不要的,希望以上的环境搭建介绍有效的减少大家踩坑的概率,现在可以愉快的开始自动化测试路程了,哈哈。

 The End  !


MAC电脑下Appium + python3 + robotframework ios的真机测试环境搭建的更多相关文章

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

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

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

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

  3. Cocos2d-x 关于在iOS平台真机测试的一些注意

    下面简单记录一下在最近cocos2d-x项目在iOS平台真机测试和模拟器测试中遇到的一些要注意的地方(使用ipod): 1.图片大小 游戏中基本上都是会用到图片,那么在使用图片的时候要特别注意图片的s ...

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

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

  5. Appium移动端自动化测试--搭建模拟器和真机测试环境

    详细介绍安装Android Studio及Android SDK.安装Appium Server. 文章目录如下 目录 文章目录如下 模拟器--安装Android Studio及Android SDK ...

  6. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  7. ios app真机测试到上架App Store详细教程-必看

    详细操作地址 http://www.applicationloader.net/blog/zh/88.html 苹果iOS APP真机调试测试和上架App Store视频教程 优酷 http://v. ...

  8. appium -ios 真机连接 环境搭建

    补充点一: 安装ios-deploynpm install -g ios-deploy 安装不了报错.! 后来找了找,发现sudo npm install -g ios-deploy --unsafe ...

  9. ionic ios 打包 真机测试常见问题

    1.ionic 项目在windows下正常打包安卓包时  迁移到mac下打包ios时  不需要复制平台目录platforms即可  不用再mac下去安装各种插件信息 2.ionic 下不能访问api信 ...

随机推荐

  1. vue-loader作用

    (1)浏览器本身并不认为.vue文件,所以必须对.vue文件进行加载解析,此时需要vue-loader (2)类似的loader还有许多,如:html-loader.css-loader.style- ...

  2. udp,select超时和recvfrom收不到数据原因

    wirshark抓包,发现有数据.但是select超时,直接recvfrom又失败. 代码中需要改进:select超时后,会移除fd_set集合中超时的那个句柄,所以每次要重新进行FD_SET,然后再 ...

  3. Docker镜像拉取总结

    flannel docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 docker tag quay-mirror.qiniu. ...

  4. [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)

    全国城市列表选择 (包含定位城市.热门城市.全国城市) 用ScrollView 实现,解决 SectionList 实现的卡顿问题 实现效果如图: 代码实现如图: 主逻辑文件 cityList.js ...

  5. Linux进程通信的几种方式总结

    进程通信的目的 数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程需要向另一个或一组进程发 ...

  6. CF1174E Ehab and the Expected GCD Problem(DP,数论)

    题目大意:对于一个序列,定义它的价值是它的所有前缀的 $\gcd$ 中互不相同的数的个数.给定整数 $n$,问在 $1$ 到 $n$ 的排列中,有多少个排列的价值达到最大值.答案对 $10^9+7$ ...

  7. 【BigData】Java基础_switch语句

    语法 switch(表达式) { case x: // 代码块 break; case y: // 代码块 break; default: // 代码块 } switch语句是这样工作的: switc ...

  8. [转]MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery

    原文 https://blog.csdn.net/l1028386804/article/details/77199194 1. mysql崩溃 --------------------------- ...

  9. NIO (一) NIO是什么

    参考文档:java为什么需要NIO:https://liuchi.coding.me/2017/08/01/浅谈Java为什么需要NIO/美团技术团队 NIO浅析:https://tech.meitu ...

  10. 微信小程序跳转函数总结

    微信小程序跳转函数总结 ​ 笔者在微信小程序前端的开发过程中,在不同的情况下遇到了需要使用不同的页面跳转逻辑的情况,以下是我对这些函数的使用场景的一个总结介绍. wx.navigateTo 这是最常用 ...