平台搭建: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台也不需要更新证书),不然很头疼


 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐