Как 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 вы ждете, пока этот файл будет присутствовать и будет стабильным в файловой системе, а затем будете действовать с ним. Может быть, вы могли бы использовать пакет ожидания для достижения этой цели.