Как e2e протестировать синхронизацию нескольких клиентов? - PullRequest
0 голосов
/ 04 января 2019

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

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

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

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

1 Ответ

0 голосов
/ 07 января 2019

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

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

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

}

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

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

...