Мы изучаем использование стека CouchDB и PouchDB, и мы хотели бы подчеркнуть тест CouchDB, так как один из наших вариантов использования может одновременно воспроизводить до 70-80 пользователей.Как подчеркнуть тест PouchDB
Нам удалось подчеркнуть тест CouchDB и остались довольны результатом, но мы хотели бы сделать некоторые сквозные стресс-тесты от PouchDB.
Я попробовал несколько вещей:
1) с помощью сценария PhantomJS, который запускает множество страниц в цикле 2) Использование сценария PhantomJS с какой-то параллельной функции, найденной на Github 3) Использование bash и & для запуска нескольких phantomJS 4) Использование сценария bash и GNU Параллельно с запуском нескольких экземпляров PhantomJS * все вышеприведенные тесты используют функцию waitFor только для завершения, когда для глобальной переменной установлено значение true (единственное Кстати, я могу подумать, что будет ждать, пока все JS на странице будут исполнены)
Хотя одно выполнение phantomJS занимает около 200-300 мс, при запуске нескольких они кажутся как-то поставленными в очередь, и мы получаем цифры от 200 мс до 30 000 мс для последнего из ~ 30 исполнений.
Похоже, что PhantomJS как-то покоится. Поскольку я вижу устойчивую прогрессию n * 200ms для каждого последующего запроса.
Возможно, я мог бы создать демонстрационное приложение на 2-3 устройствах и петлю PUT и Replicate, но я хотел попытаться списать это так же, как Siege может стресс протестировать страницу с несколькими активами. Только, я хочу, чтобы он «подождал», пока страница действительно не будет выполнена, и все JS закончили работу.
Любая идея о том, как я могу это сделать?
Спасибо за вашу помощь Нолан! :) Вы правы в PhantomJS, я забыл его для такого тестирования. Мы хотели бы в основном протестировать репликацию с PouchDB на удаленную базу данных CouchDB, потому что в нашем случае использования может быть до 70 пользователей одновременно, а в худшем случае они реплицируются одновременно. Разрешение конфликтов будет забавно управлять;) Я посмотрю на LevelDB и NodeJS, можете ли вы указать мне на большие учебники, поскольку я не знаком с LevelDB? Благодаря! – Vallieres
Нет проблем, просто используйте PouchDB, как обычно, внутри скрипта Node.js, но когда вы его создадите, укажите его в пустой каталог и напишите там файлы LevelDB: 'new PouchDB ('/ path/to/реж ') '. – nlawson