6

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

  • MySql
  • Sql Server 2000 по 2008
  • PostgreSQL
  • Oracle 9i & 10g
  • Jet 4.0 (MS Access)
  • MSDE
  • Sybase Adaptive Server Anywhere
  • Sybase Sql Anywhere
  • Прогресс OpenEdge

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

Я уверен, что другим людям приходилось настраивать аналогичные тестовые среды, и я хотел бы воспользоваться некоторыми из этой мудрости - какие стратегии вы используете, что хорошо работает или не работает?

Некоторые мысли:

  • Отдельные виртуальные машины для каждого из продуктов, каждый выделяется небольшое количество памяти (проще управлять для определенных сценариев, или там, где у нас есть немного разные настройки для отдельных продуктов).
  • Несколько виртуальных машин или даже одна виртуальная машина для всех продуктов (то есть, возможно, поле ubuntu для postgresql & mysql и сервер Windows Server для остальных продуктов). Мне нравится один или два vm, потому что это более переносимая среда для запуска тестов, т. е. на дороге/вне площадки, так как мой ноутбук, вероятно, сканирует до остановки 8 или 10 небольших виртуальных машин.

И, наконец, как вы решали запретительный стоимость некоторых из этих коммерческих продуктов, т.е. Oracle или Progress OpenEdge, и предыдущие версии по-прежнему доступны т.е. являются ли свободные «одного разработчика» издания доступны, или более дешевые маршруты в покупая эти продукты?

ответ

6
  • Мы также используем vmware для наших серверов, один vmware-узел для каждой базы данных. Вы должны быть в порядке с размещением нескольких баз данных на одном vmware.
  • У вас не должно быть проблем с дорогостоящими лицензиями на программное обеспечение.Oracle, например, позволяет получить лицензию на разработку для всех своих продуктов. До тех пор, пока вы не используете производственную БД на вашем ноутбуке vmware, вы должны быть в порядке. Конечно, IANAL.
  • Для Oracle, получите Enterprise Edition, если это то, что ваши клиенты будут использовать (скорее всего).
  • Будьте уверены и воспользуйтесь моментальными снимками vmware. Вы можете идеально настроить базы данных для запуска тестов, выполнить ваши тесты и затем вернуть базы данных в состояние предварительного тестирования, готовое для повторного запуска тестов.
1

Что мы здесь делаем (в основном) виртуальную машину для каждой необходимой конфигурации, мы также ориентируемся на разные операционные системы, так что у нас есть что-то вроде 22 конфигураций, которые мы тестируем. Эти виртуальные машины размещаются на сервере ESX и запускаются и запускаются при необходимости, чтобы они не запускались одновременно. Это была лот работы по настройке.

С точки зрения стоимости серверов баз данных, тип программного обеспечения, мы создаем необходимые топовые версии поэтому затраты на тестирование, были учтены в общих затратах Дев (мы просто должны были «сосать его»)

+0

Здесь мы также используем сервер ESX - спиннинг баз данных вверх/вниз звучит так, как будто это может быть немного сложнее :) особенно в отношении сохранения сборки достаточно быстро ... вы вращаете следующую виртуальную машину db в фон при запуске тестов против предыдущей виртуальной машины? – Bittercoder

+0

Да, это именно то, что мы делаем, оно работает нормально (сейчас), но, конечно, довольно медленно вращается. Было много страдания, когда все начиналось. –

+0

Другое, тогда затраты на электроэнергию мне может быть лучше, просто бросая больше аппаратного обеспечения в проблему ... hmmm - как долго вам понадобились парни, чтобы все было настроено, вы думаете, грубо? – Bittercoder

1

У Oracle есть бесплатный «Экспресс-выпуск». Он не имеет всех функциональных возможностей Oracle, но если вы также работаете против Jet, это не должно быть проблемой.

+0

Полезно знать ... вам придется заглянуть, знаете ли вы, были ли у них 9i и 10g экспресс-выпуски? – Bittercoder

+0

Только 10 г (10.2.0.1) на данный момент. – Mac

+0

Blast, надеялся покрыть 9/10/11 ... хотя лицензирование разработки звучит так, как будто это будет работать для меня во всяком случае. – Bittercoder

1

Архитектурно, может быть, лучше создать ферму интеграционных тестов серверов (серверов), которые достаточно мощны для запуска различных сконфигурированных виртуальных машин. Это может быть связано с процессом очереди, который прослушивает запросы на интеграционное тестирование (который может быть запущен с использованием транзакций svn или других проверок контроля источника в триггерах).

Для наиболее точного диапазона тестирования вы, вероятно, захотите иметь отдельную виртуальную машину для каждой конфигурации. Это уменьшит риск конфликтующих конфигураций, а также повысит гибкость запуска пользовательского набора виртуальных машин (например, Oracle + MySQL + PostgreSQL, а не других и т. Д.). В зависимости от вашего процесса сборки он также может позволить вам запускать 10-минутные сборки.

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

1

Oracle лицензия выдержка:

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

Итак, вы можете загрузить полные версии Oracle 9, 10 и 11 и использовать их бесплатно, как указано в лицензии. Проверьте раздел загрузки на www.oracle.com

+0

Это очень полезно знать! – Bittercoder

0

Похоже, что у вас есть хорошее представление о том, что делать уже. Я хотел бы предложить следующие макеты VM:

под управлением Windows Server 2008 окно хостинг следующее:

  • MSDE
  • Jet 4.0 (MS Access)
  • Sybase Adaptive Server Anywhere
  • Sybase SQL Anywhere
  • Прогресс OpenEdge

На Hat поле Ubuntu или Red:

Я не вижу никакой необходимости, чтобы проверить против полномасштабной SQL и Oracle изданий. Свободные выпуски стираются, поэтому очень редко возникает риск нарушения кода при его запуске против полной версии этих серверов. Если вы протестировали против полного сервера и пошли вниз к бесплатному материалу, тогда да, некоторые вещи могут сломаться, но, тестируя с наименьшим общим знаменателем, вы должны обеспечить хорошее качество.

Смежные вопросы