ios - 运行 XCUITest 自动化后获取应用程序的控制台/文件日志和视频

标签 ios continuous-integration ios-ui-automation xcuitest

我正在尝试为我的 iOS 应用程序自动化几个流程。我正在尝试构建一些东西,这些东西将在我的 MAC 机器上及时触发,并使用 shell 脚本执行 xcodebuild 连接手机。

我想介绍 2 个场景。

1) 我想启动我的应用程序 N 次,按 3 个按钮打开 3 个 ViewControllers。我的应用程序的整个交互将生成一些日志(我可以记录到文件/控制台),我将如何从应用程序访问这些日志到启动 xcodebuild 的 shell 脚本。我试过但无法从外部访问设备中我的应用程序的 sharedContainer。

2) 我安装了两个应用程序。第一个是我构建的应用程序,第二个是我从 App store 下载的应用程序。我想自动启动这两个应用程序并录制启动视频,然后将其保存在我的 mac 上的某个位置。我在这里试图实现的目的是通过使用启动视频来比较两个应用程序的启动。

考虑到以下几点后,我正在使用 XCUITest。

对于问题 1)我将编写一个 XCUITest,使用异步测试等待一些按钮出现然后点击它们。还没有想出一种方法来从我运行 shell 脚本的地方获取应用程序在终端中的日志。

对于问题 2),我将编写一个 XCUITest 来启动这两个应用程序,点击主屏幕上的特定 X 和 Y 位置,然后按下主页按钮。使用 XCUIDevice.sharedDevice().pressButton(XCUIDeviceButton.Home)。但是我还没有想出如何拍摄正在完成的视频。

你能帮我解决这些问题吗?另外,如果我走错了方向,有人可以向我指出,我是 XCUITest 和 iOS 自动化方面的新手。

最佳答案

1) 对于日志我们可以使用https://github.com/ios-control/ios-deploy

2) 对于视频,我使用了 ReplayKit。 https://developer.apple.com/documentation/replaykit?language=objc

关于ios - 运行 XCUITest 自动化后获取应用程序的控制台/文件日志和视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51950698/

相关文章:

ios - UI自动化 iOS : Picker wheel is invalid in the majority of test runs

ios - UIImagePickerController 编辑时 : buttons()[2] could not be tapped

ios - 是否有一个标准的 iOS UI 控件可以像 UI 一样实现开放式?

ios - 如何在后台刷新期间从 AppDelegate.m 访问 View Controller

ios - 如何在 SpriteKit 中制作一个简单的角色 Controller ?

django - 与 AWS 和 Django 的持续集成

mobile-safari - UI 自动化 - 如何捕获 - 使用 javascript 编辑器记录

php - 从 iOS 9/Swift 2.0 发送 HTTP POST 请求时,PHP 服务器未收到正确的数据

continuous-integration - 如何在 TeamCity 8 上设置默认 Nuget 版本

javascript - Cypress 测试在本地是绿色的,但在 CI 中失败 - 调试提示?