您现在的位置是:首页 >技术教程 >Window搭建IOS App自动化测试环境网站首页技术教程
Window搭建IOS App自动化测试环境
平台搭建:tidevice(Windows逆向通信iOS工具)+WebDriverAgent(iOS通信服务)+facebook-wda(iOS测试框架)
macOS+Xcode:在手机上安装WebDriverAgent的时候需要用到,必须要Xcode工具构建,构建完就不依赖了。
工具介绍:
1、tidevice
在window系统可以跑IOS自动化脚本,得力于tidevice这个工具,tidevice 是阿里开源的一个基于Python的iOS自动化工具,通过逆向iOS通信协议,模拟xcodebuild与手机进行通信,向手机发送特定的指令,来启动WDA,从而可以脱离Mac电脑,能够在Linux、Windows上运行iOS自动化。tidevice基于python实现了libimobiledevice中的功能。
2、WebDriverAgent
WebDriverAgent是Facebook 在2015年的 SeleniumConf 大会上推出了一款iOS移动测试框架。它在 iOS 端实现了一个 WebDriver server ,通过这个 server 来实现远程控制 iOS 设备。它主要通过连接XCTest.framework来调用Apple的API实现对设备的操作。
WebDriverAgent采用C/S架构,集成appium使用的WebDriver协议规范,通信协议使用Mobile JSON Wire Protocol。
 WDAClient:WDA的客户端,测试库facebook-wda 就是 WDA 的 Python 客户端库,通过HTTP协议(Mobile JSON Wire Protocol)与WebDriverAgent进行通信。
 WebDriverAgentRunner:运行在手机上的WDA server,默认监听端口为8100,主要功能包括①接收WDAClient的请求并将操作命令发送给XCTest.framework。②将响应发送给WDA Client
3、facebook-wda
facebook-wda 是ATX项目下面的一个子库,专门提供 iOS 应用的自动化测试,可以通过 ATX 使用这个库,当然也可以单独拿来使用。facebook-wda 这个 Python 库,通过直接构造 HTTP 请求直接跟WebDriverAgent通信。它是一个非常短小精悍的一个库,并不像 appium、macaca 还有一个中间转发服务,支持这么多的语言。虽然代码比较精炼,但是能完成的功能却非常强大。你能在 appium 里面找到的功能,这个库有提供,找不到的功能,这个库也有提供。
4、weditor
元素定位工具,安卓、IOS都可以用
5、iTunes
Windows连接苹果设备工具
工具下载和安装:
iTunes:
因为iTunes里面有usbmux驱动,需要安装一下它,iTunes安装成功后,连接上你的iPhone。
weditor:
参考Android安装环境方法, 使用以下命令安装weditor
pip3 install -U weditor 
启动weditor
 python -m weditor 

tidevice:
该工具要求python环境3.6+,使用pip3命令来安装tidevice,安装成功后设置全局环境变量:
pip3 install -U "tidevice"
 
查看是否安装成功:
tidevice version 
查看手机信息:
tidevice info 
查询应用信息:
tidevice applist 
启动wda
tidevice -u [设备 udid] wdaproxy -B [wda 的 bundle Id] --port 8100 # 运行 XCTest 并在PC上监听8100端口 
运行成功后打开浏览器访问: http://127.0.0.1:8100/status,会看到以下信息:
{
  "value" : {
    "message" : "WebDriverAgent is ready to accept commands",
    "state" : "success",
    "os" : {
      "testmanagerdVersion" : 28,
      "name" : "iOS",
      "sdkVersion" : "16.4",
      "version" : "16.3.1"
    },
    "ios" : {
      "ip" : "192.168.0.117"
    },
    "ready" : true,
    "build" : {
      "time" : "Jun  6 2023 11:05:04",
      "productBundleIdentifier" : "com.facebook.WebDriverAgentRunner"
    }
  },
  "sessionId" : null
} 
WebDriverAgent:
这篇文章写得很详细了,不再浪费时间了:[facebook-wda]搭建iOS App自动化环境_wda.client_LL-Dynabook的博客-CSDN博客
facebook-wda:
pip3 install -U facebook-wda 
简单测试:
import wda
c = wda.Client('http://localhost:8100')  # DEVICE_URL
c.session().app_activate("com.apple.Preferences")  # 打开设置
c.sleep(2)
c.home()
 
具体详细方法可以看官方文档:GitHub - openatx/facebook-wda: Facebook WebDriverAgent Python Client Library (not official)
以上环境搭建完成了,可以去写ios app自动化脚本了。
备注:
- 部署iOS测试平台需要苹果开发者证书,现在使用个人Apple ID登陆即可,不需要另外注册付费开发者账号
 - 个人版的免费证书,每隔7天左右,要手动更新开发者证书;
 - 需要手动的在iPhone中选择信任证书,通用->设备管理->选择信任;
 - 最多支持3台设备;
 
建议:使用公司的企业账号或个人收费账号测试(企业账号可以绑定100台也不需要更新证书),不然很头疼
  
            




U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结