Как e2e протестировать синхронизацию нескольких клиентов?

Я пишу тесты e2e, в которых я хочу проверить, что при добавлении сущности на одном клиенте другой онлайн-клиент будет синхронизирован и увидит добавленную сущность. (Думайте о документах Google, когда вы печатаете, и слова появляются на экранах других пользователей).

Мой вопрос: как я могу e2e проверить синхронизацию клиента через WebSockets?

Должен ли я издеваться над WebSockets, если это возможно? Должен ли я найти инфраструктуру e2e, которая позволяет использовать несколько вкладок / экземпляров браузера, и проверить, что клиенты синхронизируются таким образом? Есть ли другой способ?

Я посмотрел на приложения, которые также используют синхронизацию, как эти: https://github.com/automerge/trellis/blob/master/test/application.js и https://github.com/automerge/pixelpusher. К сожалению, у них либо нет тестов, либо они не используют WebSockets.

1 ответ

Я думаю, что самым простым способом было бы запустить два теста одновременно, как это:

создать новую запись сценария в scripts раздел файла package.json:

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

}

в test1.js вы добавляете одну сущность, а затем создаете файл json, который содержит всю информацию о новой сущности.

в test2.js вы ждете, пока этот файл будет присутствовать и будет стабильным в файловой системе, а затем будете действовать с ним. Может быть, вы могли бы использовать пакет ожидания для достижения этой цели.

Другие вопросы по тегам