使用Appium进行iOS的真机自动化测试
windows不支持appium连接ios,只适用于mac
使用Appium进行iOS的真机自动化测试
安装类库
Homebrew
如果没有安装过Homebrew,先安装[ homebrew ]
npm
如果没有安装npm,请移步 [ node.js和npm安装 ]
安装依赖库
brew install libimobiledevice --HEAD
sudo npm install -g ios-deploy --unsafe-perm=true
如果执行sudo npm install -g ios-deploy --unsafe-perm=true报错,执行sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer/
如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
appium-doctor 安装
npm install appium-doctor -g
安装后执行appium-doctor –ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过
appium-doctor –ios
更新Appium中的WebDriverAgent
- 到WebDriverAgent下载最新版本的WebDriverAgent
- cd 进入下载后的WebDriverAgent文件
- 执行 ./Scripts/bootstrap.sh
- 直接用Xcode打开WebDriverAgent.xcodepro文件
- 配置WebDriverAgentLib和WebDriverAgentRunner的证书
- 连接并选择自己的iOS设备,然后按Cmd+U,或是点击Product->Test
- 运行成功时,在Xcode控制台应该可以打印出一个Ip地址和端口号
- 在网址上输入http://192.168.2.101:8100/status,如果网页显示了一些json格式的数据,说明运行成功。
- 进入到Appium中的WebDriverAgent目录,目录路径如下
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/ - 将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent
在Appium-Desktop下载传送门中下载最新版本的Appium-Desktop
- 运行Appium-Desktop
- 开启start server
- 点击start new session并且在Desired Capabilities 中输入相关的参数后点击Start Session
- 运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
利用Appium-Python-Client进行iOS的自动化测试
安装python
brew install python
下载python-client
git clone https://github.com/appium/python-client.git
cd python-client
python setup.py install在git上下载测试文件appiumSimpleDemo
开始自动化测试
- 打开下载后的appiumSimpleDemo文件,打开appiumSimpleDemo.xcodepro程序,配置下TARGET的签名
在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件
xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release,编译成功后app文件的地址会打印在命令行中配置python文件
打开appiumSimpleDemo中的appiumSimpleDemo.py文件,将,修改setup中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。
如果执行appiumSimpleDemo.py报错File"/usr/local/Cellar/python@2/2.7.15/Frameworks/Python.framework/Versions请升级python版本,如果你是iOS开发人员,请谨慎,升级python有可能是Xcode无法打包参考文稿
参考链接
https://www.jianshu.com/p/ae8846736dba
https://github.com/zhshijie/appiumSimpleDemo
https://github.com/appium/appium-desktop/releases/tag/v1.2.0-beta.1
https://blog.csdn.net/iosswift/article/details/48765993
使用Appium进行iOS的真机自动化测试的更多相关文章
- android真机自动化测试
appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices 看结果是否是多个devices ,如果是这个问题,停掉多余设 ...
- 【ionic】Mac IOS下真机调试
模拟调试不能保证真机一定没问题,所以真机调试是非常必要的一步 IOS设备 启用设备调试 在IOS设备中(Iphone,Ipad)中开始web检测器 设备->safari->高级->w ...
- Cocos2d-x 关于在iOS平台真机测试的一些注意
下面简单记录一下在最近cocos2d-x项目在iOS平台真机测试和模拟器测试中遇到的一些要注意的地方(使用ipod): 1.图片大小 游戏中基本上都是会用到图片,那么在使用图片的时候要特别注意图片的s ...
- iOS、真机调试
Xcode中IOS.真机测试 一.购买开发者账号(需要有信用卡.每年支付$99.0) 二.直接淘宝购买一个.用于测试,但是不能上传App 1.获取手机的UUID(Identifier xxxxxx9e ...
- appium通过WiFi连接真机进行测试
http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试 2015-07-24 19:43:07CSDN ...
- ionic ios项目真机运行-不用开发者账号
ionic ios项目真机运行-不用开发者账号 1. 添加ios平台 ionic platform add ios 2.使用XCODE打开项目 3.使用APPID登录XCODE 打开XCODE账号登录 ...
- Appium Desktop Inspector 安卓真机配置(Windows)
本文是基于 Windows环境 通过Appium Desktop 测试真机,首先要确保测试机已经和电脑正确连接(将手机和电脑通过USB数据线连接,手机打开USB调试) 确认电脑与手机是否连接成功的方法 ...
- 真香!iOS云真机全新上线!
WeTest 导读 众多开发者已经渐渐适应通过调用线上的安卓真机进行远程调试,但是针对iOS设备,则依然存在“iOS设备昂贵”“无法及时采购iOS最新设备”“无法复现iOS历史系统版本”等问题. 为了 ...
- ios app真机测试到上架App Store详细教程-必看
详细操作地址 http://www.applicationloader.net/blog/zh/88.html 苹果iOS APP真机调试测试和上架App Store视频教程 优酷 http://v. ...
随机推荐
- android 数据绑定(5) kotlin 的binding bug
1.BR找不到,无法自动更新 1.1 描述 https://stackoverflow.com/questions/57983508/android-studio-kotlin-databinding ...
- Ajax提交数据判断员工编号是否存在,及自动填充与员工编号所对应的员工姓名。
JSP页面中所需要的JavaScript事件及Ajax <script type="text/javascript"> function checkEmpNo(id){ ...
- C011:分数相加
代码: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int up1,down1,up2,down2; do ...
- 为系统增加删除swap空间
增加 1.创建/home/swap这么一个分区文件.文件大小是512000个block,一般情况下1个block为1k,所以这里空间是512M,这个空间大小自己随意定义. dd if=/dev/zer ...
- PDF启动增加字段
ALTER TABLE `cnoa_system_fs` ADD `reviewStatus` INT(1) NOT NULL DEFAULT '0' AFTER `isArchive`;ALTER ...
- [LeetCode]621. 任务调度器(贪心)
题目 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.CP ...
- JS中call()、apply()、bind()的用法
其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例1 obj.objAge; //17 obj.myFun() //小张年龄undefined 例2 shows( ...
- 使用U盘的PE系统安装Windows10操作系统 - 初学者系列 - 学习者系列文章
今天闲来无事,就把windows 10的安装再重写一个文(以前写过一个:安装免费的正版Windows10操作系统 - 初学者系列 - 学习者系列文章 ). 1. 制作一个WinPE的U盘. 相信现 ...
- k8s健康检查(七)
默认的健康检查 强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness ...
- dubbo负载均衡
dubbo 一.同一个dubbo生产者服务怎么分布在不同服务器,且能进行负载均衡? 只要两个服务的id,接口,实现类一致(且dubbo:application名称一致,表示同一应用),注册到同一zoo ...