Как можно смоделировать работу 10000 пользователей в приложении?

Всем привет.
Есть весьма сложное MLM(сетевой маркетинг) приложение (Django, RabbitMQ, Celery, PostgresQL). Поступила задача проверить работу всех систем в целом на дистанции 10000 пользователей и 2 месяцев. (В приложении считаются: баллы, премии, покупки, продажи, статусы, уровни и ещё много разной фигни + разные премии начисляются с разным временным циклом, от 1 до 30 дней)

Подскажите пожалуйста хотябы с чего начинать и куда двигатся
  • Вопрос задан
  • 1611 просмотров
Пригласить эксперта
Ответы на вопрос 4
  • rSedoy
    @rSedoy
    Python/Django
    Смотреть в сторону нагрузочного тестирования. Например, locust, описываете действия пользователя, указываете их количество и смотрите результат. https://locust.io/
    Ответ написан
  • @azShoo
    Тут нужно понимать, что конкретно вы хотите проверить.
    Если речь о том, как сайт выдерживает параллельную работу 10 тысяч юзеров - вам нужны инструменты нагрузочного тестирования (гуглите Load & Performance testing tools и вперед).
    Если речь о том, как сайт работает на бОльших объемах данных (условно - вывести список из 10к заказов вместо 10 штук) -> нужно копать в сторону сидирования данных и вообще их генерации, т.к. по сути вам не нужны "действия пользователей", а нужны только данные в базе (т.е. артефакты этих действий).
    Если речь о лайфтайме данных, то тут сложнее. Вы можете сгенерировать данные, якобы созданные 2 месяца назад (условно подменив все необходимые таймстэмпы нужными), но это никак не покажет проблемы. Основная причина багов в "старых" данных - то, что со временем приложение, модель и структура данных меняется, что делает созданные 2 месяца назад данные не полностью корректными с точки зрения текущей системы (если в процессе изменений была нарушена обратная совместимость).
    Тут может помочь только:
    а) раскатывать кусок старого дампа и проверять на нём.
    б) генерировать тестовые данные в старой версии приложения и инъектить их в базу новой версии.
    в) использовать дамп с прода, где эти старые данные уже сгенерены пользователями.
    Ответ написан
  • @andreypaa
    Заполнить базу на 10000 пользователей фейковых и столько же данных им соответствующих, примерно конечно.
    Далее прикинуть сколько будет примерно одновременно юзеров онлайн, к примеру 100.
    Написать бота, эмулирующего пользовательскую активность с запустить параллельно 100 таких ботов.
    И проверить нагрузку на этих ботах. Как то так.
    Все это делать в тестовой БД соответственно.
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы