Параллельные пользователи RSelenium для нескольких сценариев ios на Shiny - PullRequest
6 голосов
/ 08 января 2020

Я пытаюсь провести зарядку с помощью RSelenium для моего развернутого приложения Shiny. Несколько пользователей подключаются к адресу и выполняют случайные задачи одновременно.

Я искал doParallel, но количество одновременных процессов ограничено количеством ядер - 1.

У меня есть попробовал следующую командную строку, чтобы запустить процесс N в фоновом режиме одновременно. Число задается в качестве параметра для определения порта браузера. Он работает до 3-х процессов, но по некоторым процессам происходит сбой и не всегда одинаковы.

'start /b "P1" Rscript R/run_tests.R 1 &
start /b "P2" Rscript R/run_tests.R 2 &
start /b "P3" Rscript R/run_tests.R 3 &
start /b "P4" Rscript R/run_tests.R 4 &
start /b "P5" Rscript R/run_tests.R 5'

run_tests откройте новый веб-драйвер и перейдите на веб-страницу.

Решение будет Я хочу попросить нескольких коллег запустить этот код для 3 процессов, но я бы хотел привлечь 20 пользователей.

Ответ на Windows будет более ценным, но Linux не проблема. Вы знаете правильный способ сделать это с RSelenium? Большое спасибо за любую подсказку.

1 Ответ

1 голос
/ 19 января 2020

У меня есть некоторый опыт работы с JMeter, но он не подходит для вашего случая, как написано здесь .

Shiny полагается на Javascript, чтобы реагировать на взаимодействия с пользователем и взаимодействовать с R, в отличие от вызовов RESTful HTTP. Это означает, что стандартные платформы нагрузочного тестирования, такие как JMeter, не точно моделируют нагрузку.

Пожалуйста, ознакомьтесь с информацией для inyloadtest . Я не использовал его лично, но в соответствии с документацией он может быть установлен под Windows и поддерживает:

  • Запись типичного сеанса пользователя для приложения.
  • Параллельно воспроизводить сеанс, имитируя одновременный доступ многих пользователей к приложению.
  • Проанализируйте результаты нагрузочного теста и определите, достаточно ли хорошо работало приложение.

Надеюсь, это поможет.

...