如何测试聊天网络应用

Posted

技术标签:

【中文标题】如何测试聊天网络应用【英文标题】:How to test chat web app 【发布时间】:2014-10-20 18:35:47 【问题描述】:

我正在开发 chat 应用程序,在服务器上使用 node.js socket.io 模块,在客户端使用 javascript。随着它变得越来越复杂,我厌倦了通过跨浏览器单击来测试不同的使用场景。现在我使用不同的浏览器来区分cookies。所以在 Firefox 中只有一个聊天参与者,在 Opera 中是第二个,等等。

所以我的问题是:

我能以某种方式自动化吗?

我听说过 Phantom JS、Selenium WebDriver 等无头测试引擎,但我不知道如何在不同浏览器之间编写测试。其实我确实需要单独的cookies,不同的浏览器都是为了这个任务才来的。

可能我无法向 Google 解释我的问题 :) 此类问题的所有答案都意味着跨浏览器开发,并测试该方面。

任何帮助将不胜感激!

【问题讨论】:

如果它可以在这样的环境中发生,那就太好了:chrome.google.com/webstore/detail/split-screen/… @Blubberguy22 我不太明白,这个扩展是什么意思。你能进一步解释你的想法吗? 这只是一个 chrome 扩展程序,它允许两个选项卡并排打开。我的意思是,如果这些选项卡可以使用单独的 cookie 进行操作,那就太好了。 【参考方案1】:

如果您尝试使用 Casper/Phantom/SlimerJS 路线,How to test two interacting browsers (e.g. chat app) 中显示的答案可能会有用。我没有将它标记为重复,因为您的问题更笼统,而那个问题是关于如何同步两个 CasperJS 实例;它也不是专门针对 socket.io 的。

注意:如果使用 Phantom 测试 Web Sockets,您将需要获得 Phantom 2.x(它仍处于试验阶段,还没有易于下载的测试版),因为 Phantom 1.x 使用旧的 WebKit。 SlimerJs 总是使用最新的 Gecko(即 Firefox)引擎,所以没问题。

每个 PhantomJS 实例都可以有自己的 cookie。 This answer(以及该问题的另一个答案)很好地解释了您的选择。

SlimerJS cookies 类似,但持久性 cookie 存储在 Mozilla 配置文件中,因此如果您想运行多个实例,则需要为每个实例指定一个显式配置文件。 (虽然您的聊天应用程序可能只使用会话 cookie,但在这种情况下这无关紧要。)

无论如何,由于使用了 cookie,我肯定会运行两个 CasperJS 实例,而不是尝试使用两个选项卡或两个框架。

【讨论】:

以上是关于如何测试聊天网络应用的主要内容,如果未能解决你的问题,请参考以下文章

赛普拉斯 - 如何按顺序运行测试文件

聊天应用程序 - 测试两个客户端之间的交互

(二十)ATP应用测试平台——websocket实现微服务版在线客服聊天室实战案例

需要在节点js,socket.io,express js,ionic 3的实时聊天应用程序中提供建议

如何离线测试 Messenger Bots?本地网络挂钩

如何在各种流行的聊天/社交网络应用程序中打开特定的联系人聊天屏幕?