クラウドランナーテスト生成 REST API
自動テストフレームワーク (ATF) のクラウドランナーで実行されるテストジョブの生成を管理します。
クラウドランナーテスト生成 API には、ATF Test Generator and Cloud Runner (sn_atf_tg) プラグインが必要です。この API で使用できるメソッドは Now 名前空間で実行され、REST API エクスプローラーで API 名、 ATF のワンクリック回帰テストを使用して呼び出すことができます。この API にアクセスするには、admin ロールが必要です。
- テスト生成ジョブを開始します。
- テスト生成ジョブの進捗状況を確認します。
- テスト生成ジョブをキャンセルします。
Cloud Runner テスト生成 API は、クラウドランナーテストランナー REST APIおよび クラウドランナーテストユーザー REST API と連携して使用できます。たとえば、Test Generation 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 | テスト生成の進捗状況を取得できない理由を詳述したエラーメッセージ。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
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| catalogEncodedQuery | テストを生成するカタログアイテムを指定するエンコードクエリ。空の文字列は、すべてのカタログアイテムのデフォルトです。エンコードされたクエリの形成の詳細については、「 Encoded query strings」を参照してください。 データタイプ:文字列 |
| メール | テストの生成が完了したときにアラートを出すメールアドレス。 データタイプ:文字列 |
| maxTestCount | 生成するテスト全体の数。 許容値:1 〜 9999 までの任意の数値。 データタイプ:数値 デフォルト:9999 |
| アイテムあたりの最大テスト数 | カタログアイテムごとに生成するテストの数。 許容値:1 から 10 までの任意の数値。 データタイプ:数値 デフォルト値:10 |
| テーブルあたりの最大テスト数 | テーブルごとに生成するテストの数。 許容値:1 から 10 までの任意の数値。 データタイプ:数値 デフォルト値:10 |
| scopeForGeneratingTests | separateUpdateSetPerScopeが false に設定されている場合は必須です。生成されたすべてのテストを配置するスコープのSys_id。 データタイプ:文字列 |
| separateUpdateSetPerScope | 生成されたテストをそれぞれのスイート、更新セット、およびスコープに分離するか、テストを 1 つのスイート、更新セット、およびスコープに配置するかを示すフラグ。 有効な値:
データタイプ:ブール デフォルト:true |
| tableEncodedQuery | テストを生成するテーブルを指定するエンコードクエリ。空の文字列は、デフォルトですべてのテーブルに設定されます。エンコードされたクエリの形成の詳細については、「 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>
}
}