Поделиться через


Создание данных теста для баз данных с помощью генераторов данных

Можно использовать Visual Studio Premium для создания тестовых данных, необходимых для проверки поведения объектов базы данных в проекте базы данных. Можно создавать данные, подходящие для схемы базы данных, но не связанные с производственными данными. Этот подход может помочь защитить конфиденциальность или безопасность рабочих данных.

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

При создании плана создания данных в проекте базы данных этот план основывается на схеме проекта. Если создается план создания данных и затем меняется схема, вам предлагается обновить план.

Важно!

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

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

Генераторы данных

Visual Studio Premium включает в себя несколько встроенных генераторов данных для разных видов данных. Например, генератор целых чисел создает случайные целые значения, строковый генератор — случайные строки, а генератор регулярных выражений — строки, соответствующие заданному шаблону. Дополнительные сведения и полный список стандартных генераторов данных см. в разделах Стандартные типы генераторов данных и Задание сведений о создании данных для столбца.

Если генераторы, входящие в Visual Studio Premium, не могут предоставить необходимые вам данные, вы можете создать собственные генераторы данных. Например, если в базе данных имеется столбец с ограничением проверки, ссылающийся на другой столбец, то может потребоваться создать пользовательский генератор данных. Дополнительные сведения см. в разделе Создание специализированных тестовых данных с помощью пользовательского генератора данных.

Если попытаться создать данные для таблицы, содержащей столбцы SPARSE и COLUMN_SET, то может быть возвращена ошибка. Дополнительные сведения см. в разделе Устранение неполадок создания данных.

Планы создания данных в среде на основе рабочих групп

План создания данных — это XML-файл, содержащий сведения о схеме базы данных и конфигурации, управляющий созданием данных для каждого столбца каждой заданной таблицы. План создания данных для базы данных, содержащей примерно 40 таблиц, может иметь объем около 8 МБ и содержать более 100 000 строк.

Нельзя выполнить автоматическое слияние изменений в DGEN-файл с помощью Team Foundation (подсистема контроля версий) или другой системы контроля версий. Процесс, который необходимо использовать для слияния вручную больших XML-файлов, сложен и при его выполнении высока вероятность возникновения ошибок. Можно свести к минимуму проблемы, связанные с планом создания данных, используя эксклюзивное извлечение плана, когда требуется внести изменения.

Безопасность генераторов данных

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

  • Информация о схеме в планах создания данных
    Когда создается план создания данных, DGEN-файл содержит схему таблиц, которая может быть важной коммерческой тайной. При открытии общего доступа к DGEN-файлу лицо, с которым вы совместно используете файл, может видеть схему. Следует совместно использовать планы создания данных только с надежными источниками.

  • Вредоносный код в планах создания данных
    Когда план создания данных содержит генератор, связанный с данными, вы пишете запрос Transact-SQL, выполняемый при выполнении плана. Такой подход позволяет выполнить из плана создания данных произвольный запрос Transact-SQL. Необходимо использовать только планы создания данных, полученные из надежных источников, также следует предупредить конечных пользователей, что планы создания данных, полученные из ненадежных источников, выполнять нельзя.

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

  • Вредоносный код в пользовательских генераторах данных
    Пользовательские генераторы данных — это классы, которые могут содержать произвольный код. При использовании пользовательского генератора данных он выполняется с теми же разрешениями, что и активный пользователь. Такой подход позволяет выполнить в режиме FullTrust вредоносный код. Необходимо использовать только пользовательские генераторы данных, полученные из надежных источников, также следует предупредить конечных пользователей, что нельзя выполнять пользовательские генераторы данных, полученные из ненадежных источников.

  • Вредоносный код в установщиках для пользовательских генераторов данных
    Для установки пользовательских генераторов данных могут создаваться проекты развертывания. Проекты развертывания могут содержать произвольный код. Программа установки для пользовательского генератора данных запускается с повышенными разрешениями. Это приводит к тому, что может быть выполнен вредоносный код с повышенными разрешениями. Необходимо использовать только установщики пользовательских генераторов данных из надежных источников, также следует предупредить конечных пользователей, что нельзя запускать установщики пользовательских генераторов данных, полученные из ненадежных источников.

Общие задачи

Общие задачи

Справочные материалы

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

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

Обновление плана создания данных, созданного с помощью предыдущего выпуска. Можно использовать планы создания данных, созданные с помощью какого-либо более раннего выпуска Visual Studio Premium. Однако такой план сразу после открытия следует обновить.

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

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

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

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

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

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

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

Связанные сценарии