JSON/XML-Dateien
Verwenden Sie das Modul JSON/XML File Load into Caching Database, um eine JSON- oder XML-Datei in eine SQLite-Datenbank zu laden.
Typische Anwendungsfälle für diese Funktionalität sind:
-
Um den Inhalt einer JSON- oder XML-Datei zu überprüfen, z. B. wie viele Datensätze im Allgemeinen bzw. wie viele Datensätze eines bestimmten Typs vorhanden sind.
-
Um den oben genannten Anwendungsfall zu unterstützen und volle Flexibilität zu gewährleisten, wird der Inhalt in eine Datenbank geladen, die Sie über SQL abfragen können. Auf diese Weise können Sie alle möglichen Standardtests von Data Integrity ausführen, einschließlich Metadata Field Tests und Row by Row Comparison.
Konfigurieren Sie den Pfad der SQLite-Caching-Datenbank im Dialog Settings im Tosca Commander (siehe Kapitel "Einstellungen - Tricentis Data Integrity").
Modul JSON/XML File Load into Caching Database
Das Modul JSON/XML File Load into Caching Database enthält die folgenden Attribute:
Modulattribut |
Beschreibung |
Optional |
---|---|---|
File Name |
Geben Sie den vollständigen Dateipfad und Dateinamen der JSON- bzw. XML-Datei ein, die Sie laden möchten. |
|
File Format |
Definieren Sie das Dateiformat Ihrer Datei. Die unterstützten Formate sind JSON und XML. |
|
JPath/XPath |
Definieren Sie den JPath- oder XPath-Ausdruck, um durch Elemente und Attribute in einer XML- oder JSON-Datei zu navigieren. Sie können den JPath/XPath definieren, wenn Sie eine große Datei haben und bestimmte Unterknoten der Datei herausfiltern möchten. Wenn Sie XPath definieren, werden Namespaces nicht unterstützt. |
X |
Table Prefix |
Um zu vermeiden, dass bestehende Tabellen mit dem gleichen Namen überschrieben werden, geben Sie ein Tabellenpräfix an. Dieses Präfix wird für alle erstellten Tabellen verwendet. |
X |
JSON/XML File Load into Caching Database Module in einem Testschritt
Logik zum Erstellen von Tabellen
Nach dem Laden einer XML-Datei in die Caching-Datenbank wird der Inhalt der Datei auf folgende Weise in eine Tabelle umgewandelt:
-
Jeder Knoten in der Datei, der untergeordnete Knoten hat, wird in eine Tabelle umgewandelt.
-
Alle untergeordneten Knoten, die Wertknoten sind, werden zu Spalten in der übergeordneten Tabelle. Wenn ein Wertknoten mehr als einmal in seinem übergeordneten Element erscheint oder ein Attribut hat, erhält er eine eigene Tabelle.
-
Wenn ein Tag an verschiedenen Stellen unter beliebig vielen verschiedenen übergeordneten Elementen erscheint, hat es Fremdschlüsselspalten im folgenden Format: ___id-Format für Primärschlüssel. Parent1TableName___id für Fremdschlüssel.
-
Wenn Sie einen XPath angeben, wird das Ergebnis in eine künstliche Wurzel, genannt Entity, eingebettet, um es zu einem gültigen XML zu machen. Dadurch wird eine Entity-Tabelle erstellt.
-
Wenn der Wertknoten in einem der Vorkommen seines übergeordneten Elements fehlt, ist der Wert NULL. Wenn er vorhanden ist, aber keinen Text hat, hat er einen leeren Wert.
-
Um den Inhalt, den Sie über SQL in die Caching-Datenbank geladen haben, abzufragen, verwenden Sie den Fremdschlüssel in der Untertabelle, um beispielsweise die Untertabelle mit der übergeordneten Tabelle zu verbinden.
Die Abfrage kann das folgende SQL-Statement beinhalten:
SELECT * FROM address
JOIN person ON address.Person___id = Person.___id
Im folgenden Beispiel sehen Sie die Struktur einer XML-Datei mit drei Wertknoten für Address:
<Person>
<Name>John</Name>
<Address>
<Street>Hill</Street>
<City>Sydney</City>
<Country>AUS</Country>
</Address>
<Address>
<Street>Street 2</Street>
<City>City 2</City>
<Country>HG</Country>
</Address>
</Person>
Die Spalte ___id wird als Primärschlüssel für jede Tabelle angelegt. Der Knoten Address hat drei Wertknoten Street, City und Country.
Tabelle Address im DB Browser für SQLite
![]() |
Wenn Sie sich anzeigen lassen möchten, wie die eigentlichen Tabellen verknüpft sind, können Sie den SchemaCrawler verwenden. |
Beispiel: Mit dem Modul JSON/XML File Load into Caching Database arbeiten
Dieses Beispiel lädt die Datei Person Table.xml in die Caching-Datenbank.
XML-Datei laden
Die XML-Datei enthält sich wiederholende Wertknoten, die Sie in eine Person-, Address- und Street-Tabelle konvertieren möchten.
<Person>
<Name>Kolmogorov</Name>
<Address>
<Street>Hill</Street>
<Street>Crescent</Street>
<City>Sydney</City>
<Country>AUS</Country>
</Address>
</Person>
Nachdem Sie den Testfall im ScratchBook ausgeführt haben, erhalten Sie folgendes Ergebnis:
Ergebnis im ScratchBook
Die Spalte Loginfo im ScratchBook zeigt das Ausführungsergebnis und die erstellten Tabellen: Person, Address, Street.
In Ihrem installierten DB Browser für SQLite können Sie die von Ihnen geladene Datenbank öffnen und die erstellten Tabellen anzeigen:
Tabelle Person im DB Browser für SQLite
Tabelle Address im DB Browser für SQLite
Tabelle Street im DB Browser für SQLite
Wie im Beispiel gezeigt, wird die Spalte ___id als Primärschlüssel für die Tabellen angelegt. Der Knoten Address hat zwei Street-Wertknoten. Da sie sich wiederholen, wird eine separate Tabelle für den Knoten Street angelegt. Um die Tabelle Street mit der Tabelle Address zu verknüpfen, wird ein Fremdschlüssel Address___id hinzugefügt. In diesem Beispiel gehören Hill und Crescent zur gleichen Address.