【发布时间】:2019-01-25 23:16:23
【问题描述】:
我正在尝试从 Google Firebase 测试实验室设备下载文件。这些文件是通过运行检测测试生成的。这些文件是屏幕截图。我需要下载屏幕截图,因为随后的测试运行会将屏幕与这些屏幕截图进行比较。因此,屏幕截图是视觉变化检测的基准。
我尝试寻找一种方法来连接到 Firebase 测试实验室设备的 Device File Explorer。但似乎没有办法远程访问它。
由于Firebase Test Lab cleans up the device 在测试之后,我认为我可以实现我想要做的唯一方法是将代码添加到测试中以推送文件到某个地方。
我想将文件推送到存储测试结果的 Google Cloud 存储桶。从下面的文档来看,这似乎是存储桶的预期用途:
测试实验室完成对您的应用的测试后,您可以查看测试 结果在 Firebase 控制台或 Google Cloud 存储桶中 你的项目。您还可以在 shell 命令中添加 gsutil 命令 如上图所示,将测试结果数据复制到本地计算机。到 了解更多信息,请参阅分析 Firebase 测试实验室结果。 (Firebase documentation)
对于这种方法,我的插桩测试如何将文件推送到存储桶?它如何知道使用什么存储桶?执行文件传输的 API 是什么?
我可以采取的另一种方法是 Take Screenshots from Firebase Test Lab Instrumentation Tests 这会将屏幕截图放入存储桶中。但我看到了两个潜在的问题。
第一个问题是截图库的截图可能与UiAutomation.takeScreenshot()截取的截图不同。换句话说,基线屏幕截图是使用屏幕截图库拍摄的,但在随后的运行中,我会使用 UiAutomation.takeScreenshot() 拍摄屏幕截图并进行比较。由于库不同,因此它们的屏幕截图可能会有所不同。一种可能的解决方案是使用屏幕截图库拍摄两个屏幕截图。但随后我需要弄清楚如何将屏幕截图读回内存,以便执行比较操作。今天我以Bitmaps 阅读它们。
对于这种方法,我的插桩测试如何将屏幕截图库的屏幕截图加载为 Bitmaps?
第二个问题是弄清楚如何将屏幕截图从存储桶下载到我的本地计算机。存储桶的用户界面没有下载按钮。它只有一个上传按钮:
对于这种方法,我如何将文件从存储桶下载到我的本地计算机,以便我可以将它们添加到我的插桩测试可以读取的资源目录中?
【问题讨论】:
标签: android firebase firebase-test-lab