通过REST api直接与手机通讯来自动化移动设备应用

问题描述 投票:0回答:1

我目前正在从事一个项目,该项目高度依赖于鸦片/硒来实现自动化。这些框架非常适合入门,但是健壮性还不够,并且需要大量额外的硬件/软件来运行自动化。例如macOS,xcode,adb,appium,selenium,usb连接或通过WIFI(我们目前必须使用)连接。这个自动化堆栈中只有很多依赖项,拥有一个更干净,更可靠和可扩展的解决方案将是很好的选择。

所以我想知道。是否有人知道一种方法,可以使用直接位于设备上的服务器通过REST api通过REST API运行iOS和Android自动化,从而使我们可以与curl -POST <device_ip>:<port>/session/{sessionId}/openApp之类的设备进行通信。

想想Facebook构建的WebDriverAgent,但不是使用xcodebuild构建的,Agent只存在于设备上。本质上,当您构建此框架时,它将启动我正在描述的服务器,但是该服务器依赖于xcode,并且我最终希望从图片中删除xcode。我知道今天有很多人遇到WDA服务器和xcode都遇到问题的问题。特别是新版本,以及Facebook现在如何存储WebDriverAgent。

我们不能只是创建一个可以始终作为WebDriverServer运行的应用程序,并且将使用与今天相同的逻辑..通过开始会话,通过ID查找元素,单击它们,然后继续。这也将消除在计算机上运行Appium的需要,并依靠它来将命令代理到具有iOS的WDA服务器。

我知道android的画面要简单得多,目前我更专注于如何使用iOS解决此问题。

我非常感谢您对此问题/问题的任何见解,如果有人对Appium,iOS自动化,android自动化或可以提出的其他观点有任何建议,请向我发送您的反馈意见。

我们确实使用真实的设备来运行我们的自动化!

ios xcode selenium automation appium
1个回答
0
投票

我已经使用Appium / Selenium从Rest API进行访问。我认为这比建立自己的要容易。

解决方案之一是我们当前正在使用Flutter进行项目开发-仍然需要您的Xcode来登录依赖项。您还需要确保已安装libimobiledevice和ideviceinstaller,最后修改Flutter。我们从rest api调用真实设备。我们目前正在扩展和监视性能。

我可以想到的另一种可行的替代方法是,通过XCTest进行操作比Appium容易。只需在应用程序中提供终点,然后在XCTest中创建包装即可。调用其余的api并在XCTest中运行测试。从长远来看,它更稳定,更快。

但是对于大多数项目,在评估此解决方案时,我仍在使用Appium来测试iOS。

© www.soinside.com 2019 - 2024. All rights reserved.