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

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

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

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

Войти через TM ID
Похожие вопросы