Как производиться / ориентирован на тестирование приложения Rails с базой данных Real World?
-
26-09-2019 - |
Вопрос
Я хотел бы проводить тестирование приложения Rails.
Данные реального мира составляет 100 МБ по размеру.
Но рельсы всегда восстанавливают тестовую базу данных, которая перезаписывает данные реального мира.
Так как, как к тестированию производительности?
Решение
Я бы создал новую среду под названием «Performance». Вам нужно, чтобы реплицировать настройки производства вашего приложения (кэширование класса, шаблоны и т. Д.), а затем загрузить базу данных. В прошлом я создал DB специально для тестирования производительности, создал задачу грабли, которая выполняет необходимые миграции / нагрузки, а затем называется сценарием производительности рельсов.
Вы также можете выключить поведение прибора в тесты - зависит от того, в каких тестовых рамках вы используете.
Я также нашел этот полезный пост на Проходные рельсы Производительные испытания на реальные данные У этого есть некоторые детали по поводу этого подхода.
Другие советы
У меня есть быстрое решение для пользователей SQLite.
В тестовом случае
def setup
`cp db/development.sqlite3 db/test.sqlite3`
end
Я бы развернул приложение к постановке (которое близко к вашей производственной среде). И генерировать данные в вашей базе данных для более точного тестирования. Вы можете взглянуть на ffaker
GEM для генерации поддельных данных. Затем используйте инструмент для 3-го вечеринка для удаления вашего приложения. Приводите инструменты, которые вы работаете на самом сервере, также повлияют на производительность. я предпочитаю Jmeter
как инструмент тестирования нагрузки. Вы можете создавать тестовые случаи.
Например, вы хотите проверить свою страницу входа в систему. Вы можете установить параметры входа в систему и опубликовать в систему URL. Вы бы рассмотрели проведение тестов для страниц, которые имеют операции записи в вашу базу данных. Это, вероятно, будет узким местом вашего приложения.
Jmeter Руководство пользователя
Надеюсь это поможет.