目次
概要
MagicPod Web APIを使用してテストを実行する際は、テスト設定に関する情報をリクエストボディとして送信する必要があります。このとき、テスト設定は基本的に以下のいずれかの方法で指定します。
- あらかじめ一括実行設定を作成しておき、実行時にはその一括実行設定番号を指定する
- 実行時に個別の設定項目をそれぞれ記述する
前者は、Web画面上で作成・編集した設定をそのまま使用できるというメリットがあり、推奨されています。
しかしながら、一括実行設定で事前に設定した共有変数の値を上書きしたい場合など、実行時に一括実行設定の内容を一部だけ変更してテストしたいケースもあります。
MagicPod Web APIのうち、Cross Batch Run APIでは一括実行設定番号を指定してその設定内容をベースとしながら、必要な項目だけを部分的に上書きしてテストを実行することが可能です。
なお、MagicPod Web APIはクラウド環境および外部クラウド環境のみに対応しているため、ローカルPC環境では現状、一括実行設定番号を指定しつつ一部設定を上書きしてテストすることはできません。
この点は課題として認識しており、機能要望として起票済みです。実装をご希望の場合は、こちらからご投票ください。(投票方法についてはこちら。)
実装方法
1. curl 形式 (Mac / Linux ターミナル)
主な実装方法についてはこちらをご参照ください。
コマンドのリクエストボディ(-d)にて、以下をそれぞれ指定します。
-
test_settings_number:ベース設定として使用する「一括実行設定番号」を指定します。 -
test_settings:上書きしたい 個別の設定項目 を記載します。
(一括実行設定番号は、一括実行設定画面に表示される設定名の先頭についている数字を指します。)
例として、以下のようなコマンドになります。
curl -X 'POST' 'https://app.magicpod.com/api/v1.0/<組織名>/<プロジェクト名>/cross-batch-run/'
-H 'Authorization: Token <APIトークン>'
-H 'Content-Type: application/json'
-d '{
"test_settings_number": <一括実行設定番号>,
"test_settings": [
{
"<上書きする項目名>": "<値>"
}
]
}'実際のコマンド例を紹介します。
コマンド例 一括実行設定番号 : 1 、実行対象のテストケース番号(1, 2, 3)を指定してテストしたい場合
SECRET_API_TOKEN="<APIトークン>"
STATUS_CODE=$(curl -sS -o /dev/stderr -w %{http_code} -X \
POST https://app.magicpod.com/api/v1.0/<組織名>/<プロジェクト名>/cross-batch-run/ \
-H "Authorization: Token ${SECRET_API_TOKEN}" \
-d "{
\"test_settings_number\": 1,
\"test_settings\":[
{
\"test_case_numbers\":\"1, 2, 3\"
}
]
}")
test "$STATUS_CODE" = "200"(上記コマンドは、<APIトークン>、<組織名>、<プロジェクト名> の部分をそれぞれご自身のものに置き換えることでそのままご使用いただけます。test_settings_numberの値および test_settings 以下の内容についても、ご自身の実行設定に合わせて変更してください。)
その他の個別設定項目の記載方法は、「一括実行設定」>「3点リーダ」>「コマンドラインで実行」より、実行方法に「curlで実行 (Mac/Linuxターミナル) (詳細設定)」を選択した際に表示されるコマンドを参照してください。
2. Invoke-RestMethod 形式 (Win PowerShell)
主な実装方法についてはこちらをご参照ください。
コマンドのリクエストボディ(-Body)にて、以下をそれぞれ指定します。
-
test_settings_number:ベース設定として使用する「一括実行設定番号」を指定します。 -
test_settings:上書きしたい 個別の設定項目 を記載します。
一括実行設定番号は、一括実行設定画面に表示される設定名の先頭についている数字を指します。)
例として、以下のようなコマンドになります。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod
-Method POST
-Uri https://app.magicpod.com/api/v1.0/<組織名>/<プロジェクト名>/cross-batch-run/
-Headers @{"Authorization" = "Token " + <APIトークン>}
-Body "{
"test_settings_number": <一括実行設定番号>,
"test_settings": [
{
"<上書きする項目名>": "<値>"
}
]
}"実際のコマンド例を紹介します。
コマンド例 一括実行設定番号 : 1 、実行対象のテストケース番号(1, 2, 3)を指定してテストしたい場合
$SECRET_API_TOKEN = "<APIトークン>"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod
-Method POST
-Uri https://app.magicpod.com/api/v1.0/<組織名>/<プロジェクト名>/cross-batch-run/
-Headers @{"Authorization" = "Token " + ${SECRET_API_TOKEN}}
-Body "{
`"test_settings_number`": 1,
`"test_settings`": [
{
`"test_case_numbers`":`"1, 2, 3`"
}
]
}"(上記コマンドは、<APIトークン>、<組織名>、<プロジェクト名> の部分をそれぞれご自身のものに置き換えることでそのままご使用いただけます。test_settings_numberの値および test_settings 以下の内容についても、ご自身の実行設定に合わせて変更してください。)
その他の個別設定項目の記載方法は、「一括実行設定」>「3点リーダ」>「コマンドラインで実行」より、実行方法に「Invoke-RestMethodで実行 (Win PowerShell) (詳細設定)」を選択した際に表示されるコマンドを参照してください。
3. magicpod-api-client 形式
主な実装方法についてはこちらをご参照ください。
コマンドのオプションにて、以下をそれぞれ指定します。
-
-S:ベース設定として使用する「一括実行設定番号」を指定します。 -
-s:上書きしたい個別の設定項目をtest_settingsパラメータ内に記載します。
(一括実行設定番号は、一括実行設定画面に表示される設定名の先頭についている数字を指します。)
例として、以下のようなコマンドになります。
./magicpod-api-client batch-run
-t <APIトークン>
-o <組織名>
-p <プロジェクト名>
-S <一括実行設定番号>
-s "{
"test_settings": [
{
"<上書きする項目名>": "<値>"
}
]
}"実際のコマンド例を紹介します。
コマンド例 一括実行設定番号 : 1 、実行対象のテストケース番号(1, 2, 3)を指定してテストしたい場合
SECRET_API_TOKEN="<APIトークン>"
./magicpod-api-client batch-run \
-t ${SECRET_API_TOKEN} \
-o <組織名> \
-p <プロジェクト名> \
-S 1 \
-s "{
\"test_settings\": [
{
\"test_case_numbers\":\"1, 2, 3\"
}
]
}"(上記コマンドは、<APIトークン>、<組織名>、<プロジェクト名> の部分をそれぞれご自身のものに置き換えることでそのままご使用いただけます。test_settings_numberの値および test_settings 以下の内容についても、ご自身の実行設定に合わせて変更してください。)
その他の個別設定項目の記載方法は、「一括実行設定」>「3点リーダ」>「コマンドラインで実行」より、実行方法に「magicpod-api-clientで実行 (詳細設定)」を選択した際に表示されるコマンドを参照してください。
4. 共有変数を上書きする際の注意点
共有変数を上書きする場合、test_settings 下には変更したい変数だけではなく、一括実行設定で設定している共有変数をすべて記載する必要があります。
一部の変数だけを指定すると、指定していない共有変数は引き継がれません。
例として、一括実行設定で以下の3つの共有変数が設定されているケースを考えます。
この状態で、USERNAME の値だけを変更したいと考え、test_settings の shared_variables に USERNAME のみを指定してテストを実行すると、指定した USERNAME だけが設定され、EMAIL や PASSWORD は引き継がれません。
これは、shared_variables に指定した内容が、一括実行設定で設定されている共有変数全体を置き換える形で反映されるためです。
そのため、共有変数を上書きする場合は、変更したい変数だけではなく、一括実行設定で設定している共有変数をすべて shared_variables に記載し、そのうえで必要な変数の値だけを変更してください。
この点についても課題として認識しており、機能要望として起票済みです。実装をご希望の場合は、こちらからご投票ください。(投票方法についてはこちら。)