Проектирование и планирование эталонных тестов
Первым шагом при планировании эталонных тестов является определение проблемы и цели. Затем следует решить, использовать ли стандартный эталонный тест или разработать собственный.
Если вы используете стандартный эталонный тест, выберите тот, который соответствует вашим потребностям. Например, не применяйте эталонный тест ТРС-Н для системы электронной коммерции. По словам создателей, «ТРС-Н — это специальное решение, поддерживающее эталонное тестирование». Следовательно, такие тесты не подходят для OLTP-систем.
Разработка собственного эталонного теста является сложным цикличным процессом. Для начала сделайте мгновенный снимок рабочего набора данных. Убедитесь, что можете восстановить эти данные для последующих запусков теста.
Затем вам потребуются запросы к данным. Вы можете превратить комплект модульных тестов в простейший эталонный тест, просто прогнав его много раз, но вряд ли это соответствует тому, как реально используется база данных. Лучше записать все запросы в рабочей системе в течение репрезентативного отрезка времени, например в течение часа в период пиковой нагрузки или в течение всего дня. Если будут записаны запросы за малый промежуток времени, возможно, вам потребуется несколько таких периодов. Это охватит все действия системы, такие как запросы для еженедельного отчета или работа в пакетном режиме, которую вы запланировали на часы минимальной загрузки.
Вы можете записывать запросы на нескольких уровнях. Например, если требуется выполнить эталонное полностековое тестирование, то можно протоколировать HTTP-запросы на веб-сервере. Или включить журнал запросов MySQL. Но если вы будете воспроизводить запросы из журнала, не забудьте создать отдельные потоки, а не просто последовательно повторяйте запросы один за другим. Также важно создавать отдельный поток в журнале для каждого соединения вместо хаотичных запросов в разных потоках. В журнале запросов видно, на каком соединении был выполнен каждый запрос.
Даже если вы не создаете собственный эталонный тест, все равно следует составить план тестирования. Вам придется выполнять эталонные тесты много раз, поэтому необходимо иметь возможность точно их повторять. Составьте также план на будущее: возможно, в следующий раз тестировать будет кто-то другой. Но даже если это будете вы, то, возможно, не сможете точно вспомнить, как именно делали это в первый раз. План должен включать в себя тестовые данные, шаги, предпринятые для настройки системы, информацию об измерениях и анализе результатов и план прогрева сервера.
Разработайте методику документирования параметров и результатов и тщательно протоколируйте каждый прогон. Ваш метод документирования может быть и очень простым, как, например, запись в электронную таблицу или блокнот, и сложным, как создание специально спроектированной базы данных. Вероятно, вы захотите написать какие-то скрипты для упрощения анализа результатов, поскольку чем проще будет их обрабатывать, не открывая электронную таблицу и текстовые файлы, тем лучше.