如何在 Chromebook 上的 Kiosk 模式下的 PWA 上运行测试自动化?

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

我正在尝试从开发机器针对将在 Chromebook 上以 Kiosk 模式运行的渐进式 Web 应用程序 (PWA) 运行测试自动化。 PWA 旨在在 Kiosk 环境中使用,我需要一种可靠的方法来远程测试其功能。

到目前为止,我已尝试使用 Puppeteer 进行此设置,但在 Kiosk 模式下与应用程序交互时遇到了挑战。

这是我到目前为止所做的:

  1. 在我的 Chromebook 上启用了开发者模式。
  2. 更新了 Chromebook 上的 chrome_dev.conf 文件以启用 --remote-debugging-port。
  3. 从 VT-2 终端在 Chromebook 上启动 SSH 隧道,并从我的 Mac 连接到它。

通过这些步骤,我可以从 Mac 成功远程调试我的应用程序,并且 Puppeteer 测试可以连接到它。然而:

  • 当 PWA 在 Kiosk 模式下运行时,测试无法定位元素。
  • 测试完成后,Chromebook 上的会话将重新启动,从而终止 SSH 隧道。

我还测试了在 Chromebook 上登录用户后从 VT-2 或 Crosh 中启动 SSH 隧道。在此设置中:

  • 测试通过并且可以定位元素。
  • 会话不会重新启动,允许重新运行测试。

我有一些问题:

  1. 是否可以在不依赖 SSH 隧道的情况下从两台单独的计算机远程调试在 Chromebook 上运行的 PWA?
  2. 是否有任何框架(例如 Puppeteer、Selenium 或其他)可以在 Kiosk 模式下成功与 PWA 交互?
  3. 是否可以在不实际处于 Kiosk 模式的情况下“模拟”Kiosk 模式?

任何指导、框架或替代方法将不胜感激!

puppeteer google-chrome-os kiosk-mode chromebook
1个回答
0
投票

在发现提供的 dev_features_ssh 可执行文件后,我找到了解决方案。我按照以下步骤让 ssh 在启动时启动:

https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/chromeos-base/chromeos-sshd-init/files/openssh-server.conf.README#25


运行帮助程序。

名为 dev_features_ssh 的可执行文件可用于启用 sshd。根文件系统 必须先删除验证,否则辅助程序将不起作用。 这将导致 sshd 在每次启动时使用测试密钥自动启动 使用权。 rootfs 验证后可以选择启用密码访问 已被删除。

删除 rootfs 验证。
$ /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification
$ reboot
安装sshd启动文件。
$ /usr/libexec/debugd/helpers/dev_features_ssh
允许密码访问(可选)。
$ passwd

然后我能够以 root 身份成功通过 ssh 登录到我的 Chromebook。我更新了我的 Puppeteer 测试以通过 webSocketUrl 进行连接,如下所示

browser = await puppeteer.connect({
  browserWSEndpoint: webSocketDebuggerUrl,
});

当 SSH 服务器启动并运行时,您可以从 http://localhost:9222/json/version 获取 websocketDebuggerUrl。

完成所有这些后,即使在 kiosk 模式下,puppeteer 也能够与 PWA 进行交互,并且即使重新启动 kiosk 应用程序,ssh 连接也保持活动状态。我确实在 Google 管理员中更新了我的组织部门,将自助服务终端应用程序设置为“启动时自动启动”,以便我的 Chromebook 始终准备好进行测试。

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