我正在编写e2e测试,我想测试的是在一个客户端上添加实体时,另一个在线客户端将被同步并看到添加的实体。 (当您键入google docs时,单词会出现在其他用户的屏幕上)。
我的问题是:如何通过WebSockets e2e测试客户端同步?
如果可以的话,我应该模拟WebSockets吗?我是否应该找到一个允许多个选项卡/浏览器实例的e2e框架,并测试客户端是否像这样同步?还有另一种方法吗?
我研究了还使用同步的应用程序,例如:https://github.com/automerge/trellis/blob/master/test/application.js和https://github.com/automerge/pixelpusher。不幸的是,他们要么没有测试,要么不使用WebSocket。
答案 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来实现此目的。