chromecast 接收器应用程序的自动化系统测试

Wil*_*iam 5 automated-tests system-testing google-cast chromecast

我想知道是否有一种对 Chromecast 接收器应用程序进行自动化系统测试的好方法?

如果您在 Chrome 浏览器中打开应用程序 URL,cast_receiver 库在以下位置找不到 websocket 连接:

ws://localhost:8008/v2/ipc
Run Code Online (Sandbox Code Playgroud)

由于它处理应用程序和 Chromecast 硬件之间的通信,我正在考虑类似 Node.js websocket 服务器的东西,它可以与 chromecast 接收器应用程序通信。有没有这样的系统,或者有谁知道谷歌是否有计划为这种测试发布一些东西?

另外,chromecast浏览器和chrome浏览器的区别会不会有其他问题?据我了解,chromecast 浏览器只是 chrome 的一个子集,这让我觉得它应该可以工作。

jus*_*uke 1

不,没有简单的方法可以做到这一点。

免责声明:我还没有尝试过我所建议的任何内容。这也可能是一个可怕的想法,因为谷歌可以随时以他们想要的任何方式改变协议,因为它不是公共事物。

重要免责声明:您这样做可能会违反服务条款,因为第 3.2 条(开发者政策)规定您“不得……开发独立技术……任何 Google Cast 接收器的任何功能”。您可能会制作一项复制 IPC 功能的独立技术。但我不知道。我不是律师。

如果您想这样做,我建议您制作一份 Google Cast Receiver SDK 的副本(截至 2015 年 4 月 28 日,www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js )并对其进行更改,以便它注销正在发送和接收的消息。

幸运的是,我们似乎有日志消息来帮助我们找到相关代码。

接收方法具有字符串“已接收消息”。我猜想“a.message”就是收到的内容。

发送方法有字符串“IPC消息已发送”。我猜想“a”就是正在发送的内容。

一旦您检测了代码副本,您需要将其发布到您的接收器应用程序可以看到的地方,然后您需要编辑您的接收器应用程序以指向新的和改进的 SDK。请确保您在未发布的应用程序上执行此操作仅用于测试目的。

完成此操作后,您需要找到某种方法将消息从代码中取出并放入您可以访问的内容中。你有几个选择。

  1. 多修改一下代码,弄清楚如何让 Chromecast 注销你想要的数据;
  2. 将信息存储在数组中并使用调试器读取它;
  3. 打开您自己的套接字(或 websocket)并将该数据发送到您控制的服务器。

从这里,您可以运行您的应用程序,与其交互,然后获得发送和接收的 IPC 消息的完整记录。有了这个,您就可以创建自己的 Fake-IPC 服务器来侦听特定消息并吐出日志中的内容。