スクリプトとAPIの呼び出し
以下のSenseTalkコマンドを
Runコマンド
挙動:別のスクリプトを、それがまるでコマンドであるかのように呼び出します。呼び出されたスクリプト内でエラーまたは例外が発生する場合は、呼び出したスクリプトも失敗となります。呼び出されたスクリプト内で捕捉されていない例外が存在する場合は、実行を終了します。
パラメータ:スクリプト名1つと、呼び出されたスクリプトが受け取ることができるパラメータ値。
構文:
例:
Run "Logout Procedure"//名前が「Logout Procedure」のスクリプトを呼び出します
例:
Run "Login", "SusanG76", "password123!@#"//名前が「Login」 でパラメータ値が「SusanG76」と「password123!@#」のスクリプトを呼び出します
例:
Login "SusanG76", "password123!@#"
例:
Run "ValidateOutput"//名前が「ValidateOutput」でコンテンツの戻り値が「Test passed!」のスクリプトを呼び出します
put the result into FormOutput//文字列「Test passed!」を 変数に格納します
RunFeatureコマンド
挙動:本コマンドは、フィーチャがまるでコマンドであるかのように、Gherkin Feature(.featureファイル)を呼び出します。本コマンドを利用して、ユーザーはSenseTalkスクリプトからフィーチャをトリガすることができます。フィーチャを実行する場合は、RunWithNewResultsによるスクリプトの実行と同様に、独自の結果ファイルが生成されます。
パラメータ:(必須)フィーチャ名1つ(オプションで任意の数のタグを含めることができます)。タグの前にチルダ(~)を使用すると、そのタグを含めるのではなく、除外することができます。
構文:
RunFeature "featureName", "@tag1,@orTag2 @andTag3", "@andTag4"
1組の引用符の中に複数のタグを含めることができます。コンマで区切られたタグは、OR論理に従います。スペースで区切られたタグは、AND論理に従います。ORおよびAND条件の両方が存在する場合は、常にORが先行して先に評価されます。別々の引用符にパラメータを入れる場合は、AND条件が強制されます。
例:
RunFeature FeatureTest1
例:
RunFeature "FeatureTest1", "@important,@regression" // FeatureTest1の中で、@importantタグまたは@regressionタグのいずれかを含むをエレメントのみを実行します
例:
RunFeature "FeatureTest1", "@important,@regression" // FeatureTest1の中で、@importantタグを含むが@regressionタグは含まないエレメントのみを実行します
例:
RunFeature "AccountingApp" "@over,@rcvd" "@billing" //実行するAccountingAppのエレメントは、@billingタグと、@overタグまたは@rcvdタグのいずれかを含む必要があります
関連:
RunWithNewResultsコマンド
挙動:Runコマンドで呼び出されるスクリプト(呼び出したスクリプトの一部として記録される)とは対照的に、独自の結果ログを生成する別のスクリプトを実行します。RunWithNewResultsコマンドは、ScriptResults()関数と同様の結果のプロパティリストを返します。詳細情報は、ScriptResults()関数と結果のプロパティを参照してください。呼び出されたスクリプトが失敗しても、呼び出したスクリプトは自動的に失敗したり、例外を上げたりしません。ユーザーは結果のプロパティリストから返されるステータスプロパティに基づき、この挙動を記述できます。
パラメータ:スクリプト名1つと、実行に必要な任意のパラメータ。
構文:
戻り値:結果のプロパティリスト。詳細情報は、ScriptResults()関数を参照してください。
例:
RunWithNewResults "Logout"//名前が「Logout」のスクリプトを呼び出し、個別の結果を作成します
例:
RunWithNewResults "Login", "SusanG76", "password123!@#"//名前が「Login」で、パラメータ値が「SusanG76」と「password123!@#」のスクリプトを呼び出し、個別の結果を作成します
例:
put ("Member.txt", "Administrator.txt") into UserEnvironmentsList//ファイル名を表す文字列のリストを、名前がUserEnvironmentsListの変数に格納します
repeat with each item of UserEnvironmentsList//UserEnvironmentsList内の文字列のリストの各アイテムを反復処理します
RunWithNewResults "ConfigureEnvironment", it//名前が「ConfigureEnvironment」のスクリプトを呼び出し、「it」変数を使用して文字列をスクリプトに渡します
end repeat
例:
RunWithNewResults "Login"
if the result's status is "failure" then//ステータスプロパティの値をチェックして、失敗かどうかを確認します
LogError "Login failed. Performing cleanup."
CleanupScript//ステータスが失敗の場合は、名前がCleanupScriptのスクリプトを実行します
end if
例:
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
戻り値:以下の値を含むプロパティリスト。
- authenticationType:リクエストに使用する認証タイプを返します。
- httpMethod:リクエストタイプ(GET、POSTなど)を返します。
- mimeType:応答に使用するMIMEタイプを返します。
- oauth1Token:OAuth 1.0が認証方法の場合はトークンを返し、それ以外の場合はemptyを返します。
- password:パスワードを認証に使用する場合は編集済みの文字列を返し、それ以外の場合はemptyを返します。
- requestBody:POST、PUTおよびPATCHリクエストのボディコンテンツを返し、それ以外の場合はemptyを返します。
- requestBodyFormat:リクエストのボディセクションで選択されたボディフォーマットのタイプを返します。リスエストにボディコンテンツが存在しない場合は、返される値は、直近で選択したボディフォーマットのタイプとなります。
- requestHeaders:キー/値のペアとして、リクエストのヘッダーセクションに入力されたヘッダーを返し、それ以外の場合はemptyを返します。
- responseBody:サーバーの応答データを返します。
- responseCookies:存在する場合は、応答内のcookieに関する詳細を返します。
- responseHeaders:キー/値のペアとして応答ヘッダーを返します。
- responseTime:サーバーからのリクエストへの応答時間(単位:秒)を返します。
- statusCode:サーバーから受け取るステータスコード(200、404など)を返します。
- url:リクエストのURLを返します。
- userName:認証用のユーザー名(使用する場合)を返し、それ以外の場合はemptyを返します。
例:
log api() //直近のAPIテストから返された値の完全なリストをログに記録します
例:
put api().statusCode into RetStatus // 最後のAPIテストからのサーバーのステータスコードを変数RetStatusに入れます
例:
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 "
assert that res.statusCode is 200
関連: