当前位置:手机游戏 > 手游资讯 > 新手问答 

ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent)

作者:佚名

ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent),哪吒游戏网给大家带来详细的ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent)介绍,大家可以阅读一下,希望这篇ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent)可以给你带来参考价值。

微信跳一跳最近很火,外挂代练什么的也越来越多。作为一只程序猿,对外挂的原理产生了强烈的好奇心,于是埋头研究了一阶段,注意到了 WebDriverAgent 这套 Facebook 出品的自动化测试框架。

为了让大家产生兴趣,先从跳一跳外挂的实现说起。

homebrew 是 Mac OS 下最优秀的包管理工具,没有之一。

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

脚本语言 python 用来编写模拟的用户操作。

brew install python3

libimobiledevice 是一个使用原生协议与苹果iOS设备进行通信的库。通过这个库我们的 Mac OS 能够轻松获得 iOS 设备的信息。

brew install --HEAD libimobiledevice

使用方法:

# 查看 iOS 设备日志
idevicesyslog
# 查看链接设备的UDID
idevice_id --list
# 查看设备信息
ideviceinfo
# 获取设备时间
idevicedate
# 获取设备名称
idevicename
# 端口转发
iproxy XXXX YYYY
# 屏幕截图
idevicescreenshot

Carthage 是一款iOS项目依赖管理工具,与 Cocoapods 有着相似的功能,可以帮助你方便的管理三方依赖。它会把三方依赖编译成 framework,以 framework 的形式将三方依赖加入到项目中进行使用和管理。

WebDriverAgent 本身使用了 Carthage 管理项目依赖,因此需要提前安装 Carthage。

brew install carthage

WebDriverAgent 是 Facebook 推出的一款 iOS 移动测试框架,能够支持模拟器以及真机。

WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。

从 github 克隆 WebDriverAgent 的源码。

git clone https://github.com/facebook/WebDriverAgent.git

运行初始化脚本,确保之前已经安装过 Carthage。

cd WebDriverAgent
./Scripts/bootstrap.sh

脚本完成后可以打开工程文件,根据自己的开发者证书对 bundleid、证书等信息做下配置。

运行 WebDriverAgent 相当于在你的目标设备启动了一个服务器,它接收来自 WDA 客户端(一般是你的电脑)的脚本请求并执行,实现启动、杀死应用,点击、滚动视图等操作。

运行 WebDriverAgent 有两种方式,一种是打开 Xcode 运行,一种是使用脚本运行。

菜单栏选择目标设备:

选择目标设备

Scheme 选择 WebDriverAgentRunner:

选择 WebDriverAgentRunner

最后运行 Product -> Test:

运行Product -> Test

一切正常的话ios跳一跳辅助,手机/模拟器上会出现一个无图标的 WebDriverAgent 应用ios跳一跳辅助,启动之后,马上又返回到桌面。这很正常不要奇怪。

此时控制台界面可以看到设备的 IP 地址:

设备的 IP 地址

通过上面给出的 IP地址 和端口,加上/status合成一个url地址。例如 :8100/status,然后浏览器打开。如果出现一串 JSON 输出,说明 WDA 安装成功了。

此时打开 :8100/inspector,可以看到一个酷炫的界面。左边屏幕图像,右边具体的元素信息,用来查看界面都 UI 图层,方便写测试脚本用。

Inspector

# 解锁keychain,以便可以正常的签名应用,
PASSWORD="YourPassword"
security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychain
# 获取设备的UDID,用到了之前的 libimobiledevice
UDID=$(idevice_id -l | head -n1)
# 真机运行测试
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test
# 模拟器运行测试
#xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "platform=iOS Simulator,name=iPhone X" test

脚本运行完成后,同样手机/模拟器上会出现一个无图标的 WebDriverAgent 应用,启动之后,马上又返回到桌面。此时终端会输出 IP 地址和端口。

有些国产的iPhone机器通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上。需要用到之前安装的 libimobiledevice 这个库。

# 把当前连接的 iOS 设备端口转发到 MacOS 的端口
iproxy 8100 8100

完成后可以直接使用 :8100/status 查看是否返回 JSON。inspector 也可以使用 :8100/inspector 访问。

上面我们在 iOS 设备上启动了 WDA 的服务端。为了运行 Mac OS 上的脚本,我们需要在 Mac OS 上安装 WDA 客户端。

总结:以上内容就是针对ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,ios跳一跳辅助(由跳一跳外挂说起——初识 iOS 自动化测试框架 WebDriverAgent)部分内容转载自互联网,有帮助可以收藏一下。