メインコンテンツまでスキップ

スイート変数の作成と使用

Eggplant Functionalの設定タブでは、特別なユーザー定義型の事前定義された変数であるスイート変数を定義できます。スイート変数は、スイート内の任意のスクリプトとSenseTalkのマージフォーマットを使用したAPIテストにアクセス可能です。設定タブには、Eggplant Functional Suiteウィンドウの左下にあるSettingsボタンをクリックしてアクセスできます。

変数のスコープ

スイート変数のスコープはローカルと見なされます。(さまざまな変数スコープの説明については、SenseTalkの変数を参照してください。)ただし、スイートに対してそれらを定義するため、スクリプトの実行またはハンドラーの開始時に値を持つことができ、初期値を割り当てる必要がありません。次のハンドラーの開始時にはデフォルトに戻るので、スクリプトの実行中に変数を使用して値を上書きすることができます。

SenseTalk内では、スイート変数はthe suiteVariablesグローバルプロパティに格納されます。したがって、グローバルプロパティを通じてスクリプト実行中にスイート変数のデフォルト値を変更することが可能です。スイート変数は複数のスクリプトやAPIテストからアクセスされる可能性があるため、この方法で値を更新するときは注意が必要で、どのコンテキストを変更しているのかを知っている場合にのみ行うべきです。

スイート変数の作成

スイート変数は基本的にキー/値のペアで、変数名(キー)と変数に割り当てる値です。設定タブのSuite Variablesセクションでスイート変数を作成できます。

Eggplant Functionalの設定タブのスイート変数セクションEggplant Functionalの設定タブのスイート変数セクション

新しいスイート変数を作成するには:

  1. Addをクリックします。
  2. Keyフィールドに変数名を入力します。定義している変数を明確に識別できる一意の名前を使用してください。たとえば、スクリプトで通常myVarのような名前を使用する場合、スイート変数の名前としてそれを使用することは避けたいでしょう。
  3. Valueフィールドにこの変数の値を入力します。

スイート変数は自動的に保存されます。ここで必要なだけのスイート変数を追加できます。

Eggplant Functionalのスイート変数セクションに定義された変数が表示されていますEggplant Functionalのスイート変数セクションに定義された変数が表示されています

Suite Variablesセクションで既存のスイート変数を編集するには、編集したい変数のKeyまたはValueフィールドをクリックし、情報を更新します。

ノート

既存のスイート変数のキー名を変更することは可能ですが、おすすめしません。ここで名前を変更しても、スクリプトやこのスイート変数を既に参照している他の場所での名前は変更されません。したがって、キー名を変更すると予期しない結果につながる可能性があります。

スイート変数を削除するには、削除したい変数の右側にあるDelete rowボタンをクリックします。変数の削除は、スクリプトや他の場所で含めた変数への参照を削除しませんが、変数は事前定義された値を持つことはありません。

グローバルプロパティの使用方法

SenseTalkスクリプト内のthe suiteVariablesグローバルプロパティを通じて、直接スイート変数を作成または更新することも可能です。

set the suitevariables to (baseURL:"http://examples.com")

上記の例では、baseURLの値がhttp://examples.comに更新されます。もし変数baseURLが既に存在しなかった場合、それは作成され、値が割り当てられます。次の例は同じ結果を提供します:

set the suitevariables.baseURL to "http://examples.com"

次の構文を使用して、一度に複数のスイート変数を更新または作成することができます:

set the suitevariables to (usr3:"giles",usr4:"dawn",usr5:"xander")

グローバルプロパティを更新すると、Suite Variablesセクションの設定タブにも値が追加または変更されます。ただし、更新を行う際にスイートウィンドウの設定タブが開いている場合、変更を見るためには閉じて再度開く必要があります。

グローバルプロパティの完全な定義については、the suiteVariablesを参照してください。グローバルプロパティの操作についての詳細は、SenseTalkのローカルおよびグローバルプロパティを参照してください。

スイート変数の使用

SenseTalkスクリプトでは、キー名を変数として呼び出すことでスイート変数にアクセスできます:

put usr4 into currentUser // puts the value of suite variable "usr4" (as stored in "the suiteVariables" property) into the new variable "currentUser"
log currentUser // logs "currentUser", which contains the username for usr4

また、SenseTalkのmerge()関数を使用して、より複雑だが有用な構造でスイート変数にアクセスすることもできます。例えば:

put merge("My base URL is currently [[baseURL]]") // Pulls the value from the suite variable "baseURL"
// Displays: My base URL is currently http://chicago.publicserver.com

上記の例でスイート変数名を囲む二重角括弧([[および]])に注目してください。merge()関数は、これらのデリミタを使用して、何を代替するべきかを評価します。この場合、スイート変数のキーはその値に置き換えられます。

スクリプトでmerge()関数を使用するための他のオプションがあります。詳細は、merge()関数を参照してください。

APIテストでのスイート変数

APIテストエディタビューでは、スイート変数をマージしたり置換したりするために二重角括弧のメソッドも使用できます。例えば、同じ基本URLへのリクエストを行う複数のテストがある場合、リクエストのアドレスバーでスイート変数を使用することができます:

Eggplant Functional API Test Editorのアドレスバーでスイート変数の置換を示しています

上記の例では、リクエストの基本URLはスイート変数によって提供され、ポート番号と追加のパラメータは特定のテストのために入力されます。

APIテストエディタ内では、アドレスバー、Parametersセクション、Authenticationセクション、およびHeadersセクションでスイート変数の置換を使用することができます。API Scriptsセクションでは、SenseTalkスクリプトステップを作成することができ、その他のSenseTalkスクリプトと同じようにここでスイート変数にアクセスできます。また、POST、PUT、PATCHリクエストのRequest Bodyセクションでスイート変数とマージフォーマットを使用することもできます。