ページを選択

API: テスト ケース

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 テスト ケースを削除する権限、またはプロジェクトへのアクセス権がありません