カスタムデータソースリーダーを使用する

Tricentis データ整合性では、サポートされていないデータソースを扱うことができます。ご自身のカスタムデータソースリーダーをデータ整合性に統合すると、以下のテストを実行することができます:

前提条件

カスタムデータソースリーダーを作成し、データ整合性で使用するには、以下の要件を満たす必要があります:

  • カスタマイズをNetStandard 2.0 に基づいて行い、Windowsの実行とLinuxの実行のどちらでも機能するようにします。

  • 以下を参照してください: Tricentis.DataIntegrity.GenericDataSource.dll

    Windowsの場合、このDLLは %TRICENTIS_DI_HOME% ディレクトリにあります。

    Linuxの場合、 Tosca Data Integrity Agent ディレクトリのカスタムデータリーダーにあります。

  • 以下のサンプルコードに示されているように、 Interface ICustomDataReader を実装します。

  • DLLファイルとすべての可能な依存関係をカスタムデータリーダーフォルダにコピー&ペーストする必要があります。

カスタムデータソースリーダーを統合する

カスタムデータソースリーダーをデータ整合性に統合するためには、以下の手順に従ってください:

  1. C:\Program Files(x86)\Tricentis\Tosca Testsuite\データ Integrity に移動します。

  2. DLLファイルと依存関係をコピーして、カスタムデータレーダーフォルダにペーストします。

  3. テストを実行するために使用する方に応じて、 Tosca Data Integrity Executor または Tosca Data Integrity Agent のいずれかを閉じて再起動してください。

    カスタムデータリーダーフォルダにファイルを追加するときは、必ず一度終了して再起動する必要があります。

  4. お客様のカスタムデータソースに接続するために、テストステップのカスタムデータリーダーテストステップ値を入力してください。この操作の詳細については、以下の章を参照してください:

データ整合性エグゼキュータが読み込むDLLを確認する

データ整合性エグゼキュータは、カスタムデータソースかターゲットを使用するテストケースの行ごとの比較を初めて実行するときにDLLファイルを読み込みます。エグゼキュータログには、実行時に読み込まれたDLLファイルが表示されます。このオプションを有効にするには、以下の手順に従います:

  1. データ整合性エグゼキュータを開いてください。

  2. ツール->オプションをクリックします。

  3. 次のオプションダイアログで、「デバッグメッセージを表示」を選択してください。

カスタムデータソースリーダーのサンプルコード

次のサンプル コードは、CSVファイルのソースとターゲットに行ごとの比較を実行できる、CSVファイルのカスタムデータソースリーダーを記述しています。

サンプルコードを独自のカスタム データ リーダーのテンプレートとして使用したい場合は、こちらからコピーできます。

コピー
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(',');
        }
    }
}

サンプルコードには、行ごとの比較を機能させるために、カスタムデータソースリーダーに含める必要があるいくつかの関数が含まれています。最も重要な行を見てみましょう。

  • クラス属性名には、アプリケーションの名前が入ります。クラス属性名のテストステップの値にこの名前を追加すると、データ整合性は、異なるカスタム実装を区別するためにこの名前を使用します。

  • Initialize メソッドによって、アプリケーションはキーと値のペアを受け取り、テストステップから得た情報をローカルに保存することができます。例えば、キーは FilePath 、値は実際のファイルパス D:˶TestFile.csv となります。

  • Connect メソッドにより、アプリケーションは接続を作成できます。例えば、特定のファイルを開き、そのファイルへの参照をローカルに保存します。

  • Cancel メソッドは、読み取り操作をキャンセルしなければならない場合にアプリケーションが停止しないように保証します。