Как выполнить тестирование производительности в Non-Prod, если размер Non-Prod DB сравнительно очень мал или отличается от размера Prod DB? - PullRequest
1 голос
/ 11 июля 2019

Я провел тестирование производительности с использованием Jmeter в QA, а количество записей в DB QA было в 30-40 раз меньше, чем количество записей в Prod DB.

По вышеуказанной причине производительность в QA была очень хорошей, но когда приложение было выпущено в Prod, производительность была очень плохой.

Как должно проводиться тестирование perf в Non-Prod, которое может имитироватьУсловия производства (с точки зрения размера БД здесь)?Что такое стратегия / процесс?

Ответы [ 2 ]

0 голосов
/ 14 июля 2019

Лучшим вариантом будет восстановление базы данных PROD в среде QA, или, что еще лучше, иметь полную копию PROD (это называется средой STAGING ), иначе ваш тест не будет точным.

Кроме того, коэффициент масштабирования системы никогда не равен 1x1. Если у вас есть время отклика 1 секунда для базы данных с 1 миллионом строк, это не обязательно означает, что для базы данных с 2 миллионами строк время отклика будетбыть 2 секунды

Если вы не можете получить реплику PROD, вы должны запускать свои тесты на PROD непосредственно в «мертвое» время, например, в одночасье или в выходные дни.

Если вы не можете себе этого позволить - вы все равно сможете выполнять определенные действия, такие как проверка планов запросов и выдвигать предложения по оптимизации, как если бы вы выполняли запрос в 2 раза быстрее с тем же рациономбудут применяться на производстве.Вы должны быть в состоянии обнаружить тупики , отсутствующие или неэффективные индексы и т. Д.

Вы также должны быть в состоянии выполнить интеграцию , совместимость и тестирование на пропитание , но, к сожалению, так оно и будет, когда дело доходит до тестирования производительности в уменьшенных средах.

0 голосов
/ 11 июля 2019

Как вы сказали, вы не можете имитировать реальную нагрузку, если база данных значительно меньше.

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

...