スクリプトと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
関連: