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

スクリプトとAPI呼び出し

Eggplant Functionalで他のスクリプトやAPIテストを呼び出すために、以下のSenseTalkコマンドを使用してください。

Runコマンド

Behavior: スクリプトがコマンドであるかのように他のスクリプトを呼び出します。呼び出されたスクリプト内でエラーや例外が発生した場合、呼び出し元のスクリプトも失敗します。呼び出されたスクリプト内で捕捉されていない例外がある場合、実行は停止します。

Parameters: 一つのスクリプト名と、呼び出されるスクリプトが受け取ることができるパラメータ値。

Syntax:
Run scriptName

Example:

Run "Logout Procedure" // "Logout Procedure"という名前のスクリプトを呼び出す

Example:

Run "Login", "SusanG76", "password123!@#" // パラメータ値"SusanG76"と"password123!@#"で"Login"という名前のスクリプトを呼び出す
先端

SenseTalkリファレンスドキュメンテーションでrun commandについてもっと読む。

先端

もし他のスクリプトが現在のスクリプトと同じスイート(または関連するヘルパースイート)に位置していて、その名前が文字で始まり、文字、数字、アンダースコアのみを含む場合、現在のスクリプトでコマンドとして呼び出すことができます。(Runコマンドを使う必要はありません。呼び出しているスクリプトの名前だけを使い、その後に任意のパラメータを続けます。)

Example:

Login "SusanG76", "password123!@#"
先端

呼び出しているスクリプトにリターンがある場合、the resultを使ってリターンをキャプチャすることができます。

Example:

Run "ValidateOutput" // 'return "Test passed!"'という内容で"ValidateOutput"という名前のスクリプトを呼び出す
put the result into FormOutput // 文字列"Test passed!"を変数に保存します

RunFeatureコマンド

Behavior: このコマンドは、Feature(.featureファイル)をコマンドであるかのように呼び出します。このコマンドを使うと、SenseTalkスクリプトからFeatureをトリガーすることができます。Featureが実行されると、自身の結果ファイルを生成します。これはRunWithNewResultsでスクリプトを実行するのに似ています。

Parameters: 一つのFeature名(必須);必要に応じて、任意の数のタグを含めることができます。タグの前にチルダ(〜)を付けると、それは除外するためのもので、含めるためのものではありません。

ノート

コマンドラインからGherkin Featuresを実行する場合、コマンドライン呼び出しに渡される任意のパラメータ(Eggplant Managerを経由して実行されるテストを含む)は、SenseTalkスクリプト内で渡されるタグとしてのパラメータよりも優先されます。

Syntax:
RunFeature featureName, "@tag1,@orTag2 @andTag3", "@andTag4"

一組の引用符の中に複数のタグを含めることができます。カンマで区切られたタグはOR論理に従います。スペースで区切られたタグはAND論理に従います。もしORとANDの両方の条件が存在する場合、ORは常に優先され、最初に評価されます。パラメータを別の一組の引用符内で結合すると、AND条件が強制されます。

Example:

RunFeature FeatureTest1

Example:

RunFeature "FeatureTest1", "@important,@regression" // FeatureTest1を実行しますが、その中の要素は@importantタグまたは@regressionタグが付けられているものだけです

Example:

RunFeature "FeatureTest1", "@important ~@regression" // FeatureTest1を実行しますが、その中の要素は@importantタグが付けられ、@regressionタグが付けられていないものだけです

Example:

RunFeature "AccountingApp" "@over,@rcvd" "@billing" // AccountingAppからの要素は、実行に必要な要素には@billingタグが必要で、さらに@overタグまたは@rcvdタグのいずれかが必要です

関連:

RunWithNewResults コマンドまたは関数

パラメータ: スクリプト名一つと、それが実行するために必要なパラメータ。

パラメータ: なし

構文:
RunWithNewResults scriptName

関数として:
RunWithNewResults( scriptName )

戻り値: 結果プロパティリスト。詳細については、ScriptResults Functionを参照してください。

Example:

RunWithNewResults "Logout" // "Logout"という名前のスクリプトを呼び出し、それに対して別の結果セットを作成します

Example:

RunWithNewResults "Login", "SusanG76", "password123!@#" // "SusanG76"と"password123!@#"というパラメータ値で"Login"という名前のスクリプトを呼び出し、それに対して別の結果セットを作成します

Example:

put ["Member.txt", "Administrator.txt"] into UserEnvironmentsList // UserEnvironmentsListという変数に、ファイル名を表す文字列のリストを格納します
// UserEnvironmentsListという変数に、ファイル名を表す文字列のリストを格納します
repeat with each item of UserEnvironmentsList // UserEnvironmentsList内の文字列リストの各アイテムで反復処理を行います
RunWithNewResults "ConfigureEnvironment", it // "ConfigureEnvironment"という名前のスクリプトを呼び出し、"it"変数を使用して文字列をスクリプトに渡します
end repeat
先端

RunWithNewResultsとその結果プロパティリストを使用して、結果のプロパティに基づくアクションを持つ洗練された主制御スクリプトやカスタムレポートを作成することができます。たとえば、前のスクリプトが成功した場合には1つのスクリプトを呼び出し、失敗した場合には別のスクリプトを呼び出すことができます。

Example:

RunWithNewResults "Login"
if the result's status is "failure" then // ステータスプロパティの値を確認して、それが失敗であるかどうかを確認します
LogError "Login failed. Performing cleanup."
CleanupScript // ステータスが失敗である場合に、CleanupScriptという名前のスクリプトを実行します
end if

Example:

set ResultFile to ResourcePath("myTestResults.csv") // myTestResultsリソースファイルのファイルパスを変数に格納します
RunWithNewResults "Login"
set myResult to the result // RunWithNewResultsの結果をmyResultという名前の変数に格納します
put "Login" &comma & myResult.runDate & comma & myResult.status & CRLF after file ResultFile // myResultの内容に基づいてリソースファイルの末尾に新しい行を書き出します

API 関数

動作: APIテストのすべてのプロパティ、リクエストとレスポンスの両方にアクセスすることができます。この関数は最後に実行されたAPIテストに関する情報を返します。

戻り値: 以下の値を含むプロパティリスト:

構文:
api()
the api

挙動: 自己の結果ログを生成する他のスクリプトを実行します。これは、Runコマンドで呼ばれるスクリプトとは違い、呼び出しスクリプトの一部としてログに記録されます。 RunWithNewResultsコマンドはScriptResults関数に似た結果プロパティリストを返します。詳細については、ScriptResults 関数結果プロパティを参照してください。呼び出されたスクリプトが失敗した場合でも、呼び出しスクリプトは自動的に失敗したり例外を引き起こしたりはしません。結果プロパティリストから返されるStatusプロパティに基づいてこの挙動をスクリプト化することができます。

  • authenticationType: リクエストに使用された認証タイプを返します。
  • httpMethod: リクエストタイプ(例:GET、POST)を返します。
  • mimeType: レスポンスで使用されたMIMEタイプを返します。
  • oauth1Token: OAuth 1.0が認証方法である場合はトークンを返し、そうでない場合は空を返します。
  • password: 認証にパスワードが使用されている場合は、赤字で文字列を返し、そうでない場合は空を返します。
  • requestBody: POST、PUT、PATCHリクエストのリクエストボディ内容を返します。それ以外の場合は空を返します。
  • requestBodyFormat: リクエストボディセクションで選択されたボディフォーマットタイプを返します。ボディコンテンツがないリクエストの場合、返される値は最近選択されたボディフォーマットタイプです。
  • requestHeaders: リクエストヘッダーセクションに入力された任意のヘッダーをキー/値のペアとして返します。それ以外の場合は空を返します。
  • responseBody: サーバーからのレスポンスデータを返します。
  • responseCookies: 必要に応じてレスポンスのクッキーに関する詳細を返します。
  • responseHeaders: レスポンスヘッダーをキー/値のペアとして返します。
  • responseTime: サーバーからのリクエストからのレスポンス時間を秒単位で返します。
  • statusCode: サーバーから受け取ったステータスコードを返します(例:200、404)。
  • url: リクエストURLを返します。
  • userName: 認証用に使用されるユーザー名を返します(使用される場合);そうでない場合は空を返します。

Example:

log api() // 最近のAPIテストから返された値の全リストを記録します

Example:

put api().statusCode into RetStatus // 最後のAPIテストからのサーバーステータスコードをRetStatus変数に入れます

Example:

put api() into res
put res.keys
put res.responseHeaders.archive
put res.responseHeaders into headers
assert that "content-length" of headers is 339
assert that res.responseBody contains "Bad Request"
assert that res.statusCode is 200

関連: