| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium -> 正文阅读 |
|
[开发测试]Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium |
本文介绍如何在Windows下构建iOS APP自动化测试环境,采用的主要工具为tidevice,WebDriverAgent,facebook-wda或者appium。 目录测试架构介绍下面是本文搭建的iOS自动化测试架构原理图:
WebDriverAgent原理分析WebDriverAgent是Facebook 在2015年的 SeleniumConf 大会上推出了一款iOS移动测试框架。它在 iOS 端实现了一个 WebDriver server ,通过这个 server 来实现远程控制 iOS 设备。它主要通过连接XCTest.framework来调用Apple的API实现对设备的操作。 WebDriverAgent采用C/S架构,集成appium使用的WebDriver协议规范,通信协议使用Mobile JSON Wire Protocol。
tidevice原理分析前面介绍了iOS的自动化需要通过WebDriverAgent来实现,一种常见的解决方案是使用xcodebuild来启动WebDriverAgent,而xcode需要Mac系统,也就是必须在MAC上进行iOS自动化测试。 tidevice 是阿里开源的一个基于Python的iOS自动化工具,通过逆向iOS通信协议,模拟xcodebuild与手机进行通信,向手机发送特定的指令,来启动WDA,从而可以脱离Mac电脑,能够在Linux、Windows上运行iOS自动化。tidevice基于python实现了libimobiledevice中的功能。 tidevice通过usbmuxd与手机通信来启动WDA,通过建立一个TCP连接到usbmuxd的/var/run/usbmuxd TCP端口,然后usbmuxd将请求发送到USB连接的iPhone上。上面提到的libimobiledevice就是一个跨平台的用于与iOS设备进行通信的库。 iOS 设备安装 wda本文所用的环境:
1、安装Xcodeapp store 下载安装iOS开发环境Xcode。 2、下载WebDriverAgent使用appium维护的WebDriverAgent,项目地址:https://github.com/appium/WebDriverAgent。
现在不需要执行下面的脚本了,作者已经删除:
3、Xcode打开WebDriverAgent双击WebDriverAgent中的WebDriverAgent.xcodeproj文件,这是一个xcode项目文件。 4、Xcode添加开发者帐户Xcode -> Preference 5、项目配置设置Team为你添加的帐户,修改Bundle Identifier为唯一名称 设置完成后,选择Scheme为WebDriverAgentRunner 选择Destination为你连接的iPhone。 6、项目构建及测试然后点击左上角的三角符号进行build,或者点击Product -> Build; Build成功之后,点击Product -> Test; 可以看到WebDriverAgent安装到了你的iPhone上
以上是我的WDA安装配置过程,如果有问题可以参考文档:https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md 安装iTunes因为iTunes里面有usbmux驱动,需要安装一下它。 下载安装Windows 版 iTunes方法:https://support.apple.com/zh-cn/HT210384 iTunes安装成功后,连接上你的iPhone: 安装tidevicetidevice用于启动WDA,它可以运行在Windows上,也支持Mac和Linux。项目地址:https://github.com/alibaba/taobao-iphone-device。 要求Python版本3.6+。 pip安装tidevice:
查看是否安装成功:
列出连接设备
查看设备信息
tidevice的更多使用方法可参考https://github.com/alibaba/taobao-iphone-device#readme 。 启动WDA查看安装的WDA应用:
使用tidevice启动WDA
浏览器访问http://127.0.0.1:8100/status 可以看到手机的状态信息。
测试一下用tidevice打开iPhone的【设置】:
其中【设置】的Bundle ID可通过如下命令查看:
appium自动化(未成功)参考:https://testerhome.com/topics/29230 安装appium:https://github.com/appium/appium-desktop/releases。 我安装的版本是1.21.0 安装完成后启动Appium 配置信息:
配置完成后点击【Start Session】,发现连不上,查看日志报如下错误信息:
在issue里面也有人遇到这个报错,他们是概率性的,我失败的概率是100%,完全连不上,折腾一会,还是没解决,果断放弃(后面解决了再更新上来),怀疑是我的WDA安装有问题,但尝试使用facebook-wda进行自动化测试,发现是OK的,遂再次放弃appium。 facebook-wda自动化facebook-wda基于python语言,没有像appium那样启动一个中间服务appium server,这也是appium支持多语言的原因。facebook-wda相比appium更加简洁,功能也比较多,appium有的功能基本都提供了。 facebook-wda项目地址:https://github.com/openatx/facebook-wda 安装:
测试:
常见问题1、解决iPhone连上MAC之后会不断重连的问题:
2、xcode编译WDA时可能遇到没有指定iOS版本文件,可以尝试下载对应版本的支持文件。(我使用的Xcode 12.5.1 有iOS 14.6) 相应iOS版本支持文件项目地址:https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport 将下载的文件放到下面的目录中:Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 3、wda Build成功,出现Unable to copy symbols from this device错误 大概率是xcode版本低了,需要升级一下code。
|
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:27:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |