iOS自动化环境搭建(超详细)
1.macOS相关库安装
- libimobiledevice
> brew install libimobiledevice
使用本机与苹果iOS设备的服务进行通信的库。
- ideviceinstaller
brew install ideviceinstaller
获取设备udid、安装app、卸载app、获取bundleid
- carthage
> brew install carthage
第三方库管理工具。
- ios-deploy
> brew install ios-deploy
ios-deploy 不依赖于XCODE,进行安装和调试IOS应用程序。
- node & npm
> brew install node
> brew install npm
- appium-doctor
npm install -g appium-doctor
- 验证appium环境
> appium-doctor
info AppiumDoctor Appium Doctor v.1.11.0
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Node version is 10.15.1
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode-beta.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed in: /Applications/Xcode-beta.app/Contents/Developer
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ Carthage was found at: /usr/local/bin/carthage. Installed version is: 0.33.0
info AppiumDoctor ✔ HOME is set to: /Users/tech
...
2.XCode
Xcode 是iOS开发环境,可以到app store 下载安装。

Xcode 的安装需要macOS升级到最新的版本,如果你的系统不是最新版本需要升级。

WebDriverAgent
在模拟器中运行的用于iOS的WebDriver服务器。
https://github.com/appium/WebDriverAgent
该项目由facebook开发,appium拉了个分支来维护,更新上超过了facebook,所以我们用appium的分支。
通过git clone 将项目克隆下来。
进入项目目录执行shell脚本:
../WebDriverAgent> ./Scripts/bootstrap.sh
- 通过xcode导入WebDriverAgent 项目

- 找到build Settings ---> packaging---> Product Bundle Identifier 选项。将值修改为唯一识别的字符串。

- Build Phases ---> Copy frameworks ---> 检查框架。
- RoutingHTTPServer.framework
- YYCache.framework

如果没有这两个框架,点击下方加号+添加。
3.iPhone
准备一台iPhone手机,通过数据线与PC进行连接。
1.选择连接的手机

2.菜单栏:product --> Scheme --> WebDriverAgentRunner

3.菜单栏:Product---> Test

4.在iPhone手机上打开设置:通用--> 描述文件与设备管理--> 开发者App ,设置Apple Development xxxxx 在此iPhone上受信任。

5.检查日志是否有错误。

4.iproxy
安装 usbmuxd,他自带了iproxy小工具,iproxy将设备上的端口映射到电脑上的某个端口。
> brew install usbmuxd
> iproxy 8100 8100
5.开始测试
终于可以开始测试了,你有几种选择。
我选 openatx/facebook-wda,因为它更加简单。
安装:
pip3 install -U facebook-wda
测试脚本:
import wda
c = wda.Client('http://localhost:8100')
print(c.status())
结果:
{'message': 'WebDriverAgent is ready to accept commands', 'state': 'success', 'os': {'name': 'iOS', 'version': '13.4', 'sdkVersion': '13.4'}, 'ios': {'simulatorVersion': '13.4', 'ip': '192.168.1.8'}, 'ready': True, 'build': {'time': 'Mar 28 2020 23:01:36', 'productBundleIdentifier': 'com.facebook.WebDriverAgentRunner'}, 'sessionId': 'F951380E-7219-4EA9-84FC-CC8BE78A12F8'}
好了,可以开始你的iOS自动化测试了。
iOS自动化环境搭建(超详细)的更多相关文章
- iOS自动化环境搭建——macaca
macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一.环境搭建 1.安装eclipse; -----Java开 ...
- Hibernate环境搭建超详细
前言 环境搭建其实可以简单到导入相关jar包即可. 但是对于学习来说,这个环境搭建的内容还是挺多的,目的是提供一个让我们如何快速学习和掌握类库的学习环境.作为程序猿,学习和使用类库是必须掌握的技能.如 ...
- Appium环境搭建超详细教程
前言: 本系列教程会从软件的基本安装开始,最终目的是通过完成几个案例后, 大家实现自由抓取App中想要的资源. 本系列以后会更的: Appium基本使用及控制真机及安卓模拟器 Mitmproxy抓包工 ...
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- 手机APP自动化环境搭建
1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...
- MAC自动化环境搭建
UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...
- Java自动化环境搭建笔记(2)
Java自动化环境搭建笔记(2) 自动化测试 在笔记一中已经完成了一键构建项目.xml指定规划测试集.数据解耦与allure报告生成的开发.接下来便是: 浏览器驱动通过配置启动 页面元素定位解耦,通过 ...
- 基于python的App UI自动化环境搭建
Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...
随机推荐
- js中的基本类型和引用类型
基本数据类型:按值访问,可操作保存在变量中的实际的值.基本类型值指的是简单的数据段. 基本数据类型有这六种:undefined.null.string.number.boolean.symbol(es ...
- 谈谈Vue的递归组件
2月最后一天,而且还四年一遇,然而本月居然一篇博客没写,有点说不过去.所以,今天就来谈谈Vue的递归组件.我们先来看一个例子: See the Pen 递归组件 by imgss (@imgss) o ...
- java ThreadPoolExecutor初探
导读:线程池是开发中使用频率比较高的组件之一,但是又有多少人真正了解其内部机制呢. 关键词:线程池 前言 线程池是大家开发过程中使用频率比较高的组件之一,但是其内部原理又有多少人真正清楚呢.最近抽时间 ...
- Newman+Jenkins实现接口自动化测试
目录 一.是什么Newman 二.如何安装 三.如何使用 1.运行本地文件 2.运行在线文件 3.以node.js库运行 4.导出报告 四.命令行测试真实接口 1.导出collection文件 2.导 ...
- 6,HDFS HA
目录 HDFS HA 一.HA(High Availability)的使用原因 二.HA的同步 三.HA的自动容灾 HDFS HA 一.HA(High Availability)的使用原因 1.1 在 ...
- 优雅的创建一个JavaScript库
这篇文章的目的是通过演示一个简单的例子来介绍在JS中实例化和定义一个库的正确方法,以优化他人编写或维护自己的JS库. 在我们深入之前,我做了两点假设: 你知道简单的JavaScript或C语言. 你不 ...
- 必备技能echarts
echart 设置图例图标形状 https://blog.csdn.net/qq_15390381/article/details/81736796legend: { data: ["总数& ...
- selenium 操作 获取动态页面数据
# selenium from selenium import webdriver import time driver_path = r"G:\Crawler and Data\chrom ...
- 使用StreamHttpResponse和FileResponse下载文件的注意事项及文件私有化
为什么需要编写下载视图方法? 你或许知道,我们上传的文件默认放在media文件夹中的,且Django会为每个上传的静态文件分配一个静态url.在模板中,你可以使用{{ mymodel.file.url ...
- 学妹问的Spring Bean常用配置,我用最通俗易懂的讲解让她学会了
你好呀,我是沉默王二,一枚有趣的程序员,写的文章一直充满灵气,力求清新脱俗.昨天跑去王府井的小米店订购了一台小米 10,说是一周之内能到货,但我还是忍不住今天就想见到她.见我茶不思饭不想的,老婆就劝我 ...
