Eggplant Functionalによるデータ駆動型テスト
データ駆動型のテストアプローチは、テストデータのセットを使用した繰り返しテストを効率的に、簡単に管理する方法を提供します。Eggplant FunctionalとSenseTalkは、データ駆動型テストを簡単に行うさまざまな機能を含んでいます。
Eggplant Functionalは、プレーンテキストファイル、Microsoft Excelファイル、データベースなどのさまざまなデータソースからのテストデータの使用をサポートし、SenseTalkには、データにアクセスし、操作し、解析するためのコマンドと関数が含まれています。この記事では、スクリプトにデータ駆動型テストを組み込むためにEggplant Functionalをどのように使用するかを示します。
また、Eggplant FunctionalのTables機能を使用し、テーブルテストにデータファイルを関連付けることによってデータ駆動型テストを実行することもできます。
キーワード駆動型フレームワークを作成するためにデータファイルを使用する方法については、カスタムキーワード駆動型フレームワークの作成を参照してください。
データ駆動型テストとは何ですか?
データ駆動型テストとは、外部データセットをテスト入力として使用する概念です。テストでは、入力データをさまざまな方法で使用することがあります。たとえば、テスト対象のアプリケーションのフォームに入力されるテキストを指定したり、表示される値を期待される値と比較して検証したり、テスト定数のセットを確立したりします。
テストは、データソースからデータを受け取ることができるように、パラメータ化を使用して一般的に記述されます。テストが使用するデータは、元のデータソースを手動で編集する、テストを新しいデータソースに向ける、データソースへの更新を自動化することにより変更することができます。
以下のデータソースへの接続に関するセクションでは、サンプルのSenseTalkコードがデータ駆動型テストのための外部データの使用例を示しています。
データソース
自動化で使用するテストデータを含むデータソースは、データ駆動型テストに必要です。Eggplant Functionalは以下のタイプのデータソースをサポートしています:
使用するデータソースは、SenseTalkをどのように使用してデータソースにアクセスし、データを解析するかを決定します。
データソースの保管
プレーンテキストまたはExcelのデータソースを使用する場合、ファイルはEggplant Functionalマシンのローカルファイルシステムにアクセス可能でなければなりません。これにはネットワーク化されたドライブや共有ドライブも含まれます。
Eggplant FunctionalをWindowsで使用している場合、共有ドライブは文字にマップされている必要があります(例:D:\)。UNCパスはサポートされていません。
スイートのResources paneは、スイート内にプレーンテキストとExcelのデータファイル を保管するための簡単な方法を提供します。その後、ResourcePath()関数を使用してスクリプトからこれらのファイルを簡単に参照することができます。
データベースの場合、Eggplant Functionalとデータベースとの間の通信は、Eggplant Functionalマシンに設定されたODBC Administratorによって管理されます。
プレーンテキストファイルとのインタラクション
Eggplant Functionalを使用してデータ駆動型テスト戦略を実装するための最も簡単な方法は、プレーンテキストファイルを使用することです。
ファイルアクセス
プレーンテキストファイルの内容にアクセスする背景については、File and Folder InteractionおよびAccessing a File as a Containerのドキュメンテーションを参照してください。
プレーンテキストファイルの内容にアクセスするとき、open file
およびclose file
コマンドを使用することは 必要ありません。ただし、ファイルに対して多数の高速な読み書きイベントを行って いる場合は、open file
およびclose file
コマンドの使用が推奨されます。データ駆動型テストのほとんどのケースでは、ファイルは一度だけ、または稀にアクセスされるため、これらのコマンドは必要ありません。
プレーンテキストファイルと対話する最も簡単な方法は、put
またはset
コマンドを使用してファイルをコンテナとしてアクセスすることです。ファイルを参照するときは、ファイル拡張子(例:.txt、.csv)を含めてください。例えば:
Set MyPrices to file ResourcePath("prices.txt") -- データファイルはスイートのリソースに保存されています
Set MyProducts to file "C:\Users\Carrie\Desktop\products.csv" -- データファイルはEggplantマシンの他の場所に保存されています
chunk expressionsを使用して、ファイル内容の一部をコンテナとしてアクセスすることができます。例えば:
Set MyPrice to line 3 of file ResourcePath("prices.txt")
ファイル内容の解析
プレーンテキストファイルの内容をパースするためのSenseTalkメソッドは、データがCSV形式であるかそれ以外の形式であるかによります。