از متدهای API زیر برای دریافت جزئیات test runها و ایجاد یا ویرایش test runها استفاده کنید.
get_run #
یک test run موجود را برمیگرداند. برای دیدن فهرست testهای موجود در این run، get_tests را ببینید.
GET index.php?/api/v2/get_run/{run_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| run_id | integer | true | ID test run |
نمونه درخواست:
# Get the test run with an ID of 42
GET index.php?/api/v2/get_run/42
محتوای پاسخ #
نمونه پاسخ:
{
"id": 9942,
"name": "Test Run Name",
"description": null,
"suite_id": 10,
"project_id": 3,
"plan_id": null,
"milestone_id": null,
"assignedto_id": null,
"include_all": false,
"is_completed": false,
"completed_on": null,
"is_archived": false,
"archived_on": null,
"config": null,
"config_ids": [],
"passed_count": 0,
"blocked_count": 0,
"untested_count": 46,
"retest_count": 0,
"failed_count": 0,
"created_by": 376,
"created_on": 1775495967,
"updated_on": 1775495967,
"refs": null,
"url": "https://test.testrail.io/index.php?/runs/view/123",
"start_on": null,
"due_on": null,
"dynamic_filters": {
"mode": "1",
"filters": {
"cases:custom_automationmark": { "mode": "1", "values": ["13"] },
"cases:created_by": { "values": ["409", "376"] }
}
},
"custom_status1_count": 0,
"custom_status2_count": 0,
"custom_status3_count": 0,
"custom_status4_count": 0,
"custom_status5_count": 0,
"custom_status6_count": 0,
"custom_status7_count": 0,
"dataset_id": null
}
فیلدهای سیستمی زیر همیشه در پاسخ وجود دارند:
| نام | نوع | توضیح |
|---|---|---|
| assignedto_id | integer | ID کاربری که کل test run به او واگذار شده است |
| blocked_count | integer | تعداد testهای این test run که با status blocked علامتگذاری شدهاند |
| completed_on | timestamp | تاریخ/زمان بسته شدن test run، بهصورت UNIX timestamp |
| config | string | configuration این test run بهصورت string، اگر بخشی از یک test plan باشد |
| config_ids | array | آرایهای از IDهای configurationهای این test run، اگر بخشی از یک test plan باشد |
| created_by | integer | ID کاربری که test run را ایجاد کرده است |
| created_on | timestamp | تاریخ/زمان ایجاد test run، بهصورت UNIX timestamp |
| custom_status?_count | integer | تعداد testهای این test run با custom status مربوطه |
| description | string | توضیح test run |
| failed_count | integer | تعداد testهای این test run که با status failed علامتگذاری شدهاند |
| id | integer | ID یکتای test run |
| include_all | boolean | اگر test run شامل همه test caseها باشد true است؛ در غیر این صورت false است |
| is_completed | boolean | اگر test run بسته شده باشد true است؛ در غیر این صورت false است |
| milestone_id | integer | ID milestoneای که این test run به آن تعلق دارد |
| plan_id | integer | ID test planای که این test run به آن تعلق دارد |
| name | string | نام test run |
| passed_count | integer | تعداد testهای این test run که با status passed علامتگذاری شدهاند |
| project_id | integer | ID projectی که این test run به آن تعلق دارد |
| retest_count | integer | تعداد testهای این test run که با status retest علامتگذاری شدهاند |
| suite_id | integer | ID test suiteای که این test run از آن ساخته شده است |
| untested_count | integer | تعداد testهای این test run که با status untested علامتگذاری شدهاند |
| updated_on | timestamp | تاریخ/زمان بهروزرسانی test run. به TestRail ۶.۵.۲ یا نسخههای جدیدتر نیاز دارد. |
| url | string | آدرس/URL این test run در رابط کاربری |
| refs | string | فهرستی از referenceها/requirementها که با کاما جدا شدهاند |
| start_on | timestamp | تاریخ شروع Test Run، بهصورت UNIX timestamp. |
| due_on | timestamp | تاریخ پایان Test Run، بهصورت UNIX timestamp. |
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run بهعنوان بخشی از پاسخ برگردانده میشود |
| 400 | test run نامعتبر یا ناشناخته است |
| 403 | به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |
get_runs #
فهرست test runهای یک project را برمیگرداند. فقط test runهایی را برمیگرداند که بخشی از test plan نیستند. برای این مورد، get_plans/get_plan را ببینید.
GET index.php?/api/v2/get_runs/{project_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| project_id | integer | true | ID project |
این متد حداکثر ۲۵۰ ورودی را در آرایه پاسخ برمیگرداند. برای دریافت ورودیهای بیشتر، میتوانید با استفاده از فیلتر offset که در بخش Request filters در پایین توضیح داده شده است، درخواستهای بیشتری ارسال کنید.
فیلترهای درخواست #
فیلترهای زیر را میتوانید با استفاده از query parameterها در URL درخواست اعمال کنید:
| نام | نوع | توضیح |
|---|---|---|
| created_after | timestamp | فقط test runهایی را برگردان که پس از این تاریخ ایجاد شدهاند، بهصورت UNIX timestamp |
| created_before | timestamp | فقط test runهایی را برگردان که پیش از این تاریخ ایجاد شدهاند، بهصورت UNIX timestamp |
| created_by | integer | فهرستی از ایجادکنندهها (user IDها) که با کاما جدا شدهاند و برای فیلتر کردن استفاده میشوند |
| include_plan_runs | boolean | برای برگرداندن فقط runهای مستقل، مقدار ۰ را وارد کنید. برای برگرداندن test runهای مربوط به test planها، همراه با test plan ID، مقدار ۱ را وارد کنید. |
| is_completed | boolean | برای برگرداندن فقط test runهای فعال، مقدار ۰ را وارد کنید. برای برگرداندن test runهای تکمیلشده، مقدار ۱ را وارد کنید. اگر این فیلتر تنظیم نشود، مقدار پیشفرض ۱ است. |
| limit/offset | integer | نتیجه را به تعداد مشخصی test run محدود کنید. برای رد کردن رکوردها از offset استفاده کنید. |
| milestone_id | integer(list) | فهرستی از milestone IDها که با کاما جدا شدهاند و برای فیلتر کردن استفاده میشوند |
| refs | string | یک Reference ID واحد، مانند TR-a یا ۴۲۹۱ |
| suite_id | integer(list) | فهرستی از test suite IDها که با کاما جدا شدهاند و برای فیلتر کردن استفاده میشوند |
# All active test runs for project with ID 1 created by user with ID 1 or 2
GET index.php?/api/v2/get_runs/1&is_completed=0&created_by=1,2
{
"offset": 0,
"limit": 2,
"size": 2,
"_links": {
"next": "/api/v2/get_runs/3&limit=2&offset=2",
"prev": null
},
"runs": [
{
"id": 9942,
"name": "Test Run Name",
"description": null,
"suite_id": 10,
"project_id": 3,
"plan_id": null,
"milestone_id": null,
"assignedto_id": null,
"include_all": false,
"is_completed": false,
"completed_on": null,
"is_archived": false,
"archived_on": null,
"config": null,
"config_ids": [],
"passed_count": 0,
"blocked_count": 0,
"untested_count": 46,
"retest_count": 0,
"failed_count": 0,
"created_by": 376,
"created_on": 1775495967,
"updated_on": 1775495967,
"refs": null,
"url": "https://test.testrail.io/index.php?/runs/view/123",
"start_on": null,
"due_on": null,
"dynamic_filters": {
"mode": "1",
"filters": {
"cases:custom_automationmark": { "mode": "1", "values": ["13"] },
"cases:created_by": { "values": ["409", "376"] }
}
},
"custom_status1_count": 0,
"custom_status2_count": 0,
"custom_status3_count": 0,
"custom_status4_count": 0,
"custom_status5_count": 0,
"custom_status6_count": 0,
"custom_status7_count": 0,
"dataset_id": null
}
// ... more runs
]
}
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run بهعنوان بخشی از پاسخ برگردانده میشود |
| 400 | project نامعتبر یا ناشناخته است |
| 403 | به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |
add_run #
یک test run جدید ایجاد میکند.
POST index.php?/api/v2/add_run/{project_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| project_id | integer | true | ID projectی که test run باید به آن اضافه شود |
| dynamic_filters | object | false | payload فیلتر پویا که برای انتخاب caseهای داخل test run استفاده میشود. رفتار این payload مانند TestRail UI Selection Filter است. |
بدنه درخواست #
فیلترهای زیر را میتوانید در بدنه درخواست اعمال کنید:
| نام | نوع | توضیح |
|---|---|---|
| suite_id | integer | ID test suite برای test run. اگر project در حالت single suite باشد اختیاری است؛ در غیر این صورت الزامی است. |
| name | string | نام test run |
| description | string | توضیح test run |
| milestone_id | integer | ID milestoneای که باید به test run لینک شود |
| assignedto_id | integer | ID کاربری که test run باید به او واگذار شود |
| include_all | boolean | برای اضافه کردن همه test caseهای test suite مقدار true، و برای انتخاب caseهای سفارشی مقدار false را وارد کنید. مقدار پیشفرض: true |
| case_ids | array | آرایهای از case IDها برای انتخاب caseهای سفارشی |
| refs | string | فهرستی از referenceها/requirementها که با کاما جدا شدهاند — به TestRail ۶.۱ یا نسخههای جدیدتر نیاز دارد |
| start_on | timestamp | تاریخ شروع Test Run، بهصورت UNIX timestamp. |
| due_on | timestamp | تاریخ پایان Test Run، بهصورت UNIX timestamp. |
نمونه درخواست #
مثال زیر نشان میدهد چطور یک test run جدید با انتخاب سفارشی test caseها ایجاد کنید:
{
"suite_id": 1,
"name": "This is a new test run",
"assignedto_id": 5,
"refs": "SAN-1, SAN-2",
"include_all": false,
"case_ids": [1, 2, 3, 4, 7, 8]
}
نمونه درخواست با Dynamic Filters #
مثال زیر نشان میدهد چطور یک test run جدید با Dynamic Filters ایجاد کنید:
{
"suite_id": 1,
"name": "API Dynamic Filter Run",
"include_all": false,
"case_ids": [],
"dynamic_filters": {
"mode": "1",
"filters": {
"cases:priority_id": {
"values": [2]
},
"cases:title": {
"mode": "2",
"filters": [
{
"op": 5,
"value": "Login"
}
]
}
}
}
}
قوانین تقدم #
وقتی include_all dynamic_filters ، case_ids case_ids ، و dynamic_filters include_all با هم استفاده شوند، TestRail قوانین تقدم زیر را اعمال میکند:
| include_all | case_ids | dynamic_filters | نتیجه |
|---|---|---|---|
| false | [] |
وجود دارد | استفاده از dynamic_filters
|
| ارائه نشده | ارائه نشده | وجود دارد | استفاده از dynamic_filters
|
| true | [1,2,3] |
وجود دارد | استفاده از case_ids ؛ نادیده گرفتن dynamic_filters
|
| false | [1,2,3] |
وجود دارد | استفاده از case_ids ؛ نادیده گرفتن dynamic_filters
|
| true | [] |
وجود دارد | استفاده از include_all: true ؛ نادیده گرفتن dynamic_filters
|
| false | ارائه نشده | ارائه نشده | استفاده از include_all: false
|
| ارائه نشده | ارائه نشده | ارائه نشده | استفاده از include_all: true
|
در عمل: dynamic_filters dynamic_filters فقط زمانی اثر دارد که include_all include_all false باشد false یا ارائه نشده باشد، و case_ids case_ids خالی باشد یا ارائه نشده باشد.
محتوای پاسخ #
اگر موفقیتآمیز باشد، این متد test run جدید را با همان قالب پاسخ get_run برمیگرداند.
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run ایجاد شده و بهعنوان بخشی از پاسخ برگردانده میشود |
| 400 | project نامعتبر یا ناشناخته است |
| 403 | مجوز افزودن test runها را ندارید یا به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |
update_run #
یک test run موجود را بهروزرسانی میکند. بهروزرسانی جزئی پشتیبانی میشود؛ یعنی میتوانید فقط فیلدهای مشخصی را ارسال و بهروزرسانی کنید.
برای بهروزرسانی test runهای داخل test planها، ببینید API:plans.
POST index.php?/api/v2/update_run/{run_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| run_id | integer | true | ID test run |
نمونه درخواست #
مثال زیر نشان میدهد چطور توضیح و انتخاب test caseهای یک test run را بهروزرسانی کنید:
{
"description": "A description for the test run",
"include_all": true
}
مثال زیر یک test run را بهروزرسانی میکند تا از انتخاب دستی test caseها استفاده کند:
{
"include_all": false,
"case_ids": [1, 2, 3, 5, 8]
}
محتوای پاسخ #
اگر موفقیتآمیز باشد، این متد test run بهروزرسانیشده را با همان قالب پاسخ get_run برمیگرداند.
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run بهروزرسانی شده و بهعنوان بخشی از پاسخ برگردانده میشود |
| 400 | test run نامعتبر یا ناشناخته است |
| 403 | مجوز ویرایش test runها را ندارید یا به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |
close_run #
#
بستن test run قابل بازگشت نیست.
یک test run موجود را میبندد و نتایج testهای آن را & بایگانی میکند.
POST index.php?/api/v2/close_run/{run_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| run_id | integer | true | ID test run |
محتوای پاسخ #
اگر موفقیتآمیز باشد، این متد test run بستهشده را با همان قالب پاسخ get_run برمیگرداند.
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run بسته شده (بایگانی شده) و بهعنوان بخشی از پاسخ برگردانده میشود |
| 400 | test run نامعتبر یا ناشناخته است |
| 403 | مجوز بستن test runها را ندارید یا به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |
delete_run #
#
حذف test run قابل بازگشت نیست و همه نتایج testهای این test run را هم برای همیشه & حذف میکند.
یک test run موجود را حذف میکند.
برای حذف یک test run داخل test plan، ببینید API:Plans.
POST index.php?/api/v2/delete_run/{run_id}
پارامترها #
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| run_id | integer | true | ID test run |
پارامتر soft #
#
اگر پارامتر soft را وارد نکنید، یا soft=۰ بفرستید، test run و testهای آن حذف میشوند.
اگر soft=۱ باشد soft=1 ، دادههایی درباره تعداد testهای تحت تأثیر برمیگرداند.
اضافه کردن soft=۱ soft=1 باعث حذف واقعی موجودیت نمیشود.
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیتآمیز؛ test run و همه نتایج testهای آن & حذف شدهاند |
| 400 | test run نامعتبر یا ناشناخته است |
| 403 | مجوز حذف test runها را ندارید یا به project دسترسی ندارید |
| 429 | فقط TestRail Cloud— تعداد درخواستها بیش از حد مجاز است (ببینید API rate limit) |

