5

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

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

ws://localhost:8008/v2/ipc

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

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

4

1 回答 1

1

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

免责声明:我没有尝试任何我将要提出的建议。这也可能是一个非常糟糕的想法,因为谷歌可以随时以他们想要的任何方式更改协议,因为它不是公开的东西。

大免责声明:您这样做可能违反了 ToS,因为第 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 ) 并对其进行更改,以便它注销正在发送和接收的消息。

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

接收方法具有字符串“Received message”。我猜想“a.message”就是正在接收的内容。

发送方法有字符串“IPC message sent”。我猜想“a”是正在发送的内容。

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

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

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

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

于 2015-04-29T03:59:40.130 回答