クラウドランナーテストの生成 REST API
自動テストフレームワーク (ATF) のクラウドランナーで実行されるテストジョブの生成を管理します。
Cloud Runner テスト生成 API には ATF Test Generator and Cloud Runner (sn_atf_tg) プラグインが必要です。この API で利用可能なメソッドは now 名前空間で実行され、REST API エクスプローラーの API 名である ATF のワンクリック回帰テストを使用して呼び出すことができます。この API にアクセスするには、admin ロールが必要です。
- テスト生成ジョブを開始します。
- テスト生成ジョブの進行状況を確認します。
- テスト生成ジョブをキャンセルします。
Cloud Runner Test Generation API は、クラウドランナーテストランナー REST API および クラウドランナーテスト ユーザー REST API と組み合わせて使用できます。たとえば、テスト生成 API を呼び出してテストを実行し、ブラウザーオーケストレーションキュー (Cloud Runner TEST Generation API) でテストの進行状況を取得して、合格または失敗したテストの数を確認できます。
この API のサーバー API リファレンス ドキュメントを表示するには、「 クラウドランナー TestGenerationApi – スコープ付き、グローバル」を参照してください。
クラウドランナーテストの生成:GET /now/sn_atf_tg/test_generation_progress
指定されたブラウザーオーケストレーションキュー (BOQ) レコードに対して生成された各テストのステータスを提供します。
URL 形式
デフォルト URL:GET /api/now/sn_atf_tg/test_generation_progress
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| snboqId | 必須。進捗状況を取得するテスト生成ジョブの BOQ レコードsys_id。 データタイプ:文字列 テーブル:BOQ [sn_atf_tg_sn_boq] |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | BOQ ジョブの進捗状況が正常に取得されました。 |
| 400 | BOQ レコードステータスの取得中にエラーが発生しました。次のメッセージのいずれかを返します。
|
| 403 | エンドポイントへのユーザーアクセスの許可中にエラーが発生しました。ユーザーに admin ロールがあることを確認します。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| 結果 | 生成されたテストジョブの進行状況の結果、または要求が失敗した理由を説明するメッセージを含むオブジェクト。 データタイプ: オブジェクト または: |
| result.message | テスト生成の進行状況を取得できない理由を詳述したエラーメッセージ。正常な応答ではメッセージパラメーターは返されません。 データタイプ:文字列 |
| result.testsSucceeded | 合格した生成済みテストの数。 データタイプ:数値 |
| result.testsFailed | 失敗した生成済みテストの数。 データタイプ:数値 |
| result.testsPending | 生成されたテストを待機しているユースケースの数。 データタイプ:数値 |
| result.testsInProgress | テストが作成されるユースケースの数。 データタイプ:数値 |
| result.testsSkipped | ジョブのキャンセルによりスキップされたテストの数。 データタイプ:数値 |
cURL 要求
次の GET 呼び出しは、snboqId 1234 に関連付けられた生成されたテストに関する進行状況情報を返します。
curl "https://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress?snboqId=1234" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
出力:
{
"result": {
"testsSucceeded": 0,
"testsFailed": 0,
"testsPending": 0,
"testsInProgress": 0,
"testsSkipped": 161
}
}
次の例では、BOQ ID が渡されない場合に 400 エラーメッセージを返します。
curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
応答:
{
"result": {
"message": "No SNBOQ ID passed in, add snboqId to request body"
}
}
次の例では、無効な BOQ ID が渡されると、400 エラーメッセージが返されます。
curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation_progress?snboqId=invalid_sys_id" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
応答:
{
"result": {
"message": "Invalid SNBOQ sys_id passed in"
}
}
クラウドランナーテストの生成:POST /now/sn_atf_tg/cancel_test_generation
テスト生成ジョブとそれに関連する更新セットレコードを完了ステータスに設定します。実行中の生成されたすべてのテストのルートトラッカーをキャンセルします。キャンセル時にテストジョブが進行中の場合、このメソッドは生成された進行中のテストレコードをスキップに設定します。
ビジネスルールまたはアクセス制御ルール (ACL) の問題により、テストは自動的に失敗またはキャンセルされる可能性があります。失敗したテストまたはキャンセルされたテストの詳細については、生成されたテストテーブルを参照してください。
URL 形式
デフォルト URL:POST /api/now/sn_atf_tg/cancel_test_generation
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| snboqId | 必須。キャンセルするブラウザーオーケストレーションキュー (BOQ) レコードのSys_id。 データタイプ:文字列 テーブル:BOQ [sn_atf_tg_sn_boq] |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| Content-Type | 要求本文のデータ形式。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | BOQ ジョブが正常にキャンセルされました。 |
| 400 | ジョブのキャンセル中にエラーが発生しました。次のメッセージのいずれかを返します。
|
| 403 | エンドポイントへのユーザーアクセスの許可中にエラーが発生しました。ユーザーに admin ロールがあることを確認します。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| 結果 | キャンセル要求の結果を含むオブジェクト。 データタイプ: オブジェクト |
| result.message | テストのキャンセルが成功したかどうかを示すメッセージ。 データタイプ:文字列 |
cURL 要求
次の要求は、指定された BOQ レコードのテスト生成ジョブをキャンセルします。
curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{\"snboqId\":\"<sys_id of BOQ record>\"}" \
--user "username":"password"
応答本文は、キャンセルの成功メッセージを返します。
{
"result": {
"message": "success"
}
}
次の例では、BOQ ID が渡されない場合に 400 エラーメッセージを返します。
curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
--request POST \
--header "Accept:application/json" \
--user "username":"password"
応答:
{
"result": {
"message": "No SNBOQ ID passed in, add snboqId to request body"
}
}
次の例では、無効な BOQ ID が渡されると、400 エラーメッセージが返されます。
curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{\"snboqId\":\"invalid_sys_id\"}" \
--user "username":"password"
応答:
{
"result": {
"message": "No SNBOQ ID passed in, add snboqId to request body"
}
}
クラウドランナーテストの生成:POST /now/sn_atf_tg/test_generation
ブラウザーオーケストレーションキュー (BOQ) [sn_atf_tg_sn_boq] テーブルにレコードを挿入して、テストジョブを開始します。
URL 形式
デフォルト URL:POST /api/now/sn_atf_tg/test_generation
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| カタログエンコードクエリ | テストを生成するカタログアイテムを指定するエンコードされたクエリ。空の文字列は、デフォルトですべてのカタログアイテムに設定されます。エンコードされたクエリの形成の詳細については、「 Encoded query strings」を参照してください。 データタイプ:文字列 |
| メール | テストの生成が完了したときにアラートを送信するメールアドレス。 データタイプ:文字列 |
| 最大テスト数 | 生成する全体的なテストの数。 指定できる値:1 〜 9999 の任意の数値。 データタイプ:数値 デフォルト:9999 |
| アイテムごとの最大テスト数 | カタログアイテムごとに生成するテストの数。 指定できる値:1 〜 10 の任意の数。 データタイプ:数値 デフォルト値:10 |
| maxTestCountPerTable | テーブルごとに生成するテストの数。 指定できる値:1 〜 10 の任意の数。 データタイプ:数値 デフォルト値:10 |
| scopeForGeneratingTest | separateUpdateSetPerScope が false に設定されている場合は必須です。生成されたすべてのテストを配置するスコープのSys_id。 データタイプ:文字列 |
| separateUpdateSetPerScope | 生成されたテストをそれぞれのスイート、更新セット、およびスコープに分割するか、またはテストを 1 つのスイート、更新セット、およびスコープに配置するかを示すフラグ。 有効な値:
データタイプ:ブーリアン デフォルト:true |
| テストスイート | オプション。テスト生成によって作成するテストスイートの名前を設定します。 データタイプ:文字列 デフォルト:ATF によって生成されたスイート - <time_stamp> |
| テーブルエンコードクエリ | テストを生成するテーブルを指定するエンコードされたクエリ。空の文字列は、デフォルトですべてのテーブルに設定されます。エンコードされたクエリの形成の詳細については、「 Encoded query strings」を参照してください。 データタイプ:文字列 |
| userEncodedQuery | テストを生成するユーザーを指定するエンコードされたクエリ。空の文字列入力は、デフォルトですべてのテーブルに設定されます。エンコードされたクエリの形成の詳細については、「 Encoded query strings」を参照してください。 データタイプ:文字列 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| Content-Type | 要求本文のデータ形式。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | テスト生成 BOQ ジョブが正常に挿入されました。エラーは、処理中に BOQ レコードログに表示されます。[すべての入力] では、デフォルトですべてのテーブルとサービスカタログアイテムに対して最大数のテストが生成されます。 |
| 403 | エンドポイントへのユーザーアクセスの許可中にエラーが発生しました。ユーザーに admin ロールがあることを確認します。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| 結果 | 要求の結果を含むオブジェクト。データタイプ: オブジェクト |
| result.snboqId | テスト生成の開始時にsn_atf_tg_sn_boqテーブルに挿入されるレコードのSys_id。 データタイプ:文字列 |
cURL 要求
次の要求例では、要求パラメーターなしでインスタンスで新しいテストジョブを開始し、BOQ テーブルにジョブを挿入します。
curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation" \
--request POST \
--header "Accept:application/json" \
--user "username":"password"
応答本文:
{
"result": {
"snboqId": <sys_id of newly inserted BOQ record>
}
}
次の要求例では、最大テスト数が 2 の新しいテストジョブを開始し、テストをインシデントテーブルにフィルタリングしてから、ジョブを BOQ テーブルに挿入します。
curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{\"maxTestCount\":\"2\",\"tableEncodedQuery\":\"name=incident\",\"testSuite\":\"Suite123\"}" \
--user "username":"password"
応答本文:
{
"result": {
"snboqId": <sys_id of newly inserted BOQ record>
}
}