3

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

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

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

我查看了也使用如下同步的应用程序:https ://github.com/automerge/trellis/blob/master/test/application.js和https://github.com/automerge/pixelpusher。不幸的是,他们要么没有测试,要么不使用 WebSockets。

4

1 回答 1

4

我认为最简单的方法是同时启动两个测试,如下所示:

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

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

}

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

在 test2.js 中,您等待该文件在文件系统中存在且稳定,然后对其进行操作。也许你可以使用包等待来实现这一点。

于 2019-01-07T12:40:19.927 回答