Benutzerdefinierten Datenquellenleser verwenden

Tricentis Data Integrity ermöglicht es Ihnen, mit Datenquellen zu arbeiten, die es standardmäßig nicht unmittelbar unterstützt. Integrieren Sie Ihren eigenen benutzerdefinierten Datenquellenleser in Data Integrity, um die folgenden Tests durchzuführen:

Tricentis empfiehlt, diesen Ansatz nur zu verwenden, wenn Sie über das technische Wissen verfügen, eine benutzerdefinierte Implementierung zu schreiben.

Voraussetzungen

Um einen benutzerdefinierten Datenquellenleser zu erstellen und ihn mit Data Integrity zu verwenden, müssen Sie die folgenden Anforderungen erfüllen:

  • Ihre Customisierung muss auf .NetStandard 2.0 basieren, damit sie sowohl für unsere Windows- als auch für unsere Linux-Ausführung funktioniert.

  • Sie müssen auf die Tricentis.DataIntegrity.GenericDataSource.dll verweisen.

    Unter Windows finden Sie diese DLL im Verzeichnis %TRICENTIS_DI_HOME%.

    Unter Linux befindet sie sich im Verzeichnis Custom Data Readers des Tosca Data Integrity Agent.

  • Sie müssen Interface ICustomDataReader implementieren wie im Beispielcode unten gezeigt.

  • Sie müssen Ihre DLL-Dateien und alle möglichen Abhängigkeiten in den Ordner Custom Data Readers kopieren und einfügen.

Ihren benutzerdefinierten Datenquellenleser integrieren

Um Ihren benutzerdefinierten Datenquellenleser in Data Integrity zu integrieren, gehen Sie wie folgt vor:

  1. Gehen Sie zu C:\Programme (x86)\TRICENTIS\Tosca Testsuite\Data Integrity.

  2. Kopieren Sie Ihre DLL-Dateien und Abhängigkeiten in den Ordner Custom Data Readers.

  3. Schließen Sie entweder den Tosca Data Integrity Executor oder den Tosca Data Integrity Agent und starten Sie ihn erneut, je nachdem, mit welchem Sie Ihren Test durchführen.

    Sie müssen immer dann schließen und neu starten, wenn Sie dem Ordner Custom Data Readers Dateien hinzufügen.

  4. Um eine Verbindung zu Ihrer benutzerdefinierten Datenquelle herzustellen, füllen Sie die Custom Data Reader-Testschrittwerte in Ihrem Testschritt. Nähere Informationen dazu finden Sie in den folgenden Kapiteln:

Ansehen, welche DLLs der Data Integrity Executor lädt

Der Data Integrity Executor lädt die DLL-Dateien, wenn er zum ersten Mal einen Row by Row Comparison-Testfall ausführt, der eine benutzerdefinierte Datenquelle oder ein benutzerdefiniertes Ziel verwendet. Das Executor-Log kann Ihnen zeigen, welche DLL-Dateien er bei der Ausführung geladen hat. Um diese Option zu aktivieren, gehen Sie wie folgt vor:

  1. Öffnen Sie den Data Integrity Executor.

  2. Klicken Sie auf Tools->Options.

  3. Wählen Sie im darauffolgenden Options-Dialog die Option Show debug messages aus.

Beispielcode eines benutzerdefinierten Datenquellenlesers

Der folgende Beispielcode zeigt einen benutzerdefinierten Datenquellenleser für CSV-Dateien, mit dem Sie einen zeilenweisen Vergleich mit CSV-Dateien als Quelle und Ziel durchführen können.

Wenn Sie den Beispielcode als Vorlage für Ihren eigenen benutzerdefinierten Datenleser verwenden möchten, können Sie ihn von hier kopieren.

Kopieren
using System;
using System.Collections.Generic;
using System.IO;
using Tricentis.DataIntegrity.GenericDataSource;
namespace CustomReaderExtension
{
    [DataSourceReader("CustomCSVReader")]
    public class CustomCSVReaderExample : ICustomDataReader {
        public IDictionary<string, string> parameters;
        public StreamReader fileStream;
        public void Initialize(IDictionary<string, string> parameters) {
            this.parameters = parameters;
        }
        public void Connect() {
            fileStream = new StreamReader(parameters["FilePath"]);
        }
        public string[] GetColumnNames() {
            return ReadLine();
        }
        public string[] GetNextRow() {
            return ReadLine();
        }
        public bool HasMoreRows() {
            return !fileStream.EndOfStream;
        }
        public void Cancel() {
            //Not implemented, filereader will only be closed.
        }
        public void Disconnect() {
            fileStream.Close();
        }
        public string[] ReadLine() { 
            return fileStream.ReadLine().Split(',');
        }
    }
}

Der Beispielcode enthält einige Funktionen, die Ihr benutzerdefinierter Datenquellenleser ebenfalls enthalten sollte, damit die Row by Row Comparison funktioniert. Werfen wir einen Blick auf die wichtigsten Zeilen:

  • ClassAtrributeName enthält den Namen der Applikation. Sie fügen diesen Namen im Testschrittwert Class Attribute Name hinzu und Data Integrity verwendet ihn, um zwischen verschiedenen benutzerdefinierten Implementierungen zu unterscheiden.

  • Die Initialize-Methode ermöglicht es der Applikation, Schlüssel-Wert-Paare zu empfangen und die Informationen, die sie vom Testschritt erhält, lokal zu speichern. Beispielsweise ist der Schlüssel FilePath und der Wert der tatsächliche Dateipfad D:\TestFile.csv.

  • Mit der Connect-Methode kann die Applikation eine Verbindung herstellen. Zum Beispiel, um eine bestimmte Datei zu öffnen und die Referenz darauf lokal zu speichern.

  • Die Cancel-Methode stellt sicher, dass die Applikation nicht hängen bleibt, falls der Lesevorgang abgebrochen werden muss.