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.系统变量 ...
随机推荐
- JAVA如何判断两个字符串是否相等
==比较引用,equals 比较值 1.java中字符串的比较:== 我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1: String a=&qu ...
- Rails工程实战记录
项目git:https://github.com/yixiaoyang/ruby 为熟悉Rails的基本特性创建的工程,本博文仅作更新记录. (1)2013.10.1-2013.10.5 Ruby基本 ...
- redis集群配置及python操作
之前我们分析过喜马拉雅的爬取信息,使用分布式爬取,而且需要修改scrapy-redis的过滤算法为布隆过滤来减少redis内存占用,最后考虑这样还是不一定够,那么redis集群就是更好的一种选择方式了 ...
- 手写实现vue的MVVM响应式原理
文中应用到的数据名词: MVVM ------------------ 视图-----模型----视图模型 三者与 Vue 的对应:view 对应 te ...
- Object-C 银行卡,信用卡校验规则(Luhn算法)
最近的项目中涉及到绑定用户的银行卡,借记卡.经过查找银行卡的校验规是采用 Luhn算法进行验证. Luhn算法,也被称作“模10算法”.它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美 ...
- 从头认识js-js中的继承
要彻底弄明白js中的继承,我们首先要弄清楚js中的一个很重要的概念那就是原型链. 1.什么是原型链? 我们知道每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原型 ...
- 全差分运算放大器ADA4930的分析(1)
AD转换芯片的模拟信号输入端方式为:全差分.伪差分.单端输入,其中全差分输入的效果最佳,现阶段ADC转换器为了提高其性能,建议用户使用全差分的输入方式.(AD7982.ADS8317等都能实现信号的全 ...
- JDBC概述及编程步骤详解
目录 一.JDBC概述 二.JDBC编程步骤(以MySQL为例) 1.导入jar包 2.加载数据库驱动 3.通过DriverManager获得Connection对象 3.定义SQL语句 4.利用Co ...
- Service Mesh - gRPC 本地联调远程服务
Description Service Mesh 架构下,服务间调用会通过服务名(Service Name)互相调用,比如在 Kubernetes .Docker Swarm 集群中,服务 IP 均由 ...
- vue中的$props、$attrs和$listeners研究 [包装iview组件]
$props:当前组件接收到的 props 对象.Vue 实例代理了对其 props 对象属性的访问. $attrs:包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 ...
