از روشهای API زیر برای دریافت جزئیات فیلدهای سفارشی test caseها استفاده کنید.
get_case_fields #
فهرست فیلدهای سفارشی موجود برای test caseها را برمیگرداند.
GET index.php?/api/v2/get_case_fields
محتوای پاسخ #
پاسخ شامل آرایهای از تعریفهای فیلد سفارشی است. در ادامه یک نمونه پاسخ معمولی را میبینید:
[
{
"configs": [
{
"context": {
"is_global": true,
"project_ids": null
},
"id": "..",
"options": {
"default_value": "",
"format": "markdown",
"is_required": false,
"rows": "5"
}
}
],
"description": "The preconditions of this test case. ..",
"display_order": 1,
"id": 1,
"label": "Preconditions",
"name": "preconds",
"system_name": "custom_preconds",
"type_id": 3
},
..
]
یک فیلد سفارشی میتواند برای هر project، configurationها و optionهای متفاوتی داشته باشد؛ این موضوع با فیلد configs مشخص میشود. برای بررسی اینکه آیا یک فیلد سفارشی برای project خاصی قابل استفاده است (و برای دیدن optionهای آن در این project)، context در configuration فیلد باید یا global باشد (is_global) یا ID آن project را در project_ids داشته باشد.
همچنین، فهرست زیر نوعهای فیلد سفارشی موجود را نشان میدهد (type_id field):
| Type ID | نام |
|---|---|
| 1 | String |
| 2 | Integer |
| 3 | Text |
| 4 | URL |
| 5 | Checkbox |
| 6 | Dropdown |
| 7 | User |
| 8 | Date |
| 9 | Milestone |
| 10 | Steps |
| 12 | Multi-select |
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیت (فیلدهای سفارشی موجود در پاسخ برگردانده میشوند) |
| 429 |
فقط برای TestRail Cloud—درخواستهای بیش از حد (ببینید API rate limit) |
add_case_field #
یک فیلد سفارشی جدید برای test case ایجاد میکند.
POST index.php?/api/v2/add_case_field
فیلدهای request #
فیلدهای POST زیر پشتیبانی میشوند (فیلدهای سیستمی):
| نام | نوع | الزامی | توضیح |
|---|---|---|---|
| type | string | true |
شناسه نوع برای فیلد سفارشی جدید. نوعهای زیر پشتیبانی میشوند:
میتوانید هم شماره نوع و هم نام آن را ارسال کنید؛ مثلا “۵”، “string”، “String”، “Dropdown” یا “۱۲”. عددها باید بهصورت string ارسال شوند؛ مثلا {type: “۵”} نه {type: ۵}. در غیر این صورت پاسخ ۴۰۰ (Bad Request) میگیرید. |
| name | string | true | نام فیلد سفارشی جدید |
| label | string | true | label فیلد سفارشی جدید |
| description | string | false | توضیح فیلد سفارشی جدید |
| include_all | boolean | false | اگر میخواهید فیلد سفارشی جدید برای همه templateها اعمال شود، مقدار flag را true بگذارید. در غیر این صورت (false)، ID templateهایی را که باید شامل شوند در parameter بعدی (template_ids) مشخص کنید. |
| template_ids | array | false | اگر include_all روی false باشد، ID templateهایی که فیلد سفارشی جدید روی آنها اعمال میشود |
| configs | object | true | یک object داخل array با دو key پیشفرض «context» و «options» |
هنگام ساخت فیلدهای سفارشی جدید، از نامهای ساده بدون پیشوند «custom_» استفاده کنید؛ چون این پیشوند بهصورت خودکار اضافه میشود. مثلا «my_int» به «custom_my_int» تبدیل میشود.
فیلدهای سفارشی دارای configs به keyهای پیشفرض «context» و «options» نیاز دارند:
"configs": [
{
"context":{"is_global": true, "project_ids": []},
"options":{"is_required": false, "default_value": "1", "items": "1, First\n2, Second"}
}
]
برای اعمال فیلد سفارشی روی projectهای مشخص، context را تغییر دهید:
"context": {"is_global": false, "project_ids": [5, 10]}
برخی نوعهای فیلد سفارشی optionهای متفاوتی دارند. «is_required» (boolean) برای همه فیلدها مشترک است. بیشتر نوعها بهجز Multiselect، Milestone و Date امکان تنظیم «default_value» را دارند؛ برای این سه نوع این option مجاز نیست.
Dropdown و Text optionهای خاص دارند. برای Dropdown از items استفاده میشود:
"items": "1, First\n2, Second"
برای Text از format و rows استفاده کنید:
"format": "plain", "rows": "5"
برای «format»، یکی از مقدارهای «plain» یا «markdown» را انتخاب کنید. option «rows» اندازه اولیه فیلد را هنگام باز شدن فرم مشخص میکند. مقدارهای معتبر آن مثلا «۳»، «۴»، …، «۱۰» یا «» (string خالی) هستند.
"options": {
"is_required": false,
"default_value": "The default text.",
"format": "markdown",
"rows": "3"
}
نمونه request #
{
"type": "Multiselect",
"name": "my_multiselect",
"label": "My Multiselect",
"description": "my custom Multiselect description",
"configs": [
{
"context": {
"is_global": true,
"project_ids": ""
},
"options": {
"is_required": false,
"items": "1, One\n2, Two"
}
}
],
"include_all": true
}
محتوای پاسخ #
در صورت موفقیت، این method فیلد سفارشی جدید را برمیگرداند.
{
"id":33,
"name":"my_multiselect",
"system_name":"custom_my_multiselect",
"entity_id":1,
"label":"My Multiselect",
"description":"my custom Multiselect description",
"type_id":12,
"location_id":2,
"display_order":7,
"configs":"[{\"context\":{\"is_global\":true,\"project_ids\":\"\"},\"options\":{\"is_required\":false,\"items\":\"1, One\\n2, Two\"},\"id\":\"9f105ba2-1ed0-45e0-b459-18d890bad86e\"}]",
"is_multi":1,
"is_active":1,
"status_id":1,
"is_system":0,
"include_all":1,
"template_ids": []
}
کدهای پاسخ #
| Status Code | توضیح |
|---|---|
| 200 | موفقیت (فیلد سفارشی جدید در پاسخ برگردانده میشود) |
| 400 | Bad request؛ برای تشخیص مشکل، پیام خطا را بررسی کنید |
| 404 | یافت نشد؛ parameter نامعتبر ارسال شده است |
| 429 |
فقط برای TestRail Cloud—درخواستهای بیش از حد (ببینید API rate limit) |

