The main idea of this library created in the JavaScript language is to provide a ready-made set of API methods for integration with Testrail
npm install qansigliere-testrail-api-integrationThe main idea of this library created in the JavaScript language is to provide a ready-made set of API methods for
integration with Testrail
https://www.youtube.com/@QANSIGLIERE/
https://buymeacoffee.com/qansigliere
Using npm npm i qansigliere-testrail-api-integration
Create any \*.env file (like testrail.env) and write the following information in the created file
```
export TESTRAIL_URL="__YOUR_TESTRAIL_URL__"
export TESTRAIL_USERNAME="__YOUR_TESTRAIL_EMAIL__"
export TESTRAIL_APIKEY="__YOUR_TESTRAIL_APIKEY__"
Just run in the terminal the following command: source yourfile.env
`
var { TestRail_API } = require('qansigliere-testrail-api-integration');
(async function Demo() {
let new_integration = new TestRail_API();
let resp = await new_integration.get_templates(1);
console.log(JSON.stringify(resp));
})();
`
TestRail documentation is present here
#### get_case_types
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_case_types();
TestRail documentation is present here
#### get_roles
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_roles();
TestRail documentation is present here
#### get_case_statuses
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_case_statuses();
#### get_statuses
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_statuses();
TestRail documentation is present here
#### get_templates
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_templates(1);
TestRail documentation is present here
#### get_priorities
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_priorities();
TestRail documentation is present here
#### get_result_fields
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_result_fields();
TestRail documentation is present here
#### get_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_run(1);
#### get_runs
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_runs(1);
#### add_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_run(1, {
suite_id: 3,
name: 'Generated by QANSIGLIERE',
description: 'Created for DEMO',
include_all: true,
});
#### update_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_run(2, {
description: 'A description for the test run',
include_all: true,
});
#### close_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.close_run(2, {});
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_run(2, {});
TestRail documentation is present here
#### get_bdd
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_bdd(5);
#### add_bdd
`test.txt
let new_integration = new TestRail_API();
let resp = await new_integration.add_bdd(1, );`
TestRail documentation is present here
#### get_case_fields
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_case_fields();
#### add_case_field
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_case_field({
"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
});
TestRail documentation is present here
#### get_reports
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_reports(1);
#### run_report
``
let new_integration = new TestRail_API();
let resp = await new_integration.run_report(1);
TestRail documentation is present here
#### get_variables
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_variables(1);
#### add_variable
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_variable(1, { id: 613, name: 'f' });
#### update_variable
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_variable(1, {
id: 1171,
name: 'age',
});
#### delete_variable
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_variable(1, {});
TestRail documentation is present here
#### get_project
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_project(1);
#### get_projects
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_projects();
#### add_project
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_project({
name: 'Generated via QANSIGLIERE API library',
announcement: 'Welcome to my project',
show_announcement: true,
});
#### update_project
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_project(7, {
name: 'Updated via QANSIGLIERE API library',
announcement: 'Subscribe to the channel',
show_announcement: true,
});
#### delete_project
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_project(7, {});
TestRail documentation is present here
#### get_results
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_results(14));
#### get_results_for_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_results_for_case(4, 14);
#### get_results_for_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_results_for_run(4);
#### add_result
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_result(14, { status_id: 5, comment: 'This test failed' });
#### add_result_for_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_result_for_case(4, 16, { status_id: 1, comment: 'This test passed' });
#### add_results
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_results(4, {
results: [
{
test_id: 17,
status_id: 1,
comment: 'This test failed',
defects: 'TR-7',
},
{
test_id: 18,
status_id: 5,
comment: 'This test passed',
elapsed: '5m',
version: '1.0 RC1',
},
{
test_id: 19,
status_id: 2,
comment: 'Assigned this test to Joe',
},
],
});
#### add_results_for_cases
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_results_for_cases(4, {
results: [
{
case_id: 17,
status_id: 1,
comment: 'This test failed',
defects: 'TR-7',
},
{
case_id: 18,
status_id: 5,
comment: 'This test passed',
elapsed: '5m',
version: '1.0 RC1',
},
{
case_id: 19,
status_id: 2,
comment: 'Assigned this test to Joe',
},
],
});
TestRail documentation is present here
#### get_suite
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_suite(10);
#### get_suites
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_suites(4);
#### add_suite
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_suite(4, {
name: 'This is a new test suite',
description: 'Use the description to add additional context details',
});
#### update_suite
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_suite(11, {
name: 'This is changed via API',
description: 'Like this video',
});
#### delete_suite
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_suite(11, {});
TestRail documentation is present here
#### get_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_section(9);
#### get_sections
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_sections(8, 10);
#### add_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_section(8, {
suite_id: 10,
name: 'This section is generated via API',
parent_id: 9,
});
#### move_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.move_section(10, {
parent_id: null,
after_id: 8,
});
#### update_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_section(10, {
name: 'Updated via API',
});
#### delete_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_section(10, {});
TestRail documentation is present here
#### get_milestone
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_milestone(1);
#### get_milestones
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_milestones(4);
#### add_milestone
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_milestone(4, {
name: 'This milestone has been created via API',
});
#### update_milestone
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_milestone(2, {
name: 'Updated via API',
});
#### delete_milestone
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_milestone(2, {});
TestRail documentation is present here
#### get_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_group(1);
#### get_groups
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_groups();
#### add_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_group({
name: 'New Group',
user_ids: [1, 2, 3, 4, 5],
});
#### update_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_group(2, {
group_id: 2,
name: 'Updated Group via API',
user_ids: [1, 2, 3, 4, 5],
});
#### delete_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_group(2, {});
TestRail documentation is present here
#### get_user
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_user(1);
#### get_current_user
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_current_user(1);
#### get_user_by_email
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_user_by_email('qansigliere@gmail.com');
#### get_users
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_users();
#### get_users\_\_project_id
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_users__project_id(1);
#### add_user
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_user({
name: 'Don Gun',
email: 'qansigliere+1@gmail.com',
});
#### update_user
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_user(2, {
name: 'Updated API',
});
TestRail documentation is present here
#### get_test
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_test(20);
#### get_tests
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_tests(5);
// let resp = await new_integration.get_tests('5&limit=30&status_id=2');
TestRail documentation is present here
#### get_shared_step
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_shared_step(1);
#### get_shared_step_history
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_shared_step_history(1);
#### get_shared_steps
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_shared_steps(4);
#### add_shared_step
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_shared_step(4, {
title: 'First Step',
custom_steps_separated: [
{
content: 'Open home page',
additional_info: 'Must be a new browser session',
expected: 'Login page loads',
refs: 'RF-1',
},
{
content: 'Log In',
},
],
});
#### update_shared_step
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_shared_step(2, {
title: 'Updated VIA API',
custom_steps_separated: [
{
content: 'Subscribe',
additional_info: 'Must be a new comment here',
expected: 'Login page loads',
refs: 'RF-1',
},
{
content: 'Log In',
},
],
});
#### delete_shared_step
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_shared_step(2, {});
TestRail documentation is present here
#### get_dataset
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_dataset(1);
#### get_datasets
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_datasets(4);
#### add_dataset
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_dataset(4, {
id: 311,
name: 'Def',
variables: [],
});
#### update_dataset
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_dataset(3, {
name: 'API',
variables: [],
});
#### delete_dataset
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_dataset(3, {});
TestRail documentation is present here
#### get_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_case(14);
#### get_cases
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_cases(4, 6);
// let resp = await new_integration.get_cases(4, '6&priority_id=4');
#### get_history_for_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_history_for_case(14);
#### add_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_case(5, {
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',
},
{
shared_step_id: 3,
},
],
});
#### copy_cases_to_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.copy_cases_to_section(5, {
section_id: 5,
case_ids: [22, 23]
});
#### update_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_case(11, {
priority_id: 1,
estimate: "5m"
});
#### update_cases
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_cases(6, {
case_ids: [26, 27],
priority_id: 1,
estimate: "5m"
});
#### move_cases_to_section
``
let new_integration = new TestRail_API();
let resp = await new_integration.move_cases_to_section(12, {
section_id: 12,
suite_id: 6,
case_ids: [26, 27]
});
#### delete_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_case(25, {});
#### delete_cases
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_cases(6, {
case_ids: [23, 24],
});
TestRail documentation is present here
#### get_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_plan(6);
#### get_plans
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_plans(9);
#### add_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_plan(9, {
name: "System test",
entries: [
{
suite_id: 12,
name: "Custom run name",
assignedto_id: 1 // ID of the assignee
},
{
suite_id: 12,
include_all: false, // Custom selection
case_ids: [28, 29, 30]
}
]
});
#### add_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_plan_entry(9, {
suite_id: 12,
include_all: true,
runs: [
{
"include_all": false,
"case_ids": [28],
},
{
"include_all": false,
"case_ids": [28, 29, 30],
},
]
});
#### add_run_to_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_run_to_plan_entry(9, "0e165a00-bf50-4482-bde1-3134c1dacd50", {
config_ids: [1],
include_all: false,
case_ids: [28, 29, 30]
});
#### update_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_plan(9, {
name: "Updated VIA API",
});
#### update_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_plan_entry(9, "0e165a00-bf50-4482-bde1-3134c1dacd50", {
name: "updated too",
description: "it was updated via qansigliere JS lib"
});
#### update_run_in_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_run_in_plan_entry(10, {
include_all: true,
});
#### close_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.close_plan(14, {});
#### delete_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_plan(15, {});
#### delete_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_plan_entry(9, "0e165a00-bf50-4482-bde1-3134c1dacd50", {});
#### delete_run_from_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_run_from_plan_entry(21, {});
TestRail documentation is present here
#### get_configs
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_configs(9);
#### add_config_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_config_group(9, {
name: "Browsers"
});
#### add_config
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_config(3, {
name: "Chrome"
});
#### update_config_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_config_group(3, {
"name": "Operating Systems"
});
#### update_config
``
let new_integration = new TestRail_API();
let resp = await new_integration.update_config(3, {
"name": "Firefly"
});
#### delete_config_group
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_config_group(3, {});
#### delete_config
``
let new_integration = new TestRail_API();
let resp = await new_integration.delete_config(3, {});
TestRail documentation is present here
#### add_attachment_to_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_attachment_to_case(24, 'icon.png');
#### add_attachment_to_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_attachment_to_plan(16, 'icon.png');
#### add_attachment_to_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_attachment_to_plan_entry(16, "0e165a00-bf50-4482-bde1-3134c1dacd50", 'icon.png');
#### add_attachment_to_result
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_attachment_to_result(46, 'icon.png');
#### add_attachment_to_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.add_attachment_to_run(22, 'icon.png');
#### get_attachments_for_case
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachments_for_case(28);
// let resp = await new_integration.get_attachments_for_case('11&limit=1');
#### get_attachments_for_plan
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachments_for_plan(16);
#### get_attachments_for_plan_entry
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachments_for_plan_entry(16, "0e165a00-bf50-4482-bde1-3134c1dacd50");
#### get_attachments_for_run
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachments_for_run(10);
#### get_attachments_for_test
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachments_for_test(26);
#### get_attachment
``
let new_integration = new TestRail_API();
let resp = await new_integration.get_attachment('30a47475-de26-4215-9459-b9094aa3b42e');
#### delete_attachment
```
let new_integration = new TestRail_API();
let resp = await new_integration.delete_attachment('30a47475-de26-4215-9459-b9094aa3b42e', {});
- https://youtube.com/live/q2NO23ruDqI?feature=share
- https://youtube.com/live/IC4hoYwzvDY?feature=share
- https://youtube.com/live/o9yonQpeFg4?feature=share
- https://youtube.com/live/qjw5o0Kk6iQ?feature=share
- https://youtube.com/live/XRJWPa8UW3M?feature=share
- https://youtube.com/live/4y6EgblRqP0?feature=share
- https://youtube.com/live/fTWMR7L6sCE?feature=share
- https://youtube.com/live/XG9moLSdXuk?feature=share
- https://youtube.com/live/bUy-FJYVz2M?feature=share
https://forms.gle/GZbS9hw42tSYJxKL7