javascript - 如何测试聊天网络应用程序

标签 javascript socket.io chat functional-testing

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

因此我的问题是:

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

我听说过像 Phantom JS、Selenium WebDriver 这样的 headless 测试引擎,但我不知道如何在不同的浏览器之间编写测试。事实上,我确实需要分离cookies,不同的浏览器在这里只是为了这个任务。

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

非常感谢任何帮助!

最佳答案

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

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

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

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

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

关于javascript - 如何测试聊天网络应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25522694/

相关文章:

javascript - 如何用javascript显示一个div

javascript - CoffeeScript 作业

返回未定义的 Javascript 闭包

java语音聊天使用multicastsocket编程

php - 创建聊天应用程序而无需不断使用 ajax 查询的解决方案

javascript - 在 Angular 2 中下载文件

javascript - 将 CSS/IMG/JS 与 NodeJS 结合使用

node.js - socket.io 客户端未接收

node.js - NodeJS与mongoDB的连接错误

python - 使用 PyQt 在 python 中使用 QtNetwork 进行 TCP 消息传递