如何e2e测试多个客户端同步?

时间:2019-01-04 17:57:39

标签: websocket synchronization e2e-testing testcafe automerge

我正在编写e2e测试,我想测试的是在一个客户端上添加实体时,另一个在线客户端将被同步并看到添加的实体。 (当您键入google docs时,单词会出现在其他用户的屏幕上)。

我的问题是:如何通过WebSockets e2e测试客户端同步?

如果可以的话,我应该模拟WebSockets吗?我是否应该找到一个允许多个选项卡/浏览器实例的e2e框架,并测试客户端是否像这样同步?还有另一种方法吗?

我研究了还使用同步的应用程序,例如:https://github.com/automerge/trellis/blob/master/test/application.jshttps://github.com/automerge/pixelpusher。不幸的是,他们要么没有测试,要么不使用WebSocket。

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法是像这样同时启动两个测试:

在package.json文件的scripts部分中创建一个新的脚本条目:

"scripts" : {
  "testcafe": testcafe chrome,   
  "test-synchro": npm run testcafe -- test1.js & npm run testcafe -- test2.js

}

在test1.js中,您添加一个实体,然后创建一个json文件,其中包含有关新实体的所有信息。

在test2.js中,您等待该文件在文件系统中出现并稳定下来,然后对它进行操作。也许您可以使用软件包wait-on来实现此目的。