API:テスト ケース
テスト ケースに関する情報を取得したり、テスト ケースを作成または変更するには、次の API メソッドを使用します。
get_case
既存のテスト ケースを返します。
GET index.php?/api/v2/get_case/:case_id
:case_id | テスト ケースの ID |
レスポンスの内容
典型的なレスポンスについては、次のサンプルを参照してください。
{ "created_by": 5, "created_on": 1392300984, "custom_expected": "..", "custom_preconds": "..", "custom_steps": "..", "custom_steps_separated": [ { "content": "Step 1", "expected": "Expected Result 1" }, { "content": "Step 2", "expected": "Expected Result 2" } ], "estimate": "1m 5s", "estimate_forecast": null, "id": 1, "milestone_id": 7, "priority_id": 2, "refs": "RF-1, RF-2", "section_id": 1, "suite_id": 1, "title": "Change document attributes (author, title, organization)", "type_id": 4, "updated_by": 1, "updated_on": 1393586511 }
レスポンスには次のシステム項目が常に含まれています。
名前 | タイプ | 説明 |
---|---|---|
created_by | int | テスト ケースを作成したユーザーの ID |
created_on | timestamp | テスト ケースが作成された日時 (UNIX タイムスタンプ) |
estimate | timespan | 見積り時間。例: “30s” や “1m 45s” |
estimate_forecast | timespan | 予想見積り時間。例: “30s” や “1m 45s” |
id | int | テスト ケースの一意の ID |
milestone_id | int | テスト ケースにリンクされているマイルストーンの ID |
priority_id | int | テスト ケースにリンクされている優先度の ID |
refs | string | 参照/要件のカンマ区切りリスト |
section_id | int | テスト ケースが所属するセクションの ID |
suite_id | int | テスト ケースが所属するテスト スイートの ID |
template_id | int | テスト ケースが使用するテンプレート (フィールド レイアウト) の ID (TestRail 5.2 以降が必要) |
title | string | テスト ケースのタイトル |
type_id | int | テスト ケースにリンクされているテスト ケース タイプの ID |
updated_by | int | テスト ケースを最後に更新したユーザーの ID |
updated_on | timestamp | テスト ケースが最後に更新された日時 (UNIX タイムスタンプ) |
レスポンスにはカスタム フィールドも含まれており、先頭に ‘custom_’ を付けたシステム名がフィールド名として使用されます。利用可能なカスタム フィールド タイプの一覧は add_case を参照してください。
レスポンス コード
200 | 成功。テスト ケースがレスポンスの一部として返されます |
400 | 無効または不明なテスト ケース ID です |
403 | プロジェクトにアクセスできません |
get_cases
テスト スイートまたはテスト スイート内の特定のセクションに含まれるテスト ケースのリストを返します (プロジェクトが複数のスイートを有効化している場合)。
GET index.php?/api/v2/get_cases/:project_id&suite_id=:suite_id
:project_id | プロジェクトの ID |
:suite_id | テスト スイートの ID (プロジェクトがシングル スイート モードで動作している場合はオプション) |
リクエスト フィルター
以下のフィルターを適用できます。
名前 | タイプ | 説明 |
---|---|---|
:created_after | timestamp | この日付以降に作成されたテスト ケースのみを返す (UNIX タイムスタンプ) |
:created_before | timestamp | この日付以前に作成されたテスト ケースのみを返す (UNIX タイムスタンプ) |
:created_by | integer (list) | フィルタリングする作成者 (ユーザー ID) のカンマ区切りリスト。 |
:filter | string | ケースのタイトルにフィルターと一致する文字列を含むケースだけを返す。 |
:limit | integer | レスポンスが返すテスト ケースの数 |
:milestone_id | integer (list) | フィルタリングするマイルストーン ID のカンマ区切りリスト (マイルストーン フィールドがプロジェクトで無効化されている場合は使用できません)。 |
:offset | integer | テスト ケースのカウントを開始する位置 (オフセット) |
:priority_id | integer (list) | フィルタリングする優先度 ID のカンマ区切りリスト。 |
:refs_filter | string | 単一の参照 ID (例: TR-1, 4291, など) (TestRail 6.5.2 以降が必要) |
:section_id | integer | The ID of a test case section |
:template_id | integer (list) | フィルタリングするテンプレート ID のカンマ区切りリスト (TestRail 5.2 以降が必要) |
:type_id | integer (list) | フィルタリングするタイプ ID のカンマ区切りリスト。 |
:updated_after | timestamp | この日付以降に更新されたテスト ケースのみを返す (UNIX タイムスタンプ) |
:updated_before | timestamp | この日付以前に更新されたテスト ケースのみを返す (UNIX タイムスタンプ) |
:updated_by | integer (list) | フィルターするテスト ケースを更新したユーザーのカンマ区切りリスト |
例:
# プロジェクトID 1, テストスイートID 2, 優先度 ID 3または4
GET index.php?/api/v2/get_cases/1&suite_id=2&priority_id=3,4
# 取得するテストケース数を10件に制限
GET index.php?/api/v2/get_cases/:project_id&limit=10
# 取得するテストケースのオフセットを設定
GET index.php?/api/v2/get_cases/:project_id&offset=5
# 任意の文字列でテストケースをフィルタリング
GET index.php?/api/v2/get_cases/:project_id&filter=login
# 複数の条件を複合して利用
GET index.php?/api/v2/get_cases/:project_id&offset=:5&limit=:10&filter=:login
レスポンスの内容
レスポンスにはテスト ケースの配列が含まれます。リスト内の各テストケースの形式は、get_case と同じです。
[ { "id": 1, "title": "..", .. }, { "id": 2, "title": "..", .. }, .. ]
注意: 2021 年 2 月 26日から、一括 GET API エンドポイントが返すデータの構造が変更されます。これらの一括エンドポイントは、すべてのエントリの配列ではなく、追加のページ分割フィールドを持つオブジェクトと、250 エンティティまでの配列を返します。新しいレスポンス構造を確認し、必要に応じたコードの変更をテストするには、API リクエストに次のヘッダーと値を含めます: x-api-ident: beta
新しいレスポンスの内容
レスポンスにはテスト ケースの配列が含まれます。各テスト ケースのフォーマットは get_case と同じです。
{ "offset": 0, "limit": 250, "size": 250, "_links": { "next": "/api/v2/get_cases/1&limit=250&offset=250", "prev": null }, "cases": [ { "id": 1, "title": "..", .. }, { "id": 2, "title": "..", .. }, .. ] }
レスポンス コード
200 | 成功。テスト ケースがレスポンスの一部として返されます |
400 | 無効または不明なプロジェクト、テスト スイート、またはセクションの ID です |
403 | プロジェクトにアクセスできません |
get_history_for_case
test case_id の編集履歴を返します。
TestRail 6.5.4 以降が必要です。
GET index.php?/api/v2/get_history_for_case/:case_id
:case_id | テスト ケースの ID |
リクエスト フィルター
以下のリストを適用できます。
名前 | タイプ | 説明 |
---|---|---|
:limit | integer | レスポンスが返すテスト ケースの数 (デフォルトのレスポンスのサイズは 250) (TestRail 6.7 以降が必要) |
:offset | integer | テスト ケースのカウントを開始する位置 (オフセット) (TestRail 6.7 以降が必要) |
レスポンス フィールド
以下のフィールドが返されます。
名前 | タイプ | 説明 |
---|---|---|
id | integer | テスト ケース変更の ID |
created_on | timestamp | 変更が行われたときの UNIX タイムスタンプ |
type_id | integer | 変更タイプ。多くの場合は「更新」を表す 6 (changes 配列の type_id 値は下で説明)。 |
user_id | integer | 変更を実施したユーザー名 |
changes | array | テスト ケースに加えられた変更の詳細の配列 |
changes 配列には以下のフィールドが含まれる可能性があります。
名前 | タイプ | 説明 |
---|---|---|
type_id | integer | 更新されたフィールドのタイプ 1 = string 2 = integer 3 = boolean 4 = date 5 = timespan 6 = text 7 = URL 8 = steps |
old_text | text | 更新されたフィールドの以前のテキスト値 (テキスト フィールドの場合)。 |
new_text | text | 更新されたフィールドの新しいテキスト値 (テキスト フィールドの場合)。 |
label | string | ユーザー インターフェイスに表示されるフィールド ラベル |
options | array | 必須、デフォルト値など、フィールドに設定されたオプションの配列 |
field | string | 更新されたフィールドのシステム名 |
old_value | varies | 更新されたフィールドの以前の値。個別の手順フィールドを含め、テキスト フィールド以外のフィールドの場合に使用されます。値はフィールドタイプに応じてテキストまたは整数です。 |
new_value | varies | 更新されたフィールドの新しい値。個別の手順フィールドを含め、テキスト フィールド以外のフィールドの場合に使用されます。値はフィールドタイプに応じてテキストまたは整数です。 |
レスポンスの内容
レスポンスにはテスト ケースの変更の配列が含まれます。配列の各エントリは変更レコードです。
[ { "id": 3382, "type_id": 6, "created_on": 1597927176, "user_id": 1, "changes": [ { "type_id": 1, "old_text": "Original Section", "new_text": "Updated Section", "field": "section_id", "old_value": 3573, "new_value": 3574 } ] }, { "id": 3389, "type_id": 6, "created_on": 1597932715, "user_id": 1, "changes": [ { "type_id": 1, "field": "refs", "old_value": null, "new_value": "1" } ] }, ... ]
注意: 2021 年 2 月 26日から、一括 GET API エンドポイントが返すデータの構造が変更されます。これらの一括エンドポイントは、すべてのエントリの配列ではなく、追加のページ分割フィールドを持つオブジェクトと、250 エンティティまでの配列を返します。新しいレスポンス構造を確認し、必要に応じたコードの変更をテストするには、API リクエストに次のヘッダーと値を含めます: x-api-ident: beta
新しいレスポンスの内容
レスポンスにはテスト ケースの変更の配列が含まれます。各エントリは変更レコードです。
[ { "offset": 0, "limit": 250, "size": 1, "_links": { "next": null, "prev": null }, "history": [ { "id": 3382, "type_id": 6, "created_on": 1597927176, "user_id": 1, "changes": [ { "type_id": 1, "old_text": "Original Section", "new_text": "Updated Section", "field": "section_id", "old_value": 3573, "new_value": 3574 } {... }, ... ] }, { "id": 3389, "type_id": 6, "created_on": 1597932715, "user_id": 1, "changes": [ { "type_id": 1, "field": "refs", "old_value": null, "new_value": "1" } ] }, ... ] } ]
レスポンス コード
200 | 成功。テスト ケースの変更がレスポンスの一部として返されます |
400 | 無効または不明なテスト ケース ID です |
403 | プロジェクトにアクセスできません |
add_case
新規テストケースを作成します。
POST index.php?/api/v2/add_case/:section_id
:section_id | テスト ケースを追加するセクションの ID |
リクエスト フィールド
以下の POST フィールドがサポートされています (システムフィールド)。
名前 | タイプ | 説明 |
---|---|---|
title | string | テスト ケースのタイトル (必須) |
template_id | int | テンプレート (フィールド レイアウト) の ID (TestRail 5.2 以降が必要) |
type_id | int | テスト ケース タイプの ID |
priority_id | int | テスト ケース優先度の ID |
estimate | timespan | 見積り時間。例: “30s” や “1m 45s” |
milestone_id | int | テスト ケースをリンクするマイルストーンの ID |
refs | string | 参照/要件のカンマ区切りリスト |
カスタム フィールドもサポートされています。システム名の頭に ‘custom_’ を付けて送信します。例:
{ .. "custom_preconds": "These are the preconditions for a test case" .. }
以下のカスタム フィールドタイプがサポートされています。
名前 | タイプ | 説明 |
---|---|---|
Checkbox | bool | オンの場合は true、オフの場合は false |
Date | string | TestRail および API ユーザー用に設定されたのと同じ形式の日付 (例 “07/08/2013”) |
Dropdown | int | フィールド設定で設定されたドロップダウン値の ID |
Integer | int | 有効な整数 |
Milestone | int | カスタム フィールドのマイルストーンの ID |
Multi-select | array | フィールド設定で設定された ID の配列 |
Steps | array | ステップを指定するオブジェクトの配列。以下の例も参照してください。 |
String | string | 最大 250 文字までの有効な文字列 |
Text | string | 長さの制限がない文字列 |
URL | string | URL の構文と一致する文字列 |
User | int | カスタム フィールドのユーザーの ID |
リクエストの例
構造化ステップ カスタム フィールドを使用してステップを送信する方法を示す次の例も参照してください。
{ "title": "This is a test case", "type_id": 1, "priority_id": 3, "estimate": "3m", "refs": "RF-1, RF-2", .. "custom_steps_separated": [ { "content": "Step 1", "expected": "Expected Result 1" }, { "content": "Step 2", "expected": "Expected Result 2" }, .. ] .. }
レスポンスの内容
成功した場合、このメソッドは get_case
と同じレスポンス形式を使用して新しいテスト ケースを返します。
レスポンス コード
200 | 成功。テスト ケースが作成され、レスポンスの一部として返されます |
400 | 無効または不明なセクション ID です |
403 | テスト ケースを追加する権限、またはプロジェクトへのアクセス権がありません |
copy_cases_to_section
テスト ケースのリストを別のスイート/セクションにコピーします。
POST index.php?/api/v2/copy_cases_to_section/:section_id
:section_id | テストケースのコピー先セクションの ID |
リクエスト フィールド
次の POST フィールドがサポートされています (システム フィールド)。
名前 | タイプ | 説明 |
---|---|---|
case_ids | string | カンマ区切りのテスト ケース ID のリスト |
レスポンスコード
200 | 成功。テスト ケースが作成され、レスポンスの一部として返されます |
400 | 無効または不明なセクションです |
403 | テスト ケースを追加する権限、またはプロジェクトへのアクセス権がありません |
update_case
既存のテストケースを更新します (部分的な更新がサポートされています。つまり、特定のフィールドのみを送信して更新できます)。
POST index.php?/api/v2/update_case/:case_id
:case_id | テスト ケースの ID |
このメソッドは add_case
と同じ POST フィールドをサポートします。テスト ケースの section_id
を更新するには、TestRail 6.5.2 以降が必要です。
リクエストの例
テスト ケースの優先順位フィールドと見積りフィールドを更新する方法を示す次の例も参照してください。
{ "priority_id": 1, "estimate": "5m" }
レスポンスの内容
成功した場合、このメソッドは get_case と同じレスポンス形式を使用して更新されたテスト ケースを返します。
レスポンス コード
200 | 成功。テスト ケースが更新され、レスポンスの一部として返されます |
400 | 無効または不明なテスト ケース ID です |
403 | テスト ケースを更新する権限、またはプロジェクトへのアクセス権がありません |
update_cases
テスト ケースのセットに高い優先度を設定する場合など、複数のテスト ケースを同じ値で更新します。複数のテスト ケースをテスト ケースごとに異なる値で更新することはできません。
POST index.php?/api/v2/update_cases/:project_id&suite_id=X
:project_id | プロジェクトの ID |
:suite_id | テスト スイートの ID (プロジェクトが複数スイート モードの場合のみ必須) |
メソッドは add_case と同じ POST フィールドをサポートしています。ケースの section_id
を更新するには、TestRail 6.5.2 以降が必要です。
リクエストの例
テスト ケースの優先順位フィールドと見積りフィールドを更新する方法を示す次の例も参照してください。
{ "priority_id": 1, "estimate": "5m" }
レスポンスの内容
成功した場合、このメソッドは get_case と同じレスポンス形式を使用して新しいテスト ケースを返します。
レスポンス コード
200 | 成功。テスト ケースが更新され、レスポンスの一部として返されます |
400 | 無効または不明なテスト ケース ID です |
403 | テスト ケースを更新する権限、またはプロジェクトへのアクセス権がありません |
move_cases_to_section
テスト ケースを別のスイートまたはセクションに移動します。
POST index.php?/api/v2/move_cases_to_section/:section_id
:section_id | テスト ケースの移動先セクションの ID |
:suite_id | テスト ケースの移動先スイートの ID |
リクエスト フィールド
次の POST フィールドがサポートされています (システム フィールド)。
名前 | タイプ | 説明 |
---|---|---|
case_ids | string | ケース ID のカンマ区切りリスト |
レスポンス コード
200 | 成功。テスト ケースが更新され、レスポンスの一部として返されます |
400 | 無効または不明なテスト ケース ID です |
403 | テスト ケースを更新する権限、またはプロジェクトへのアクセス権がありません |
delete_case
既存のテスト ケースを削除します。
POST index.php?/api/v2/delete_case/:case_id
:case_id | テスト ケースの ID |
Soft パラメーター
soft=1 の場合、影響を受けるテストの数に関するデータを返します。
soft=1 の場合、エンティティは実際には削除されません。
注意: soft パラメーターを省略した場合、または soft=0 をサブミットした場合、テスト ケースは削除されます。
注意:テスト ケースの削除は元に戻すことはできず、アクティブな テスト ラン (まだ閉じられていない (アーカイブされていない) テスト ラン) 内のすべてのテスト結果も永久に削除されます。
レスポンス コード
200 | 成功。テスト ケースは削除されました |
400 | 無効または不明なテスト ケース ID です |
403 | テスト ケースを削除する権限、またはプロジェクトへのアクセス権がありません |
delete_cases
プロジェクトまたはテスト スイートの複数のテスト ケースを削除します。
POST index.php?/api/v2/delete_cases/:project_id&suite_id&soft=1
:project_id | プロジェクトの ID |
:suite_id | テスト スイートの ID (プロジェクトが複数スイート モードの場合のみ必須) |
:soft | オプション パラメーター。soft=1 の場合、削除されるデータに関する情報を返し、削除には進みません。 |
注意:テスト ケースの削除は元に戻すことはできず、アクティブな テスト ラン (まだ閉じられていない (アーカイブされていない) テスト ラン) 内のすべてのテスト結果も永久に削除されます。
リクエストの例
選択されたプロジェクトのケース ID を表示する次の例も参照してください。
{ "case_ids": [1,2,3,...] }
レスポンス コード
200 | 成功。テスト ケースは削除されました |
400 | 無効または不明なテスト ケース ID です |
403 | テスト ケースを削除する権限、またはプロジェクトへのアクセス権がありません |