APIテストの実行
Eggplant FunctionalのAPIテストエディタでAPIテストを実行および編集できます。また、SenseTalkスクリプト、スケジュール、コマンドラインからAPIテストを呼び出すこともできます。
SenseTalkスクリプトからAPIテストを実行する
SenseTalkスクリプトからAPIテストを呼び出すのは、SenseTalkスクリプトから別のSenseTalkスクリプトを呼び出すのと同じように機能します。
このスクリプトは、ApiTest1
という名前のAPIテストを呼び出し、そのURL、レスポンスヘッダー、およびレスポンスボディを返します。
例:
put ApiTest1() into foo
put foo.url
put foo.responseHeaders
put foo.responseBody
API関数
[api()関数](/studio/ja/stk-script-calling#apifunction)を使用して、APIテストのすべてのプロパティ(リクエストとレスポンスの両方)にアクセスします。この関数は常に最後に実行されたAPIテストからのプロパティを返すため、後で使用する場合は、個々のテストからのプロパティを変数として保存しておくことが望ましいでしょう。この例では、
ApiTest1というAPIテストを実行し、
api関数を使用して、
TimeVar`という変数にレスポンス時間を保存します。
例:
ApiTest1
put api().responseTime into TimeVar
api()
関数は、最後のAPIテストから以下の値を含むプロパティリストを返します。
- authenticationType: リクエストに使用された認証タイプを返します。
- httpMethod: リクエストタイプ(GET、POSTなど)を返します。
- mimeType: レスポンスで使用されるMIMEタイプを返します。
- oauth1Token: OAuth 1.0が認証方法の場合、トークンを返します。それ以外の場合は空です。
- password: 認証にパスワードが使用されている場合、検閲された文字列を返します。それ以外の場合は空です。
- requestBody: POST、PUT、PATCHリクエストのリクエスト本文を返します。それ以外の場合は空です。
- requestBodyFormat: リクエストBodyセクションで選択されたBody Formatタイプを返します。本文内容がないリクエストの場合、返される値は最後に選択されたBody Formatタイプです。
- requestHeaders: リクエストHeadersセクションで入力されたヘッダーをキー/値のペアとして返します。それ以外の場合は空です。
- responseBody: サーバーからのレスポンスデータを返します。
- responseCookies: 必要に応じて、レスポンス内のCookieに関する詳細を返します。
- responseHeaders: レスポンスヘッダーをキー/値のペアとして返します。
- responseTime: サーバーからのリクエストのレスポンス時間を秒単位で返します。
- statusCode: サーバーから受信したステータスコードを返します(例:200、404)。
- url: リクエストURLを返します。
- userName: 認証に使用されるユーザー名を返します(使用されている場合)。それ以外の場合は空です。
APIテストプロパティの上書き
SenseTalkを使用して、APIテストのプロパティを上書きできます。これらのプロパティのリストを表示するには、まずAPIテストを実行します。次に、put api().keys.archive
を実行します。この関数は、設定できるプロパティ(キー)のリストを返しますが、参照されたAPIテストに入力された値ではありません。
これらのプロパティを上書きするには 、関数呼び出しで辞書として提供します。この例では、myApiTest
というAPIテストで使用されるURLとユーザー名を上書きします。
例:
myApiTest(url: "http://www.google.com", username: "documentation")
APIテストの連鎖
Script Editor内のSenseTalkスクリプトでAPIテストを連鎖させることができます。これにより、SenseTalkを使用した大規模なテストで、APIテストの結果を使用できます。次の例では、Get_BasicAuth_json
とHead_BasicAuth_json
という2つのAPIテストの結果を、エラートラッキングシステムの大規模なテ ストの一部として使用しています。
例:
log "````````````````````````-----"
log " Feature #XXXX"
log " Support for Basic Authentication"
log "````````````````````````------"
BeginTestCase "Basic Authentication - Valid Authentication - Get Request"
Get_BasicAuth_json
EndTestCase "Basic Authentication - Valid Authentication - Get Request"
BeginTestCase "Basic Authentication - Valid Authentication - Head Request"
Head_BasicAuth_json
EndTestCase "Basic Authentication - Valid Authentication - Head Request"
BeginTestCase "Basic Authentication - Invalid Authentication"
set the suiteVariables.username to "xxxxx"
Get_BasicAuth_json
EndTestCase "Basic Authentication - Invalid Authentication"
コマンドラインからAPIテストを実行する
[runscriptコマンド](/studio/ja/epf-runscript-command-options)を使って、コマンドラインからAPIテストを実行します。
-CommandLineOutput`フラグを使って、スクリプトログを出力します。
例:
Mac (bash shell):
/Applications/Eggplant.app/Contents/MacOS/runscript /Users/Bob/Documents/APITesting.suite/APITests/ApiTest2.apitest -CommandLineOutput yes
Windows (command shell):
"C:\Program Files\Eggplant\runscript.bat" "C:\Users\Bob\Documents\APITesting.suite\APITests\ApiTest1.apitest" -CommandLineOutput yes
Linux (bash shell):
runscript ~/Documents/APITesting.suite/APITests/Untitled.apitest -CommandLineOutput yes
また、コマンドラインからAPIテストで設定したパラメータを上書きすることもできます。
例:
Mac (bash shell):
/Applications/Eggplant.app/Contents/MacOS/runscript /Users/Bob/Documents/APITesting.suite/APITests/ApiTest2.apitest -pv '(url:"http://chicago.publicserver.com/issues/14618.xml")' -CommandLineOutput Yes
Windows (command shell):
"C:\Program Files\Eggplant\runscript.bat" "C:\Users\Bob\Documents\AutoDoctorScreenshots.suite\APITests\JsonGet.apitest" -pv (url:\"http://chicago.publicserver.com/issues/14920.xml\") -CommandLineOutput Yes
Linux (bash shell):
runscript ~/Documents/APITesting.suite/APITests/Untitled.apitest -pv '(url:"http://chicago.publicserver.com/issues/14920.xml")' -CommandLineOutput yes
スケジュールからAPIテストを実行する
スケジュールを使用して、実行するAPIテストとスクリプトのコレクション、実行順序、パラメータや依存性を定義します。スケジュールペインからスケジュールにアクセスします。
テストやスクリプトの実行結果の詳細を表示するには、Status列の右側の矢印をクリックします。APIテストのスケジュールを実行するために、システムアンダーテスト(SUT)に接続する必要はありません。
APIテストのパスワード保存と暗号化
sensetalk
password
Eggplant Functionalを使用して、パスワードをエンコードおよびデコードできます。
ステップバイステップ:パスワードのエンコード
-
Runウィンドウを開きます。Ad Hoc Do Boxに次のコードを入力し、Doをクリックします。
log
encodeText(
"my password"
) -
ログペインからエンコードされたパスワードをコピーします。
-
設定タブを開き、スイート変数セクションのValueフィールドにエンコードされたパスワードを貼り付けます。対応するKeyフィールドにパスワード変数の名前を入力します。
-
スイート変数を使用してAPIテストのパスワードプロパティをオーバーライドするには、APIスクリプトまたはSenseTalkスクリプトで
decodeText
関数を使用します。put decodetext(MyPwd) into myPassword
ApiTest1(password: myPassword)