Freigeben über


Generieren von Testdaten für Datenbanken mithilfe von Daten-Generatoren

Benötigte Testdaten können Sie in Visual Studio Premium erstellen, um das Verhalten der Datenbankobjekte im Datenbankprojekt zu überprüfen. Sie können Daten generieren, die für das Schema der Datenbank geeignet sind, aber in keinem Zusammenhang mit den Produktionsdaten stehen. Dieser Ansatz kann hilfreich sein, wenn die Vertraulichkeit und Sicherheit der Produktionsdaten wichtig ist.

Sie definieren einen Datengenerierungsplan mit Details zur Art und Weise der Datengenerierung für bestimmte Tabellen und Spalten. Für jede Spalte geben Sie einen Datengenerator an, der Daten von einem bestimmten Typ erzeugt.

Wenn Sie in einem Datenbankprojekt einen Datengenerierungsplan erstellen, basiert dieser auf dem Schema des Projekts. Wenn Sie einen Datengenerierungsplan erstellen und dann das Schema geändert wird, werden Sie aufgefordert, den Plan zu aktualisieren.

Wichtig

Wenn Sie den Datengenerierungsplan nicht anhand der Schemaänderungen aktualisieren, können Sie ihn nicht weiter bearbeiten. Sie können den Datengenerierungsplan nur schließen und erneut öffnen, um die Aufforderung erneut anzuzeigen.

Wenn Sie Datenbankkomponententests ausführen, können Sie für jedes Testprojekt einen anderen Datengenerierungsplan angeben. Daher können Sie die Datenbank für jede Gruppe von Tests mit einem anderen Zustand initialisieren.

Datengeneratoren

Visual Studio Premium bietet mehrere integrierte Standarddatengeneratoren zum Generieren unterschiedlicher Arten von Daten. Der Ganzzahl-Datengenerator stellt zufällige Ganzzahlwerte bereit, der Zeichenfolgengenerator stellt zufällige Zeichenfolgen bereit, und der Generator für reguläre Ausdrücke stellt Zeichenfolgen bereit, die einem von Ihnen angegebenen Muster entsprechen. Weitere Informationen und die vollständige Liste von Standarddatengeneratoren finden Sie unter Standarddaten-Generatortypen und Angeben von Details zur Datengenerierung für eine Spalte.

Wenn die in Visual Studio Premium mitgelieferten Generatoren keine Daten bereitstellen, die Ihre Anforderungen erfüllen, können Sie benutzerdefinierte Generatoren erstellen. Beispielsweise können Sie einen benutzerdefinierten Generator erstellen, wenn die Datenbank eine Spalte mit einer CHECK-Einschränkung aufweist, die auf eine andere Spalte verweist. Weitere Informationen erhalten Sie unter Generieren spezialisierter Testdaten mit einem benutzerdefinierten Daten-Generator.

Möglicherweise werden Fehler ausgegeben, wenn Sie versuchen, Daten für eine Tabelle zu generieren, die SPARSE-Spalten und ein COLUMN_SET enthält. Weitere Informationen erhalten Sie unter Problembehandlung bei der Datengenerierung.

Datengenerierungspläne in einer Teamumgebung

Bei einem Datengenerierungsplan handelt es sich um eine XML-Datei, die Informationen zum Datenbankschema sowie Konfigurationsinformationen enthält, die die Datengenerierung für alle Spalten in allen angegebenen Tabellen bestimmen. Ein Datengenerierungsplan für eine Datenbank mit ca. 40 Tabellen kann etwa 8 MB groß und mehr als 100.000 Zeilen lang sein.

Änderungen an einer DGEN-Datei können Sie nicht automatisch mit Team Foundation-Versionskontrolle oder einem anderen Versionskontrollsystem zusammenführen. Sie müssen große XML-Dateien manuell in einem schwierigen und fehleranfälligen Vorgang zusammenführen. Probleme im Zusammenhang mit dem Datengenerierungsplan können Sie minimieren, indem Sie die exklusive Auscheckfunktion für den Plan verwenden, wenn Sie diesen ändern müssen.

Sicherheit von Datengeneratoren

Datengenerierungspläne und benutzerdefinierte Datengeneratoren können Sie in einer Teamumgebung gemeinsam verwenden. Bevor Sie Datengenerierungsdateien freigeben oder freigegebene Datengenerierungsdateien verwenden, sollten Sie die folgenden Sicherheitsrisiken berücksichtigen:

  • Schemainformationen in Datengenerierungsplänen
    Wenn Sie einen Datengenerierungsplan erstellen, enthält die DGEN-Datei das Schema der Tabellen, das möglicherweise ein vertrauliches Geschäftsgeheimnis darstellt. Wenn Sie eine DGEN-Datei freigeben, ist das Schema für die Person sichtbar, für die Sie die Datei freigeben. Sie sollten Datengenerierungspläne nur für vertrauenswürdige Quellen freigeben.

  • Bösartiger Code in Datengenerierungsplänen
    Wenn ein Datengenerierungsplan einen datengebundenen Generator enthält, schreiben Sie eine Transact-SQL-Abfrage, die gemeinsam mit dem Plan ausgeführt wird. Dieses Vorgehen ermöglicht die Ausführung von beliebigen Transact-SQL-Anweisungen in einem Datengenerierungsplan. Sie sollten Datengenerierungspläne nur von vertrauenswürdigen Quellen abrufen und Endbenutzer davor warnen, Datengenerierungspläne auszuführen, die sie von nicht vertrauenswürdigen Quellen empfangen.

  • Verbindungsinformationen und benutzerdefinierte Datengeneratoren
    Alle benutzerdefinierten Datengeneratoren können zur Laufzeit auf die Datenbankverbindungszeichenfolge zugreifen. Ein bösartiger benutzerdefinierter Generator kann die Verbindungszeichenfolgeninformationen verfügbar machen. Sie sollten benutzerdefinierte Datengeneratoren nur von vertrauenswürdigen Quellen abrufen und Endbenutzer davor warnen, benutzerdefinierte Datengeneratoren auszuführen, die sie von nicht vertrauenswürdigen Quellen empfangen.

  • Bösartiger Code in benutzerdefinierten Datengeneratoren
    Benutzerdefinierte Datengeneratoren sind Klassen, die beliebigen Code enthalten können. Wenn Sie einen benutzerdefinierten Datengenerator verwenden, wird er mit den Berechtigungen des aktiven Benutzers ausgeführt. Bei diesem Ansatz kann bösartiger Code im FullTrust-Modus ausgeführt werden. Sie sollten benutzerdefinierte Datengeneratoren nur von vertrauenswürdigen Quellen abrufen und Endbenutzer davor warnen, benutzerdefinierte Datengeneratoren auszuführen, die sie von nicht vertrauenswürdigen Quellen empfangen.

  • Bösartiger Code in Installationsprogrammen für benutzerdefinierte Datengeneratoren
    Sie können Bereitstellungsprojekte zum Installieren von benutzerdefinierten Datengeneratoren erstellen. Bereitstellungsprojekte können beliebigen Code enthalten. Wenn Sie ein Installationsprogramm für einen benutzerdefinierten Daten-Generator ausführen, wird das Programm mit erhöhten Berechtigungen ausgeführt. Bei diesem Ansatz kann bösartiger Code mit erhöhten Berechtigungen ausgeführt werden. Sie sollten Installationsprogramme für benutzerdefinierte Datengeneratoren nur von vertrauenswürdigen Quellen abrufen und Endbenutzer davor warnen, Installationsprogramme für benutzerdefinierte Datengeneratoren auszuführen, die sie von nicht vertrauenswürdigen Quellen empfangen.

Allgemeine Aufgaben

Allgemeine Aufgaben

Unterstützender Inhalt

Praktische Übungen: Sie können eine einführende exemplarische Vorgehensweise nachvollziehen, um sich damit vertraut zu machen, wie ein einfacher Datenbankkomponententest erstellt und ausgeführt wird.

Erstellen eines Datengenerierungsplans: Erstellen Sie einen Datengenerierungsplan für jedes Komponententestprojekt oder bestimmte Anwendungstests. Sie können auch einen Datengenerierungsplan definieren, in dem für alle Spalten standardmäßig Daten aus einer anderen, angegebenen Datenbank wiederverwendet werden.

Aktualisieren eines Datengenerierungsplans für eine frühere Version: Sie können Datengenerierungspläne verwenden, die Sie mit einer vorherigen Version von Visual Studio Premium erstellt haben. Sie müssen sofort den Plan jedoch aktualisieren, nachdem Sie ihn geöffnet haben.

Angeben der Tabellen, die Sie generieren möchten: Sie können Daten für alle Tabellen oder nur für explizit angegebene Tabellen generieren. Für jede Tabelle können Sie eine Reihe zu generierender Zeilen angeben. Sie können auch Zeilen in einem Verhältnis generieren, das auf der Anzahl der Zeilen beruht, die Sie für eine andere Tabelle generieren.

Konfigurieren der Art der Datengenerierung für jede Spalte in den angegebenen Tabellen: Sie geben den Typ des Datengenerators für jede Spalte an. Sie können für den Bereich von Datenwerten auch Einschränkungen angeben. Für stärker erweiterte Datengeneratoren können Sie zusätzliche Konfigurationsinformationen angeben, um die zu generierenden Daten weiter einzugrenzen.

Anzeigen der generierten Daten als Vorschau: Bevor Sie Daten in die Datenbank schreiben, können Sie die Daten für jede im Datengenerierungsplan enthaltene Tabelle als Vorschau anzeigen. Durch eine Vorschau der Daten können Sie den Datengenerierungsplan anpassen, ohne Daten iterativ zu generieren.

Generieren von Testdaten: Wenn Sie die zu generierenden Daten als Vorschau angezeigt haben und überprüft haben, können Sie den Datengenerierungsplan ausführen, um die Testdaten zu generieren. Sie können das Komponententestprojekt auch so konfigurieren, dass bei jeder Ausführung der Komponententests automatisch Daten generiert werden.

Einchecken der Datengenerierungspläne: So wie Sie die Komponententests in Versionskontrolle einchecken müssen, um sie für das Team freizugeben, müssen Sie auch die Datengenerierungspläne einchecken.

Ändern der Standardwerte und Optionen für den Datengenerator: Sie können Standardwerte für den zufälligen Startwert und die Anzahl der einzufügenden Zeilen angeben. Sie können auch Optionen angeben, mit denen Aspekte der Datengeneratoren gesteuert werden, z. B. die Anzahl der Zeilen, die im Vorschaufenster angezeigt werden, sowie die maximale Anzahl akzeptabler Fehler, die während der Datengenerierung für eine einzelne Tabelle angezeigt werden können, bevor der Vorgang abgebrochen wird.

Problembehandlung: Sie können sich mit der Behandlung häufiger Probleme beim Erkennen und Verwenden von Datengenerierungsplänen vertraut machen.

Ähnliche Szenarien