{"count":543,"next_page":"https://support.testrail.com/api/v2/help_center/en-us/articles.json?page=2&per_page=30","page":1,"page_count":19,"per_page":30,"previous_page":null,"articles":[{"id":50231130707988,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/50231130707988.json","html_url":"https://support.testrail.com/hc/en-us/articles/50231130707988-Updating-the-Rich-Text-Editor-License-Key-2026","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":7104283524244,"created_at":"2026-06-12T17:23:42Z","updated_at":"2026-06-22T12:01:15Z","name":"Updating the Rich Text Editor License Key (2026)","title":"Updating the Rich Text Editor License Key (2026)","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-22T12:01:15Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>Starting with <strong>version 9.8.x</strong> TestRail uses a Rich Text Editor component which requires an annual license key update. If your instance has not been updated by <strong>end of June 2026</strong>, users will see a license warning message when opening a page that contains a rich text field (see below).</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1708/900;\" src=\"https://support.testrail.com/hc/article_attachments/50236535415188\" width=\"1708\" height=\"900\"></figure><p>To update your license key, follow the steps according to your installation type.</p><h2 id=\"h_01KTYM7RKWRHKZ0AW5MG2TJMJC\">Bare Metal (Linux)</h2><ol class=\"list-colored\">\n<li data-list-item-id=\"ea51c8324a08977ac12d2f69c1a31ff37\">Download the patch files - <a href=\"https://trdo-8149.s3.us-east-1.amazonaws.com/froala.zip\">link</a>.</li>\n<li data-list-item-id=\"e868aa73bf96e3281954639fd4708e6be\">Locate the folder in the patch archive that matches your TestRail version (e.g., <strong>froala-patches\\testrail-10.3.1\\</strong>).</li>\n<li data-list-item-id=\"ebfc5c3797b8c8ca27efa81c8be1340b4\">\n<p>Copy the patched JS files to your TestRail installation's <strong>js\\bundle </strong>directory:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-plaintext\">cp froala-patches/testrail-&lt;version&gt;/testrail/js/bundle/application.search.js &lt;TestRail installation path&gt;/js/bundle/\ncp froala-patches/testrail-&lt;version&gt;/testrail/js/bundle/application-entrypoint.js &lt;TestRail installation path&gt;/js/bundle/</code></pre>\n</li>\n<li data-list-item-id=\"e02c5b17b0ab3136c42934913b1a21fcd\">\n<p>Set the correct file ownership:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-plaintext\">chown www-data:www-data &lt;TestRail installation path&gt;/js/bundle/application.search.js\nchown www-data:www-data &lt;TestRail installation path&gt;/js/bundle/application-entrypoint.js</code></pre>\n</li>\n</ol><h2 id=\"h_01KTYM7RKW4CRYSWKM0Y5ETB11\">Bare Metal (Windows)</h2><ol class=\"list-colored\">\n<li data-list-item-id=\"e59e48aca62f3711f878f31177e1d39c9\">Download the patch files - <a href=\"https://trdo-8149.s3.us-east-1.amazonaws.com/froala.zip\">link</a>.</li>\n<li data-list-item-id=\"e933b4e4616762ed5c2221663536c30ca\">Locate the folder in the patch archive that matches your TestRail version (e.g. <strong>froala-patches\\testrail-10.3.1\\</strong>).</li>\n<li data-list-item-id=\"eaae2cca8927c040e46018e58816d043f\">Copy the patched JS files to your TestRail installation's <strong>js\\bundle</strong> directory, replacing the existing files.</li>\n</ol><h2 id=\"h_01KTYM7RKWX947TVNVG67ZX7VS\">Docker</h2><ol class=\"list-colored\">\n<li data-list-item-id=\"ed5bb0fbb119f8d0b30b383dae29af70a\">Download the patch files - <a href=\"https://trdo-8149.s3.us-east-1.amazonaws.com/froala.zip\">link</a>.</li>\n<li data-list-item-id=\"edcd283ff2bcdb3b90c703a57caab9e47\">\n<p>Identify your TestRail container name:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-plaintext\">docker ps</code></pre>\n</li>\n<li data-list-item-id=\"eb8433a2dbb514fea7b4fc31a5afd5860\">\n<p>Copy the patched files into the container. Note: <strong>use . (dot)</strong> not * (asterisk) at the end of the source path:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-plaintext\">docker cp froala-patches/testrail-&lt;version&gt;/testrail/js/bundle/. &lt;container-name&gt;:/var/www/testrail/js/bundle</code></pre>\n</li>\n<li data-list-item-id=\"eda95b719872041fe01a9f269d293db2a\">\n<p>Set the correct file ownership:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-plaintext\">docker exec -it &lt;container-name&gt; chown www-data:www-data \\\n  /var/www/testrail/js/bundle/application.search.js \\\n  /var/www/testrail/js/bundle/application-entrypoint.js</code></pre>\n</li>\n</ol><h2 id=\"h_01KTYM7RKWVJYNHZTP7TPS7D0V\">Verify the patch</h2><p>Log in to TestRail and open any page containing a rich text editor field. The license key warning should no longer be visible.</p><p> </p>","user_segment_ids":[]},{"id":50194016906900,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/50194016906900.json","html_url":"https://support.testrail.com/hc/en-us/articles/50194016906900-TestRail-10-5-1-Default-1001","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":10423156702740,"created_at":"2026-06-11T17:29:34Z","updated_at":"2026-06-23T09:17:25Z","name":"TestRail 10.5.1 Default (1001)","title":"TestRail 10.5.1 Default (1001)","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-23T09:17:25Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p style=\"box-sizing: border-box; margin: 0 0 calc(var(--line-height-computed)); color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\n  <strong style=\"box-sizing: border-box; font-weight: bold;\">Early Access release track date: 17-Jun-2026\n</strong>\n</p><p><strong style=\"-webkit-text-stroke-width: 0px; background-color: #ffffff; box-sizing: border-box; color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\">Default release track date: 29-Jun-2026</strong></p><p data-start=\"1033\" data-end=\"1191\">We're excited to announce <strong>TestRail 10.5</strong>, introducing <strong>AI-powered test prioritization, expanded API capabilities</strong> for teams who automate at scale, and a set of fixes that improve overall quality of the platform.</p><h2 id=\"h_01JP5SVWFJSMNG7FYEQG0AFWQ3\" data-start=\"397\" data-end=\"429\">\n<strong data-start=\"647\" data-end=\"683\"><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 96/96; height: auto; width: 23.59375px;\" src=\"https://support.testrail.com/hc/article_attachments/50193998368916\" alt=\"❖ SparkleIconSembi.png\" width=\"96\" height=\"96\"></strong><strong>AI-Powered Test Prioritization</strong>\n</h2><p>QA teams often face the same problem before a release: there are more tests available than time to execute them all. As regression suites grow and release cycles accelerate, it becomes harder to identify which tests matter most for the current release.</p><p>Prioritise with AI helps solve this by automatically ranking tests inside a test run based on likely risk, historical failures, linked defects, execution patterns, and semantic analysis of test case content. Teams can also guide the AI using labels and natural-language instructions focused on recent changes, high-risk areas, or business-critical workflows.</p><p><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 907/867; width: 73%;\" src=\"https://support.testrail.com/hc/article_attachments/50222025956756\" alt=\"TestRail - 10.5 Release Graphics (Final w Sembi IQ)_UI .png\" width=\"907\" height=\"867\"></p><p>This helps teams:</p><ul>\n<li data-list-item-id=\"ec47eec1ae7f781804e66a1c0cba2a119\">Focus testing effort on the highest-risk areas</li>\n<li data-list-item-id=\"e7b96b085b067e5b104269e2f05438185\">Reduce release risk during time-constrained cycles</li>\n<li data-list-item-id=\"e8a91944036e40f2d4bc80d72620bfe49\">Accelerate regression testing</li>\n<li data-list-item-id=\"e8869d16debf1caf4268203771a6cf329\">Improve confidence before release</li>\n</ul><ul style=\"margin-bottom: 0;\">\n    <li>\n      <a href=\"https://support.testrail.com/hc/en-us/articles/46556681633172\" target=\"_blank\" rel=\"noopener noreferrer\">\n        Getting started with Prioritize tests with AI\n      </a>\n    </li>\n    <li>\n      <a href=\"https://support.testrail.com/hc/en-us/articles/49138068019604\" target=\"_blank\" rel=\"noopener noreferrer\">\n        Understanding AI Reasons in Prioritise with AI\n      </a>\n    </li>\n    <li>\n      <a href=\"https://support.testrail.com/hc/en-us/articles/46609041281812\" target=\"_blank\" rel=\"noopener noreferrer\">\n        How to get the best results with Prioritize with AI\n      </a>\n    </li>\n  </ul><div style=\"background-color: #E8F4FD; border-left: 4px solid #1F73B7; padding: 12px 16px; margin: 16px 0;\">\n  <p style=\"margin: 0;\">\n    <strong>Prioritise with AI is available for TestRail Cloud only. </strong>\n\n  </p>\n</div><h2 id=\"h_01KTVVPV232K2EFC1WBQMN9WFB\"><strong>⚙️ More from Every API Call</strong></h2><p>Your CI pipeline doesn't care about test case IDs. It cares about coverage: which requirements have tests, which tests are tagged for this run, which ones failed. In 10.5, the TestRail API closes the gap between the data you have and the answers your integrations need.</p><p><strong>Key capabilities:</strong></p><ul>\n<li data-list-item-id=\"ef011fcfe23a60573952a90375a853b06\">\n<strong>Case titles in test and result responses: </strong><code>get_tests</code> and <code>get_results_for_run</code> now include <code>case_title</code> directly, so you can display human-readable results without additional case lookups</li>\n<li data-list-item-id=\"e4b708e20575a62998776d44a2a64cf7d\">\n<strong>Filter cases by label or external reference:</strong> <code>get_cases</code> now accepts <code>label_id</code> and <code>refs</code> as filter parameters, so you can retrieve exactly the cases tagged for your scope or linked to a specific Jira ticket, requirement ID, or story</li>\n<li data-list-item-id=\"e9ae413877409efa5cc4b744d2590f802\">\n<strong>Bulk BDD content retrieval:</strong> the new <code>get_bdds</code> endpoint returns Gherkin feature content for multiple cases at once, with support for label, suite, section, and refs filtering</li>\n<li data-list-item-id=\"e94620854945bfc2f55b1a35f8b8d91c6\">\n<strong>New label management APIs:</strong> create, read, update, and delete labels programmatically, with bulk add and bulk update operations supported</li>\n</ul><p><strong>Additional improvements:</strong></p><ul>\n<li data-list-item-id=\"e3c5c1dc12cf29dd8628057f9942a719e\">\n<strong>Bulk case title resolution: </strong>the new <code>get_case_titles</code> endpoint maps a list of case IDs to their titles in a single lightweight call</li>\n<li data-list-item-id=\"e1f7b0229179696cf26ca03d395f0a359\">\n<strong>Plan membership in run responses:</strong> <code>get_runs</code> now includes <code>plan_id</code>, so you can tell whether a run belongs to a test plan without a separate lookup</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">ℹ️<strong> </strong>The <code>case_title</code> and <code>plan_id</code> fields are additive and backward-compatible. If your integration uses strict-schema auto-generated clients (e.g., OpenAPI-generated SDKs that reject unknown properties), review your response models after upgrading.</div><h2 id=\"h_01KTW32PGFEKW7JZH963AGV718\">💻 <strong data-start=\"2630\" data-end=\"2651\">TestRail CLI 1.15.0</strong>\n</h2><p data-start=\"2627\" data-end=\"2738\">The latest version of the <strong data-start=\"2680\" data-end=\"2696\">TestRail CLI</strong> is now available with new capabilities. Now you have:</p><ul>\n<li data-list-item-id=\"eff532b47b46719afd0d2d3af73e82416\">\n<strong>New read-only data query commands:</strong>  <code>cases</code>, <code>suites</code>, <code>sections</code>, and <code>plans</code> each include <code>get</code> and <code>list</code> subcommands, giving automation tools and AI-native workflows direct access to TestRail data</li>\n<li data-list-item-id=\"e4d9c498a80de17203197bf18a5170139\">\n<strong>All query commands support pagination </strong>(<code>--offset</code>, <code>--limit</code>), JSON output (<code>--json-output</code>), <strong>detailed field view</strong> (<code>--show-all-fields</code>), and<strong> flexible project specification</strong>\n</li>\n<li data-list-item-id=\"ec4f5f9d42ab9f1e2be475c712b1e7126\">\n<strong>New </strong><code><strong>results</strong></code><strong> command</strong> for listing or updating existing test results, with pagination and JSON output support <em>(requires TestRail 10.4 or later)</em>\n</li>\n<li data-list-item-id=\"e87f18165a499f92e01b76782d7839700\">\n<strong>Optimized attachment uploading</strong> with improved progress tracking</li>\n<li data-list-item-id=\"efeda1f63b1905d72faadc6a8230cd7ea\">Fixed an issue where large attachment uploads could fail with an \"unable to find result_id\" error</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more in the <a href=\"https://github.com/gurock/trcli?tab=readme-ov-file#trcli---the-testrail-cli\">TestRail CLI documentation.</a>\n</div><h2 id=\"h_01KTW32PGG8ADTSWY6R0ECKD5M\">🐞 Fixes and Improvements (21)</h2><ul>\n<li data-list-item-id=\"ebfaa14c62f834d80734db7868ba38295\">\n<strong>TR-10690: </strong>Updating a test case's suite via the API now saves correctly</li>\n<li data-list-item-id=\"eb1ae162a40ab8e6c592c2592f8517fd7\">\n<strong>TR-11670:</strong> Printing a milestone no longer returns a server error</li>\n<li data-list-item-id=\"ecc2bf95843e42ab8dcfc901075246f9b\">\n<strong>TR-11976:</strong> Resolved an issue where certain reports took an excessive amount of time to generate</li>\n<li data-list-item-id=\"e7ac8d13054cf38b6587b047d89502a7e\">\n<strong>TR-12410:</strong> Exporting test cases as CSV no longer fails with a server error</li>\n<li data-list-item-id=\"e7e460c8f14721cbd6ae7bdd5cacff624\">\n<strong>TR-12455:</strong> Updating a run within a plan entry via the API now works correctly</li>\n<li data-list-item-id=\"ed45e714589f058476e933f1767b5f419\">\n<strong>TR-12791:</strong> Resolved a performance issue with milestone queries that could affect instance responsiveness</li>\n<li data-list-item-id=\"e7914772d0bdc9b15822ef39dcd09fe79\">\n<strong>TR-16241:</strong> Printing test plans and suites no longer returns a server error</li>\n<li data-list-item-id=\"e59603642d28b31e686f8ccb565243c73\">\n<strong>TR-16344: </strong>Exporting test cases and tests to Excel now works correctly</li>\n<li data-list-item-id=\"ed22d7c031fdc07b8063c0abbe9ee515b\">\n<strong>TR-16472:</strong> Fixed an issue where completed test runs could show missing test cases after upgrading from an older version</li>\n<li data-list-item-id=\"ec80fa3a7f8103fe0edd9f94c12f3ca18\">\n<strong>TR-16750:</strong> Attachments uploaded before January 2025 now display the correct project association</li>\n<li data-list-item-id=\"efc68978375e9c7116ed9760e0bc2d0d5\">\n<strong>TR-17208:</strong> Resolved a data discrepancy where API results could differ from what was shown in the TestRail UI</li>\n<li data-list-item-id=\"e9cb1a0d80bf2d5d463a636f7c3f33fa7\">\n<strong>TR-17247: </strong>Sub-section sort order no longer resets to default when a parent section is reordered</li>\n<li data-list-item-id=\"e13d950c064611a11c521e2e451e655e3\">\n<strong>TR-17260:</strong> Pasting code-formatted text into comment fields now works correctly</li>\n<li data-list-item-id=\"e719c55b9f8cabd44d1f0ee0e9c48f02c\">\n<strong>TR-18873:</strong> Labels are now correctly imported when importing test cases from CSV</li>\n<li data-list-item-id=\"e462488c7ccf84db5dcb353570b08f747\">\n<strong>TR-19432:</strong> API responses no longer incorrectly encode <code>&lt;</code> and <code>&gt;</code> characters as HTML entities</li>\n<li data-list-item-id=\"e62ead8b5d75a9b68009826d51a731695\">\n<strong>TR-19476:</strong> Resolved intermittent errors that could occur during certain integration workflows</li>\n<li data-list-item-id=\"e7ebc13695fc404f5bf56be4387d6cc02\">\n<strong>TR-19517:</strong> CSV imports no longer create duplicate sections</li>\n<li data-list-item-id=\"ed24ebf0c372ffad14dab4d6408b16560\">\n<strong>TR-19562:</strong> Resolved a performance issue that could affect some test plans</li>\n<li data-list-item-id=\"e9dc87e0b62b91031e34b6dc1f40b42ae\">\n<strong>TR-19794:</strong> Adding configuration-based runs to an existing plan entry via the API now works correctly</li>\n<li data-list-item-id=\"eac5f5faee184b1139ef7ecd5d3749d99\">\n<strong>TR-19797: </strong>AI test case generation no longer fails with a service unavailable error</li>\n<li data-list-item-id=\"ecb24d9523f8f3080426bacbcb2f82e75\">\n<strong>TR-19928:</strong> Clicking \"+ Add Test Run\" multiple times no longer creates duplicate test runs</li>\n</ul>","user_segment_ids":[]},{"id":49833677142164,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/49833677142164.json","html_url":"https://support.testrail.com/hc/en-us/articles/49833677142164-Integrating-AI-Evaluation-Tools-with-TestRail","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":47813623099028,"created_at":"2026-06-01T17:13:34Z","updated_at":"2026-06-02T17:07:09Z","name":"Integrating AI Evaluation Tools with TestRail","title":"Integrating AI Evaluation Tools with TestRail","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-02T17:07:09Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>AI teams today use a growing ecosystem of tools to evaluate the quality of their applications.</p><p>Whether you’re using Langfuse, LangSmith, DeepEval, OpenAI Evals, Arize Phoenix, or a custom evaluation pipeline, these tools help generate valuable quality signals about your AI system’s performance.</p><p>The challenge is that evaluation results often remain isolated within those platforms.</p><p>With TestRail’s <a href=\"https://support.testrail.com/hc/en-us/articles/47813727805588-AI-Evaluation-Template-with-Quality-Insights-Dashboard\">AI Evaluation Template</a> and <a href=\"https://support.testrail.com/hc/en-us/articles/7077083596436-Introduction-to-the-TestRail-API\">APIs</a>, teams can automatically push evaluation results into TestRail, creating a centralized location for tracking AI quality alongside the rest of their testing and release processes.</p><div style=\"background: #f4f8ff; border-left: 4px solid #2f6fed; padding: 20px; margin: 24px 0; border-radius: 6px;\">\n  <h3 style=\"margin-top: 0;\" id=\"h_01KT243YECS15YKHVJ2WC82GPY\">Use the tools you already have</h3>\n  <p style=\"margin-bottom: 0;\">\n    TestRail doesn't replace your AI observability or evaluation platform. Instead, it provides a common destination for storing, reviewing, and reporting on evaluation results regardless of where they originate.\n  </p>\n</div><p> </p><h2 id=\"h_01KT2309ZQF703W3H1FSTZD9KV\"><strong>The AI Quality Stack</strong></h2><p>Most organizations already have tooling across multiple layers of their AI stack.</p><p> </p><div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px 20px; border-radius: 10px; text-align: center; font-weight: 600;\">\n  Application Layer\n</div>\n\n<div style=\"text-align: center; font-size: 24px; line-height: 1.6;\">↓</div>\n\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px 20px; border-radius: 10px; text-align: center; font-weight: 600;\">\n  Model / Agent Layer\n</div>\n\n<div style=\"text-align: center; font-size: 24px; line-height: 1.6;\">↓</div>\n\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px 20px; border-radius: 10px; text-align: center; font-weight: 600;\">\n  Observability Layer\n</div>\n\n<div style=\"text-align: center; font-size: 24px; line-height: 1.6;\">↓</div>\n\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px 20px; border-radius: 10px; text-align: center; font-weight: 600;\">\n  Evaluation Layer\n</div>\n\n<div style=\"text-align: center; font-size: 24px; line-height: 1.6;\">↓</div>\n\n<div style=\"background: #eaf3ff; border: 2px solid #2f6fed; padding: 18px 20px; border-radius: 10px; text-align: center; font-weight: 700;\">\n  Quality Management Layer\n  <div style=\"font-size: 13px; font-weight: 400; margin-top: 6px;\">\n    Where TestRail centralizes AI evaluation outcomes\n  </div>\n</div><p> </p><p>Most AI evaluation platforms focus on evaluating outputs, not managing test cases. While they can score responses, benchmark prompts, and compare models, they typically don’t provide a structured way to organize evaluations into test suites, track coverage, or connect results to broader quality and release processes.</p><p>By pushing evaluation results into TestRail, teams can associate AI evaluation outcomes with structured test cases, making it easier to track coverage, compare results over time, and manage AI quality alongside the rest of their testing activities.</p><p> </p><h2 id=\"h_01KT2309ZWRGF5VTP4CS2V4SGP\"><strong>What Can Be Sent to TestRail?</strong></h2><p>Evaluation tools typically generate information such as:</p><ul>\n<li data-list-item-id=\"eb016491a85a36491023a0389b7b747c6\">Prompts and inputs</li>\n<li data-list-item-id=\"edaa045b9bb9d4caa56f5633e633e29df\">AI-generated outputs</li>\n<li data-list-item-id=\"ef7c4fcf1ed2b81a87838d983faf48a64\">Trace URLs</li>\n<li data-list-item-id=\"e5c7bfa49e23d0e5c04eed31bb357fbf2\">Human review scores</li>\n<li data-list-item-id=\"eeec390c18b215ec0a6fe03857e79decc\">LLM-as-a-Judge scores</li>\n<li data-list-item-id=\"efa4cb0f52d7dcd0cfdf25528846b66e5\">Accuracy metrics</li>\n<li data-list-item-id=\"e967a90828b367e8cce1435da813d3f4f\">Safety assessments</li>\n<li data-list-item-id=\"e35eddb14b21f5987caf47468e91aae6f\">Latency measurements</li>\n<li data-list-item-id=\"ee35ed63324c872059da6e2b70a096520\">Evaluation scores</li>\n</ul><p>Using <a href=\"https://support.testrail.com/hc/en-us/articles/7077083596436-Introduction-to-the-TestRail-API\">TestRail APIs</a>, this data can be attached directly to test results created with the <a href=\"https://support.testrail.com/hc/en-us/articles/47813727805588-AI-Evaluation-Template-with-Quality-Insights-Dashboard\">AI Evaluation Template.</a></p><p> </p><figure class=\"wysiwyg-table wysiwyg-table-align-left\" style=\"width: 100%;\"><table style=\"border-collapse: collapse; border-spacing: 0px;\">\n<thead><tr>\n<th style=\"padding: 8px 12px;\"><strong>TestRail Field</strong></th>\n<th style=\"padding: 8px 12px;\"><strong>Evaluation Data</strong></th>\n</tr></thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px 12px;\">Input</td>\n<td style=\"padding: 8px 12px;\">User prompt</td>\n</tr>\n<tr>\n<td style=\"padding: 8px 12px;\">Output</td>\n<td style=\"padding: 8px 12px;\">Model response</td>\n</tr>\n<tr>\n<td style=\"padding: 8px 12px;\">Traces</td>\n<td style=\"padding: 8px 12px;\">Trace URL</td>\n</tr>\n<tr>\n<td style=\"padding: 8px 12px;\">Latency</td>\n<td style=\"padding: 8px 12px;\">Response time</td>\n</tr>\n<tr>\n<td style=\"padding: 8px 12px;\">Quality Rating</td>\n<td style=\"padding: 8px 12px;\">Fully customizable quality categories</td>\n</tr>\n<tr>\n<td style=\"padding: 8px 12px;\">Comment</td>\n<td style=\"padding: 8px 12px;\">Evaluation reasoning</td>\n</tr>\n</tbody>\n</table></figure><p> </p><p>An example of a script to upload the data into your Test Case that uses the AI Eval Template:</p><div style=\"border: 1px solid #d8dee4; border-radius: 12px; overflow: hidden; margin: 24px 0; background: #0d1117;\">\n  <div style=\"background: #161b22; color: #f0f6fc; padding: 12px 16px; font-weight: 700; font-family: Arial,sans-serif;\">\n    TestRail API Result Submission\n  </div>\n\n  <pre style=\"margin: 0; padding: 18px; overflow: auto; color: #e6edf3; font-size: 14px; line-height: 1.6; font-family: Consolas,Monaco,'Courier New',monospace; white-space: pre;\"><code>TESTRAIL_URL = os.getenv(\"TESTRAIL_URL\")\nTESTRAIL_EMAIL = os.getenv(\"TESTRAIL_EMAIL\")\nTESTRAIL_API_KEY = os.getenv(\"TESTRAIL_API_KEY\")\nTESTRAIL_PROJECT_ID = os.getenv(\"TESTRAIL_PROJECT_ID\")\n\n# ==========================================\n# TESTRAIL RESULT ENDPOINT\n# ==========================================\n\nresult_endpoint = (\n    f\"{TESTRAIL_URL}/index.php?/api/v2/\"\n    f\"add_result_for_case/{TESTRAIL_RUN_ID}/{case_id}\"\n)\n\n# ==========================================\n# TESTRAIL PAYLOAD\n# ==========================================\n\npayload = {\n    \"status_id\": status_id,\n\n    \"comment\": (\n        f\"Automated AI Evaluation Result\\n\\n\"\n        f\"Trace Name: {trace['name']}\\n\"\n        f\"Latency: {latency} seconds\\n\\n\"\n        f\"Notes:\\n{notes}\"\n    ),\n\n    \"custom_ai_input\": prompt,\n    \"custom_ai_output\": response_output,\n    \"custom_ai_traces\": trace_url,\n    \"custom_ai_latency\": str(latency),\n    \"quality_rating\": filtered_ratings\n}\n\n# ==========================================\n# SEND RESULT TO TESTRAIL\n# ==========================================\n\nresult = requests.post(\n    result_endpoint,\n    json=payload,\n    auth=(TESTRAIL_EMAIL, TESTRAIL_API_KEY),\n    headers={\n        \"Content-Type\": \"application/json\"\n    }\n)\n\nprint(f\"TestRail Status: {result.status_code}\")\n\nif result.status_code == 200:\n    print(\"Result successfully added to TestRail\")\nelse:\n    print(\"ERROR sending result\")\n    print(result.text)</code></pre>\n</div><p> </p><h2 id=\"h_01KT241AMPWZAJB9Q3ZZWBHQKZ\"><strong>Example Workflow</strong></h2><p> </p><div style=\"background: #f7f9fc; border: 1px solid #d8e0ea; padding: 28px; margin: 28px 0; border-radius: 12px;\">\n\n<h3 style=\"margin-top: 0; text-align: center;\" id=\"h_01KT243YECYRMQKZJ8MGS274AH\">How AI Evaluation Results Flow Into TestRail</h3>\n\n<table style=\"width: 100%; border-collapse: collapse; text-align: center;\">\n<tbody>\n<tr>\n\n<td style=\"width: 22%;\">\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px; border-radius: 10px;\">\n<strong>AI Application</strong>\n</div>\n</td>\n\n<td style=\"font-size: 28px;\">→</td>\n\n<td style=\"width: 22%;\">\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px; border-radius: 10px;\">\n<strong>Evaluation Tool</strong><br>\n<span style=\"font-size: 12px;\">Langfuse, Promptfoo, DeepEval, etc.</span>\n</div>\n</td>\n\n<td style=\"font-size: 28px;\">→</td>\n\n<td style=\"width: 22%;\">\n<div style=\"background: #ffffff; border: 1px solid #d8e0ea; padding: 16px; border-radius: 10px;\">\n<strong>Human Review</strong><br>\nor<br>\n<strong>LLM Judge</strong>\n</div>\n</td>\n\n<td style=\"font-size: 28px;\">→</td>\n\n<td style=\"width: 22%;\">\n<div style=\"background: #eaf3ff; border: 2px solid #2f6fed; padding: 16px; border-radius: 10px;\">\n<strong>TestRail</strong><br>\n<span style=\"font-size: 12px;\">AI Evaluation Results</span>\n</div>\n</td>\n\n</tr>\n</tbody>\n</table>\n\n</div><p> </p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2282/1258;\" src=\"https://support.testrail.com/hc/article_attachments/49873450276244\" alt=\"Screenshot 2026-04-22 at 12.43.56.png\" width=\"2282\" height=\"1258\"></figure><h3 id=\"h_01KT243W5D9CWXFB4PCSHHAETJ\"> </h3><h3 id=\"h_01KT4MFFZ7Z5FHAJBA7412SD1D\"><strong>Why Integrate AI Evaluations with TestRail?</strong></h3><p>AI evaluation platforms are excellent at generating scores, traces, and benchmark results, but they typically aren’t designed to manage test cases or broader testing workflows.</p><p>By bringing evaluation results into TestRail, teams can connect AI quality signals with the structured testing processes they already use to manage software quality.</p><p>Benefits include:</p><ul>\n<li data-list-item-id=\"e451b248128a929b1760dcbdefb7b7ff4\">\n<strong>Associate evaluation results with test cases</strong> to create a repeatable and organized AI testing process.</li>\n<li data-list-item-id=\"e3e7d96d4b635eab7edeb54bc6fd4167d\">\n<strong>Track coverage across prompts, scenarios, and use cases</strong> rather than evaluating outputs in isolation.</li>\n<li data-list-item-id=\"e725ef97993e2769e6a91c83b70400afa\">\n<strong>Combine manual testing, automation, and AI evaluations</strong> within the same test suites and test plans.</li>\n<li data-list-item-id=\"e6e26a4c970b71a7ae6e0caab7e7cf843\">\n<strong>Compare models, prompts, agents, and evaluation strategies</strong> using a consistent testing framework.</li>\n<li data-list-item-id=\"eecd93160e147fd66be46eccbd75cb743\">\n<strong>Maintain a historical record of evaluation outcomes</strong> linked to specific tests, releases, and milestones.</li>\n<li data-list-item-id=\"e25681b775820f7321a7d6c8fab6ebd45\">\n<strong>Support both human reviews and LLM-as-a-Judge workflows</strong> without creating separate reporting processes.</li>\n<li data-list-item-id=\"e13e9c1eec683af4feb977247cc6202c5\">\n<strong>Use existing TestRail dashboards and reports</strong> to monitor quality trends and identify regressions over time.</li>\n</ul><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2802/1440;\" src=\"https://support.testrail.com/hc/article_attachments/49873450286868\" alt=\"Screenshot 2026-04-17 at 14.55.30.png\" width=\"2802\" height=\"1440\"></figure><p> </p><h2 id=\"h_01KT243EBK837B5E46E58XBZX0\"><strong>Flexible by Design</strong></h2><p>Because integrations are built using TestRail APIs, teams can connect virtually any AI observability or evaluation platform.</p><p>Whether results come from Langfuse traces, Promptfoo benchmarks, DeepEval metrics, OpenAI Evals, human reviewers, or proprietary evaluation systems, the integration pattern remains the same:</p><ol>\n<li data-list-item-id=\"e376a913fcaa6227a613ac6032472190f\">Execute a test scenario.</li>\n<li data-list-item-id=\"e81782136ee5955774ff2a4a3fbdc674a\">Generate evaluation results.</li>\n<li data-list-item-id=\"ea2ff5151955719d99013452c22abdb05\">Push the results into TestRail.</li>\n<li data-list-item-id=\"e4e2d89a0ba5aab25a0a88967d1370c65\">Track outcomes alongside your existing test cases, test suites, and release activities.</li>\n</ol><p>The result is a more structured approach to AI quality where evaluation results are no longer disconnected from the test cases they relate to, making it easier to measure coverage, track quality over time, and manage AI testing as part of the broader software delivery process.</p>","user_segment_ids":[]},{"id":49833111663380,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/49833111663380.json","html_url":"https://support.testrail.com/hc/en-us/articles/49833111663380-TestRail-10-4-1-1004-Docker-Image","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":10423185248404,"created_at":"2026-06-01T17:02:57Z","updated_at":"2026-06-09T20:07:07Z","name":"TestRail 10.4.1.1004 Docker Image","title":"TestRail 10.4.1.1004 Docker Image","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-09T17:07:45Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p><strong>Default release track date: 1-Jun-2026</strong></p><p data-start=\"264\" data-end=\"500\">We’re excited to announce the release of <strong data-start=\"701\" data-end=\"720\">TestRail 10.4.1</strong>, bringing one of our most requested usability updates, and a significant investment in platform quality.</p><div class=\"callout callout--info\">\n<p>Follow the Docker installation instructions here: TestRail<a href=\"https://support.testrail.com/hc/en-us/articles/39189742018836-Installation-of-9-3-1-on-Docker\"> </a><a href=\"https://support.testrail.com/hc/en-us/articles/43275062048660-Installation-of-9-4-1-through-9-8-1-on-Docker\">10.4.1 on Docker</a></p>\n<p>Please note that our recommended upgrade path is via TestRail 9.4.1. If you’re still running TestRail 7.0 or below, you should follow the path below:</p>\n<ul>\n<li data-list-item-id=\"e088dd0d190927bfcb22710b91fc5b949\"><a href=\"https://support.testrail.com/hc/en-us/articles/7421057816980-Installation-on-Docker-Overview\">upgrade to 7.5 first</a></li>\n<li data-list-item-id=\"e4749b15cc7b2470905db3be2fe86ff4c\"><a href=\"https://support.testrail.com/hc/en-us/articles/15565290467092-Installation-of-8-0-1-1029-on-Docker\">upgrade to 8.0.1</a></li>\n<li data-list-item-id=\"e1dbd6d9da2963fdd5f81f60f9a042e92\"><a href=\"https://support.testrail.com/hc/en-us/articles/27702973936660-Installation-of-8-0-4-7036-on-Docker\">upgrade to 8.0.4</a></li>\n<li data-list-item-id=\"e5ce7b111e5f4e1ec7feed548cfdadd83\"><a href=\"https://support.testrail.com/hc/en-us/sections/43228968454676-Installation-of-9-4-1-to-9-7-1-versions\">upgrade to 9.4.1</a></li>\n<li data-list-item-id=\"e987bce7ef141ae86ee3ca485dce41baf\">and only then <a href=\"https://support.testrail.com/hc/en-us/sections/43228968454676-Installation-of-9-4-1-to-9-7-1-versions\">upgrade to 10.4.1</a>\n</li>\n</ul>\n<p>ℹ️<strong> We've updated our upgrade guidelines with a new step:</strong> Suspend the Background Task Before Upgrading.</p>\n</div><p>Once the upgrade is complete, you must open _config/config.php in your Docker files folder, and add new line with: </p><pre class=\"language-auto\">define('TR_CHROME_PATH', '/usr/bin/chrome-headless-shell-linux64/chrome-headless-shell');</pre><h2 id=\"h_01KPDG9AM0YZN5TF18F0ESKGWB\"><strong>  ⚙️  API Improvements</strong></h2><p>The latest TestRail API enhancements are designed to make integrations and automation workflows more efficient, with improved filtering capabilities that help reduce unnecessary data handling and simplify automation at scale.</p><h3 id=\"h_01KRXE2QTV79XJKYGD5BP81J3V\" data-section-id=\"2b4hqt\" data-start=\"672\" data-end=\"712\">Less API overhead, faster automation</h3><ul>\n<li data-list-item-id=\"e5985317f07393dced4b4ca6f128336e2\">\n<strong>Dynamic filtering support</strong> for test runs through the API for more targeted data retrieval</li>\n<li data-list-item-id=\"ee201d8918a59090cbdb84a1762db8a60\">\n<strong>Reference filtering support</strong> for <em><strong>get_runs</strong></em> and <em><strong>get_plans</strong></em>\n</li>\n<li data-list-item-id=\"ed1a3644388012b7adc92876005f27dd5\">\n<em>case_id</em> now returned in <em><strong>get_results_for_runresponses</strong></em> for <strong>easier result mapping</strong>\n</li>\n<li data-list-item-id=\"e3cc688c615e4b57accb964d3c2b647a9\">A new<em><strong> edit_result/{result_id} </strong></em>endpoint that lets teams <strong>update existing results </strong>with support for partial updates, custom fields, and step results</li>\n</ul><p>These improvements help teams retrieve exactly the data they need with fewer API calls, less custom logic, and smoother automation workflows at scale.    </p><h3 id=\"h_01KRXE3A95D0CHTA0J1TAGFVZB\" data-section-id=\"1ehocyc\" data-start=\"1012\" data-end=\"1048\">Better parity between UI and API</h3><p data-start=\"1050\" data-end=\"1141\">This release continues closing gaps between UI and API workflows with improvements such as:</p><ul data-start=\"1143\" data-end=\"1299\">\n<li data-section-id=\"qete41\" data-start=\"1143\" data-end=\"1197\" data-list-item-id=\"e5c0ddd5b3a3767c6ecb4ec133dcbcc65\">Support for updating existing test results via API</li>\n<li data-section-id=\"1ka3qqy\" data-start=\"1198\" data-end=\"1258\" data-list-item-id=\"eb8dbdab6b6edf5bb230f41b4a5cc43ae\">Improved handling of <em><strong>update_run_in_plan_entry</strong></em> requests</li>\n<li data-section-id=\"1kpfxc3\" data-start=\"1259\" data-end=\"1299\" data-list-item-id=\"ec63438832bb4fda82a1a3eb47b84dfb6\">API formatting and consistency fixes</li>\n</ul><p data-start=\"1301\" data-end=\"1416\">This helps teams automate workflows more reliably and reduce discrepancies between manual and automated operations.</p><h3 id=\"h_01KRXE3WDWJ0J1AS4BPF7JC1RY\" data-section-id=\"v681xt\" data-start=\"1423\" data-end=\"1473\">Cleaner execution history and data consistency</h3><p data-start=\"1475\" data-end=\"1622\">Additional API and formatting improvements help preserve submitted data more accurately and improve execution history consistency across workflows.</p><h2 id=\"h_01KPDGVR2V3YKB0WQQ7SBZQ4AY\" data-section-id=\"1rlf1z8\" data-start=\"1975\" data-end=\"2001\"><strong data-start=\"402\" data-end=\"427\">🧩 Quality Improvements</strong></h2><p data-start=\"3083\" data-end=\"3243\">TestRail 10.4 also includes a significant round of quality improvements focused on stability, reporting accuracy, performance, and Jira integration reliability.</p><p data-start=\"3245\" data-end=\"3377\">These updates improve consistency across core workflows and reduce operational friction for both manual and automated testing teams.</p><h2 id=\"h_01KRXEN275KNVK5T83A463XRW7\"><strong>📣 Custom Fields - Important Update</strong></h2><p data-start=\"697\" data-end=\"827\">To help maintain platform performance and stability at scale, TestRail now enforces a limit of <strong data-start=\"792\" data-end=\"826\">150 custom fields per instance</strong>. If this limit is reached, administrators will need to remove an existing custom field before creating a new one.</p><p data-start=\"943\" data-end=\"983\"><strong>Existing custom fields are not affected.</strong></p><h2 id=\"h_01KKXTNYAQSACQ9W189B90FY07\">💻 <strong data-start=\"2630\" data-end=\"2651\">TestRail CLI 1.14.2</strong>\n</h2><p data-start=\"2627\" data-end=\"2738\">The latest version of the <strong data-start=\"2680\" data-end=\"2696\">TestRail CLI</strong> is now available with new capabilities. You can now:</p><ul>\n<li data-list-item-id=\"e07c88719db99bd5c65b26c3de4e9810c\">Upload results for the new <strong data-start=\"150\" data-end=\"175\">AI Test Case Template</strong>, including multi-dimensional quality ratings (requires TestRail 10.3.0 or higher)</li>\n<li data-list-item-id=\"e0f5532f5b74843619ae819b7e9313642\">Combine step-level execution tracking with AI evaluation quality ratings for more advanced AI testing workflows</li>\n<li data-list-item-id=\"e73ddfccf091bd657f009bfbf25668d3e\">Apply global quality ratings to all test results using --result-fields</li>\n<li data-list-item-id=\"ec32461e0d21a448369da99e80f64504a\">Automatically detect and create AI Test Case Template test cases when using auto-creation mode (-y)</li>\n<li data-list-item-id=\"eb47d573c8ae2d9d2f72643438f5be0cd\">Use custom case result statuses in Robot Framework and JUnit reports</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more in the <a href=\"https://github.com/gurock/trcli?tab=readme-ov-file#trcli---the-testrail-cli\">TestRail CLI documentation.</a>\n</div><h2 id=\"h_01KRZRA8QTCG1CN9CVASQ0QXMF\">🐞 Fixes and Improvements (23)</h2><ul>\n<li data-list-item-id=\"e280eb7905fd9266581d444b8e31d6939\">\n<strong>TR-9065: </strong>API-submitted test results formatting improved</li>\n<li data-list-item-id=\"e0ee17fe869752048623ca7b7c4acfea3\">\n<strong>TR-9276:</strong> Replaced attachments now display correctly</li>\n<li data-list-item-id=\"ef721c2a84ee61c4f593a6a409d883bf7\">\n<strong>TR-14188:</strong> Added <em>case_id</em> to <em>get_results_for_run</em> API response</li>\n<li data-list-item-id=\"e3202e907c2f08595dca35feec14de29c\">\n<strong>TR-14485: </strong>Resolved 403 errors for Project API endpoints</li>\n<li data-list-item-id=\"e4afbe1e0079569d0e8dcc4f5ffc6ae64\">\n<strong>TR-14959:</strong> Fixed the <em>get_label</em> API response to match the documented format.  </li>\n<li data-list-item-id=\"eb4b1e8989cc1d10169d032b07f5e47aa\">\n<strong>TR-14986:</strong> Fixed issue preventing new user creation</li>\n<li data-list-item-id=\"ed07ef85df533678951ca564b85d70cc7\">\n<strong>TR-16135:</strong> Added support for updating existing test results via API</li>\n<li data-list-item-id=\"e626fc5b1081099c3d95e1624eea9099f\">\n<strong>TR-16153:</strong> Added support for dynamic filters via API</li>\n<li data-list-item-id=\"e53b40e6d09280460ba49195c7786f24f\">\n<strong>TR-16686:</strong> Fixed Jira hover and push issue errors</li>\n<li data-list-item-id=\"e367f14ba681a4b21a28cc69775fae5c7\">\n<strong>TR-16916:</strong> Fixed attachment deletion for <em>project_id</em> 0</li>\n<li data-list-item-id=\"e32b8f7d6841c21c0eb7583db052f4dd8\">\n<strong>TR-16988: </strong>Reference field updates now persist correctly in test plans</li>\n<li data-list-item-id=\"eb7cac97b3774c513b5d522b15ad71d79\">\n<strong>TR-17088: </strong>Fixed API errors when fetching test cases</li>\n<li data-list-item-id=\"eaabf54834a48b6e33ccf568aaa1baef8\">\n<strong>TR-17297:</strong> Fixed filtering issues when creating sub-sections and test cases</li>\n<li data-list-item-id=\"e0dd52c5c12d8aebc5f813d72e7c96ff5\">\n<strong>TR-18804:</strong> Improved dynamic filtering behavior with custom case fields</li>\n<li data-list-item-id=\"eaa1dacf6013cc54f49e52b173640d1b5\">\n<strong>TR-19150:</strong> Fixed PDF report download issues</li>\n<li data-list-item-id=\"ed8831b3a61b1b739281a9b3adb83d0f5\">\n<strong>TR-19304:</strong> Added reference filtering support to<em> get_runs</em>  and <em>get_plans</em> APIs</li>\n<li data-list-item-id=\"e8f77769ca8a1fe322b66c0e2f7d00ceb\">\n<strong>TR-19442:</strong> Audit log now captures user creation and update events</li>\n<li data-list-item-id=\"e187daee086717cf91d161ee751d373f3\">\n<strong>TR-19455:</strong> Resolved duplicate test results returned by <em>get_tests</em>  API</li>\n<li data-list-item-id=\"eec4af46f50b7e99a2d5d3c540f9c146e\">\n<strong>TR-19470:</strong> Improved performance when adding or editing test cases</li>\n<li data-list-item-id=\"ea08a479b40c37faa054cd7123908803b\">\n<strong>TR-19609:</strong> Corrected mismatched counts in Coverage for References reports</li>\n<li data-list-item-id=\"e3134a8020edb23397d74933123c3fe88\">\n<strong>TR-19628: </strong>Restored missing permissions section for SuperUser role</li>\n<li data-list-item-id=\"ed9fb9f5163f303e1a16f932efc375311\">\n<strong>TR-19728:</strong> Improved <em>update_run_in_plan_entry</em>  behavior consistency</li>\n</ul><h2 id=\"h_01K59P0VAD6V8X7SWNZBQYKZ0K\">📌 Cassandra Deprecation Enforcement</h2><p>Starting with TestRail 9.5 Server, <strong data-start=\"2152\" data-end=\"2182\">Cassandra is officially deprecated and enforcement is in place.</strong></p><ul>\n<li data-list-item-id=\"e604b0f67870a0e5d84012ae4f9e77e86\">Admins must first run the <strong data-start=\"2434\" data-end=\"2465\">Cassandra deprecation script</strong> in <strong data-start=\"2434\" data-end=\"2465\">version 9.4.1</strong> before upgrading to 9.5.</li>\n<li data-list-item-id=\"e6bed8d8ff55dc998a21e59e8364c8edb\">If the script has not been executed, the upgrade to 9.5 will be blocked and a  <strong data-start=\"2152\" data-end=\"2182\">warning message will be displayed</strong>  during the upgrade process.</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Please check our <a href=\"https://support.testrail.com/hc/en-us/sections/39794668286484-Cassandra-Deprecation\">Cassandra Deprecation</a> documentation.</div><p> </p>","user_segment_ids":[]},{"id":49356250602388,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/49356250602388.json","html_url":"https://support.testrail.com/hc/en-us/articles/49356250602388-TestRail-10-4-1-Default-1004","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":-6,"vote_count":6,"section_id":10423156702740,"created_at":"2026-05-18T11:47:04Z","updated_at":"2026-06-17T12:35:18Z","name":"TestRail 10.4.1 Default (1004)","title":"TestRail 10.4.1 Default (1004)","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-17T12:35:18Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p style=\"box-sizing: border-box; margin: 0 0 calc(var(--line-height-computed)); color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\n    <strong style=\"box-sizing: border-box; font-weight: bold;\">Early Access release track date: 19-May-2026\n</strong>\n  </p><p><strong style=\"-webkit-text-stroke-width: 0px; background-color: #ffffff; box-sizing: border-box; color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\">Default release track date: 1-Jun-2026</strong></p><p data-start=\"1033\" data-end=\"1191\">We’re excited to announce the release of <strong data-start=\"1074\" data-end=\"1093\">TestRail 10.4.1</strong>, focused on <strong>improving API capabilities, automation scalability, and overall platform reliability.</strong></p><p data-start=\"1193\" data-end=\"1369\">This release expands what teams can automate through the TestRail API, reduces integration complexity, and includes a broad set of fixes and improvements across core workflows.</p><h2 id=\"h_01KPDG9AM0YZN5TF18F0ESKGWB\"><strong>  ⚙️  API Improvements</strong></h2><p>The latest TestRail API enhancements are designed to make integrations and automation workflows more efficient, with improved filtering capabilities that help reduce unnecessary data handling and simplify automation at scale.</p><h3 id=\"h_01KRXE2QTV79XJKYGD5BP81J3V\" data-section-id=\"2b4hqt\" data-start=\"672\" data-end=\"712\">Less API overhead, faster automation</h3><ul>\n<li data-list-item-id=\"e328235cf731cf6c35a9f852e5838bb46\">\n<a href=\"https://support.testrail.com/hc/en-us/articles/49616364363924-Dynamic-Filter-Fields\"><strong>Dynamic filtering support</strong></a> for test runs through the API for more targeted data retrieval </li>\n<li data-list-item-id=\"e5a977018f283a7743d4dd0d5718994ae\">\n<strong>Reference filtering support</strong> for <a href=\"https://support.testrail.com/hc/en-us/articles/7077874763156-Runs#getruns\"><em><strong>get_runs</strong></em></a> and <a href=\"https://support.testrail.com/hc/en-us/articles/7077711537684-Plans#getplans\"><em><strong>get_plans</strong></em></a>\n</li>\n<li data-list-item-id=\"eec7870b09de84c1ce70a0ef100d85265\">\n<em>case_id</em> now returned in <a href=\"https://support.testrail.com/hc/en-us/articles/7077819312404-Results#getresultsforrun\"><em><strong>get_results_for_run</strong></em></a><em><strong> </strong></em>responses for <strong>easier result mapping</strong>\n</li>\n<li data-list-item-id=\"e509ee30f2468a141795b2e222ac4774d\">A new<em><strong> </strong></em><a href=\"https://support.testrail.com/hc/en-us/articles/7077819312404-Results#h_01KV8FNPHC6XX71RVD71137KMK\"><em><strong>edit_result/{result_id}</strong></em></a><em><strong> </strong></em>endpoint that lets teams <strong>update existing results </strong>with support for partial updates, custom fields, and step results</li>\n</ul><p>These improvements help teams retrieve exactly the data they need with fewer API calls, less custom logic, and smoother automation workflows at scale.    </p><h3 id=\"h_01KRXE3A95D0CHTA0J1TAGFVZB\" data-section-id=\"1ehocyc\" data-start=\"1012\" data-end=\"1048\">Better parity between UI and API</h3><p data-start=\"1050\" data-end=\"1141\">This release continues closing gaps between UI and API workflows with improvements such as:</p><ul data-start=\"1143\" data-end=\"1299\">\n<li data-section-id=\"qete41\" data-start=\"1143\" data-end=\"1197\" data-list-item-id=\"e1471a76b92042d193b924de8ddcf74d8\">Support for updating existing test results via API</li>\n<li data-section-id=\"1ka3qqy\" data-start=\"1198\" data-end=\"1258\" data-list-item-id=\"eb81dc60bdada0c6d4529bc6695b932e5\">Improved handling of <em><strong>update_run_in_plan_entry</strong></em> requests</li>\n<li data-section-id=\"1kpfxc3\" data-start=\"1259\" data-end=\"1299\" data-list-item-id=\"e6f69a28beb18d47799d19c19ed0c4fda\">API formatting and consistency fixes</li>\n</ul><p data-start=\"1301\" data-end=\"1416\">This helps teams automate workflows more reliably and reduce discrepancies between manual and automated operations.</p><h3 id=\"h_01KRXE3WDWJ0J1AS4BPF7JC1RY\" data-section-id=\"v681xt\" data-start=\"1423\" data-end=\"1473\">Cleaner execution history and data consistency</h3><p data-start=\"1475\" data-end=\"1622\">Additional API and formatting improvements help preserve submitted data more accurately and improve execution history consistency across workflows.</p><h2 id=\"h_01KPDGVR2V3YKB0WQQ7SBZQ4AY\" data-section-id=\"1rlf1z8\" data-start=\"1975\" data-end=\"2001\"><strong data-start=\"402\" data-end=\"427\">🧩 Quality Improvements</strong></h2><p data-start=\"3083\" data-end=\"3243\">TestRail 10.4 also includes a significant round of quality improvements focused on stability, reporting accuracy, performance, and Jira integration reliability.</p><p data-start=\"3245\" data-end=\"3377\">These updates improve consistency across core workflows and reduce operational friction for both manual and automated testing teams.</p><h2 id=\"h_01KRXEN275KNVK5T83A463XRW7\"><strong>📣 Custom Fields - Important Update</strong></h2><p data-start=\"697\" data-end=\"827\">To help maintain platform performance and stability at scale, TestRail now enforces a limit of <strong data-start=\"792\" data-end=\"826\">150 custom fields per instance</strong>. If this limit is reached, administrators will need to remove an existing custom field before creating a new one.</p><p data-start=\"943\" data-end=\"983\"><strong>Existing custom fields are not affected.</strong></p><h2 id=\"h_01KKXTNYAQSACQ9W189B90FY07\">💻 <strong data-start=\"2630\" data-end=\"2651\">TestRail CLI 1.14.2</strong>\n</h2><p data-start=\"2627\" data-end=\"2738\">The latest version of the <strong data-start=\"2680\" data-end=\"2696\">TestRail CLI</strong> is now available with new capabilities. You can now:</p><ul>\n<li data-list-item-id=\"eea0327af7428ea800896362923970642\">Upload results for the new <strong data-start=\"150\" data-end=\"175\">AI Test Case Template</strong>, including multi-dimensional quality ratings (requires TestRail 10.3.0 or higher)</li>\n<li data-list-item-id=\"ec5e201def89cf0e4b047b7a5dd8b5ece\">Combine step-level execution tracking with AI evaluation quality ratings for more advanced AI testing workflows</li>\n<li data-list-item-id=\"ed6197ce7cbbf5d5f4cc39761790d2d0a\">Apply global quality ratings to all test results using --result-fields</li>\n<li data-list-item-id=\"eb247fe034f255df7ec18140cb7f1f380\">Automatically detect and create AI Test Case Template test cases when using auto-creation mode (-y)</li>\n<li data-list-item-id=\"e092d26dadc32f32d160dba2444298d51\">Use custom case result statuses in Robot Framework and JUnit reports</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more in the <a href=\"https://github.com/gurock/trcli?tab=readme-ov-file#trcli---the-testrail-cli\">TestRail CLI documentation.</a>\n</div><h2 id=\"h_01KRZRA8QTCG1CN9CVASQ0QXMF\">🐞 Fixes and Improvements (23)</h2><ul>\n<li data-list-item-id=\"ebbbf4957ecd9a0815f6b1ac04018ed70\">\n<strong>TR-9065: </strong>API-submitted test results formatting improved</li>\n<li data-list-item-id=\"edb954c99f3c2397ca8a3d805881ead7c\">\n<strong>TR-9276:</strong> Replaced attachments now display correctly</li>\n<li data-list-item-id=\"e8d8ee3ae033bd65e59796b06670c8fd2\">\n<strong>TR-14188:</strong> Added <em>case_id</em> to <em>get_results_for_run</em> API response</li>\n<li data-list-item-id=\"e87d94708eceb34350fc6441c28e4fbaa\">\n<strong>TR-14485: </strong>Resolved 403 errors for Project API endpoints</li>\n<li data-list-item-id=\"ef72c2e4c0ecd7dffad502a27dde81886\">\n<strong>TR-14959:</strong> Fixed the <em>get_label</em> API response to match the documented format.  </li>\n<li data-list-item-id=\"e59084ae820efd89f8a8654c413e0b66c\">\n<strong>TR-14986:</strong> Fixed issue preventing new user creation</li>\n<li data-list-item-id=\"e994870142a3f2a871bf1e85013b1295b\">\n<strong>TR-16135:</strong> Added support for updating existing test results via API</li>\n<li data-list-item-id=\"e02b45cb1ff3e4aa5396090c597675e0e\">\n<strong>TR-16153:</strong> Added support for dynamic filters via API</li>\n<li data-list-item-id=\"efb68572260e203148857b7736c0c1440\">\n<strong>TR-16686:</strong> Fixed Jira hover and push issue errors</li>\n<li data-list-item-id=\"ef433a4cceca3d10f3ab17186c1feb741\">\n<strong>TR-16916:</strong> Fixed attachment deletion for <em>project_id</em> 0</li>\n<li data-list-item-id=\"e40206e325cf0b122146b0075f1a90b7d\">\n<strong>TR-16988: </strong>Reference field updates now persist correctly in test plans</li>\n<li data-list-item-id=\"ea185b25a0c218416512a23c1ee8e3bd2\">\n<strong>TR-17088: </strong>Fixed API errors when fetching test cases</li>\n<li data-list-item-id=\"ef7a4cb33f9f227d15295e66fb5c6af0c\">\n<strong>TR-17297:</strong> Fixed filtering issues when creating sub-sections and test cases</li>\n<li data-list-item-id=\"e2a8bfb8ffb9de716e3a0c2560253ed86\">\n<strong>TR-18804:</strong> Improved dynamic filtering behavior with custom case fields</li>\n<li data-list-item-id=\"e7bf40cfd586d91e34727eb5ab734f3e3\">\n<strong>TR-19150:</strong> Fixed PDF report download issues</li>\n<li data-list-item-id=\"e5d31616b5ddc3d1e52d195414c42091f\">\n<strong>TR-19304:</strong> Added reference filtering support to<em> get_runs</em>  and <em>get_plans</em> APIs</li>\n<li data-list-item-id=\"e8c6f9429670023f960f3580b18ce863f\">\n<strong>TR-19442:</strong> Audit log now captures user creation and update events</li>\n<li data-list-item-id=\"e86618476e524d37354aef3226d3383dc\">\n<strong>TR-19455:</strong> Resolved duplicate test results returned by <em>get_tests</em>  API</li>\n<li data-list-item-id=\"e6ceba9745614f1c71520022c0b813bd7\">\n<strong>TR-19470:</strong> Improved performance when adding or editing test cases</li>\n<li data-list-item-id=\"e97d7793c308449a3cdf6e48b7781a3ca\">\n<strong>TR-19609:</strong> Corrected mismatched counts in Coverage for References reports</li>\n<li data-list-item-id=\"ee09f94609f801b4b185b66f63bfbc699\">\n<strong>TR-19628: </strong>Restored missing permissions section for SuperUser role</li>\n<li data-list-item-id=\"eb7ee9ce89663c096e91fbb2860686a9f\">\n<strong>TR-19728:</strong> Improved <em>update_run_in_plan_entry</em>  behavior consistency</li>\n</ul>","user_segment_ids":[]},{"id":49138068019604,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/49138068019604.json","html_url":"https://support.testrail.com/hc/en-us/articles/49138068019604-Understanding-AI-Reasons-in-Prioritise-with-AI","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":46556666909460,"created_at":"2026-05-11T17:27:22Z","updated_at":"2026-06-17T14:14:06Z","name":"Understanding AI Reasons in Prioritise with AI","title":"Understanding AI Reasons in Prioritise with AI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-17T14:14:05Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>AI Reasons explain why a test case was recommended, prioritised, or left out of the current AI prioritisation results.</p><p>These reasons are based on signals such as execution history, recent activity, failures, bugs, priority, duration, and test case completeness.</p><p>Use AI Reasons as decision support. They help you understand why a test may be important for the current testing goal, but they should be reviewed together with your product knowledge, release scope, and testing strategy.</p><h2 id=\"h_01KRC1R5Y2THWDT340N3YW8333\"><strong>AI Reasons you may see</strong></h2><h3 id=\"h_01KRC1R5Y5RBGKMSZ8GEA7MX3E\">Execution activity</h3><p>These reasons are based on how often a test is executed and how recently it has been used.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e78ffe4a8c91e67f0d3e4a6427e8db388\">“low historical execution frequency”</li>\n<li data-list-item-id=\"ef5b3847dec3834cefc6044c935a2b048\">“high recent execution frequency”</li>\n<li data-list-item-id=\"e642cc18814dd158769e6c66c068ca2e9\">“recent execution count”</li>\n<li data-list-item-id=\"ea406a24a2555eb0fdda27c4028942da9\">“execution regularity”</li>\n<li data-list-item-id=\"ea6a729a606d905a4ee83ececd7677212\">“infrequent execution intervals”</li>\n<li data-list-item-id=\"e5079b3ec79e1d0a11ae0f1437fcd6137\">“long gap since last execution”</li>\n<li data-list-item-id=\"e138048cf6f0ca07d6106470634dc2024\">“extended period of inactivity”</li>\n<li data-list-item-id=\"e1cfd55a46325133c3bd321bc6ad8345f\">“average execution interval is 5 days or more”</li>\n<li data-list-item-id=\"e911664844e8d7dc423db711413cf3b65\">“execution frequency is low”</li>\n<li data-list-item-id=\"eb893ba4186db5d11d26afdea23310f39\">“recent execution count is below the expected level”</li>\n<li data-list-item-id=\"e9eef38f5ae2febbfdec37d4b06a89713\">“recent execution frequency is below the expected level”</li>\n</ul><p>What this means:</p><p>The AI is looking at whether the test is used regularly, whether it has been executed recently, and whether it appears to be part of normal testing activity. Tests with very low activity may be less relevant for some prioritisation goals, while frequently executed tests may indicate important regression or business critical coverage.</p><h3 id=\"h_01KRC1S3AVKY802ZV7A3Y9GBH2\">Failures and stability</h3><p>These reasons are based on failed runs, recent failures, repeated failures, and unstable outcomes.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e1bf401bcd8e47c3b381d4522da777f20\">“active failure streak”</li>\n<li data-list-item-id=\"e1a9171802783c2bbd4a0bc80354a9940\">“recurring failure streaks”</li>\n<li data-list-item-id=\"e98bef564dd4481b554c9d0480ef55ecf\">“historical failure rate signals”</li>\n<li data-list-item-id=\"ee759743f3f307d8868adef16c47a73e0\">“historical failure frequency”</li>\n<li data-list-item-id=\"eb2cb913813bf70926f133de69706dbd9\">“high historical failure rate”</li>\n<li data-list-item-id=\"e708e94b448a4eddc6389b3fcc2da7ed9\">“unstable execution history”</li>\n<li data-list-item-id=\"e4d81f1c709a8f8fb8ed1f7ca61cf822a\">“unstable execution outcomes”</li>\n<li data-list-item-id=\"e918e814c777d4df6b779059158b4798e\">“failed within last thirty days”</li>\n<li data-list-item-id=\"e31fe43874794eda053ef986b0b5889c0\">“failed within last month”</li>\n<li data-list-item-id=\"e546d20b6a94968bab29020ebdb6c113c\">“last execution failed”</li>\n<li data-list-item-id=\"e6ef3d8d670ae9461c47ab975ca5e3734\">“last run failed”</li>\n<li data-list-item-id=\"e88e43ea8bd65f09473bbbf28ec8168d6\">“recent failure occurrence”</li>\n<li data-list-item-id=\"e7c76569f6ecc3026b60a00da7a7c676f\">“recent failure patterns”</li>\n<li data-list-item-id=\"e93cddeec8d752b14a6cc655797f91abf\">“weighted recent failure trend”</li>\n<li data-list-item-id=\"ebba0e1e648a9a515336f72f9cfa50bc1\">“poor recovery after failures”</li>\n<li data-list-item-id=\"e160adfac762d1e1ee317b818997d9087\">“consecutive failures reach or exceed threshold”</li>\n<li data-list-item-id=\"ed26b255b73b594013a6cd45a149120b5\">“days since last failure exceeds 14 days”</li>\n</ul><p>What this means:</p><p>The AI is identifying tests that may point to unstable or risky product areas. Recent failures, repeated failures, and inconsistent outcomes can indicate areas that may need closer attention before release.</p><h3 id=\"h_01KRC1SESTJ0DJS6P9VKQFJAEA\">Bugs and risk signals</h3><p>These reasons are based on bugs linked to previous executions or the test area.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e112f80a43a9ad090e0b52378e4f453ac\">“high bug density”</li>\n<li data-list-item-id=\"ee8cb096b3cd3bc07edab0bff55750b04\">“high bug density per execution”</li>\n<li data-list-item-id=\"ed3c789ff4928e5340de3c24503aed697\">“normalised bug density”</li>\n<li data-list-item-id=\"e80348b3896361ca3d5e6a3cf8d19a08f\">“more than 10 bugs in the last 10 executions”</li>\n<li data-list-item-id=\"ee039cd93bcb2682de10c0befbe10c3ad\">“total bugs count exceeds 30”</li>\n<li data-list-item-id=\"ef4218bd8e86d6fd00c42d3a00a3a0a18\">“bugs per execution is above the selected threshold”</li>\n</ul><p>What this means:</p><p>The AI is looking at whether this test or test area has historically been associated with many bugs. A high number of bugs can indicate higher product risk and may make the test more important to review or execute.</p><h3 id=\"h_01KRC1SR3SMVPT0EBK5DBY5Z5B\">Priority and smoke testing relevance</h3><p>These reasons are based on the priority assigned to the test case.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e7677126ca1823ff3fc6ffef79c6f9f13\">“based on native priority”</li>\n<li data-list-item-id=\"eb00d8f1b5b5e794c8dc53909b898a818\">“prioritizes critical and high priority cases for smoke scope”</li>\n<li data-list-item-id=\"e3ceb77ce987f171dc2fd8da56286a35d\">“test belongs to the top 3 priority levels”</li>\n</ul><p>What this means:</p><p>The AI is taking the test case priority into account. Critical or high priority tests may be more relevant when building focused test runs, smoke tests, or risk based testing scopes.</p><h3 id=\"h_01KRC1XB6Z8HKD8QACX6N5FBR4\">Duration and test effort</h3><p>These reasons are based on estimated execution time.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e18f549f0a495170c3fcc79716b92e91b\">“short estimated duration”</li>\n<li data-list-item-id=\"ebebed3ca4b7f76cec2e7ed566d655873\">“penalty for long duration”</li>\n<li data-list-item-id=\"e7e61598c7e1c1a149cd1f35344fff996\">“complex and time consuming procedures”</li>\n<li data-list-item-id=\"e0e45a240b7491e5d8214186f096ec403\">“estimated duration is 60 minutes”</li>\n<li data-list-item-id=\"e58084df1ed671da6ad90795abecc442c\">“test is classified as short”</li>\n</ul><p>What this means:</p><p>The AI is considering how much effort the test may take to execute. Shorter tests may be useful for fast feedback cycles, while longer tests may be deprioritised or left out depending on the selected goal.</p><h3 id=\"h_01KRC1XXP4C4H1QP6M1SZWP4S8\">Problematic statuses</h3><p>These reasons are based on execution statuses that may indicate risk or require attention.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e845f75f19eb4747fcbb667906c13663e\">“latest run matches problematic status”</li>\n<li data-list-item-id=\"ec99cdc6a2665b3897a189e7afa7eb137\">“frequent problematic status history”</li>\n</ul><p>What this means:</p><p>The AI is looking at whether the test has recently ended in a status that may need attention, or whether problematic statuses appear often in its execution history.</p><h2 id=\"h_01KRC1YF3AH7Y9DM1RM6WB2VQC\"><strong>Reasons that start with “out of scope because”</strong></h2><p>Some AI Reasons explain why a test was not included in the current result set.</p><p>Examples:</p><ul data-spread=\"false\">\n<li data-list-item-id=\"e7a2a8473a6651a92aa8c86c545f237e5\">“out of scope because execution frequency is low”</li>\n<li data-list-item-id=\"e900596d45e026663060d77073eb88604\">“out of scope because recent execution count is below the expected level”</li>\n<li data-list-item-id=\"ea0560bd7da4fb0e396bfef84c131ce9f\">“out of scope because estimated duration is 60 minutes”</li>\n<li data-list-item-id=\"ed61dcb0b0eabf7b67cbede2328cc9d5a\">“out of scope because test has empty fields or incomplete metadata”</li>\n<li data-list-item-id=\"ecef4128bca32ced93257cb756dbf046f\">“out of scope because test is untested”</li>\n</ul><p>What this means:</p><p>The test did not match the current prioritisation goal or selected criteria. This does not always mean the test is unimportant. It means the test was not considered a good fit for the current AI recommendation context.</p><div><div id=\"textdoc-message-6a0212eb9ad4819184c3f6048e5fb0fb\"><div><div><section><section><div><div><div><div><div id=\"prosemirror-editor-container\"><div>\n<h2 id=\"h_01KRC1YVR91ZXG21STZ0ZFYRQ1\"><strong>How to use AI Reasons</strong></h2>\n<p>Use AI Reasons to understand the recommendation, then apply QA judgement.</p>\n<p>For example:</p>\n<ul data-spread=\"false\">\n<li data-list-item-id=\"e032b299313cd8c7e3c36cf5b7c873c51\">If a test failed recently, it may be worth including in a regression run.</li>\n<li data-list-item-id=\"eb762b3393540a1e5528b47748b234c55\">If a test has many bugs linked to it, it may point to a risky area.</li>\n<li data-list-item-id=\"ef2c69d8cbfbe2d225605aa2c16162e70\">If a test is frequently executed, it may cover an important workflow.</li>\n<li data-list-item-id=\"eb1122aece2d1ff5acbfebe5b7d9be9ba\">If a test has not been executed for a long time, check whether it is still relevant.</li>\n<li data-list-item-id=\"efb518d68b4601cac96bfaedf5d177a10\">If a test has incomplete metadata, review and update the test case details.</li>\n</ul>\n<p>AI Reasons help make prioritisation more transparent, so testers can quickly see why a test was recommended and decide what action to take next.</p>\n</div></div></div></div></div></div></section></section></div></div></div></div><h3 id=\"h_01KRC1SR3YM9Y9JCAFG7EVG8VA\"></h3>","user_segment_ids":[]},{"id":48535902368020,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/48535902368020.json","html_url":"https://support.testrail.com/hc/en-us/articles/48535902368020-TestRail-Azure-DevOps-App","author_id":6916166854292,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":7403920119956,"created_at":"2026-04-23T19:20:24Z","updated_at":"2026-05-14T15:32:14Z","name":"TestRail Azure DevOps App","title":"TestRail Azure DevOps App","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-05-13T20:32:24Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>For teams that use Azure DevOps Cloud, TestRail comes with a Azure DevOps app that you can install in your Azure DevOps instance for free. Once you install the app, you can enable the Azure DevOps board add-on to view TestRail data relating to <strong>test results, cases, runs, milestones, and plans</strong> right within Azure DevOps issues that you’ve linked as <strong>References</strong> or <strong>Defects</strong> in TestRail.</p><div class=\"callout callout--info\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01KRHGJXS3ND3AZ4DSKT3HBQP0\"><em class=\"fas fa-info-circle\"> </em></h4>\n<p>Please note that each Azure DevOps user who wishes to use the free Azure DevOps app will need to be logged into a valid TestRail account. </p>\n</div><p>You can also add new test cases, kick off new test runs from Azure DevOps, and review the overall progress of your testing by viewing dashboards for individual projects and overall activity in your TestRail instance.</p><p>To install the Azure DevOps app, go to the Marketplace, search for the TestRail Azure DevOps app add-on and click Install.</p><div class=\"callout\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01KRHGJXS37F9D0PE1GDY37GFN\"><em class=\"fas fa-code-branch\"> </em></h4>\n<p>As of TestRail 10.3.1, the app is available only for Azure Devops Cloud and can connect to TestRail Cloud and Server. The Azure DevOps Server version will be released in a later date to be announced.</p>\n</div><h2 id=\"h_01KR3WR2XXM8TKHTX038B2Z72F\">TestRail Azure DevOps Panel</h2><p>Once you have successfully installed the TestRail Azure DevOps add-on, and once you enter your instance, the \"TestRail: Results\" panel is located by default on one of the narrow panels of the Azure DevOps' work item details area. </p><p>We recommend you to move the \"TestRail: Results\" panel to the wider (main) panel of Azure DevOps work item view. This way you have a better view and control of it:</p><ol class=\"list-colored\">\n    <li>\n      Go to <strong>Organization</strong> settings.\n    </li>\n    <li>\n      Under <strong>Boards, </strong>click <strong>Process.</strong>\n    </li>\n    <li>\n      Select where the TestRail app will be used (e.g. Basic, Agile, etc).\n    </li>\n    <li>\n      Click the <strong>(...) </strong>button and click\n      <strong>Create inherited process.</strong>\n    </li>\n    <li>\n      <span data-teams=\"true\">Inside the new window, enter the new process name (e.g. \"TestRail View\") and click <strong>Create Process</strong>.</span>\n    </li>\n    <figure class=\"wysiwyg-image\">\n      <img style=\"aspect-ratio: 508/509;\" src=\"https://support.testrail.com/hc/article_attachments/49052721585428\" alt=\"ADO1.png\" width=\"508\" height=\"509\">\n    </figure>\n    <li>Once the child process is created, select it.</li>\n    <figure class=\"wysiwyg-image\">\n      <img style=\"aspect-ratio: 626/202;\" src=\"https://support.testrail.com/hc/article_attachments/49052721587732\" alt=\"ADO2.png\" width=\"626\" height=\"202\">\n    </figure>\n    <li>\n      Click the Work Item name you wish to\n      <span data-teams=\"true\">customize (e.g. \"Epic\").</span>\n    </li>\n    <li>\n      <span data-teams=\"true\">Drag and drop the \"TestRail Results\" panel to the wider area under <strong>Description</strong>.</span>\n    </li>\n    <figure class=\"wysiwyg-image\">\n      <img style=\"aspect-ratio: 1241/632;\" src=\"https://support.testrail.com/hc/article_attachments/49052658140308\" alt=\"ADO3.png\" width=\"1241\" height=\"632\">\n    </figure>\n  </ol><p><br>You can now view the \"TestRail Results\" panel in a more comfortable and familiar way.</p><h2 id=\"h_01HRWBSRQBM4KZ2Y5G3DQ6WCPM\">TestRail Results section in the Azure DevOps issue view</h2><p><span style=\"font-weight: 400;\">To open <strong>TestRail: Results</strong> in your customized Azure DevOps panel, click <strong>Show</strong> to expand the section and see the test information.</span></p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1048/705;\" src=\"https://support.testrail.com/hc/article_attachments/49130343717012\" alt=\"ADO4.5.png\" width=\"1048\" height=\"705\"></figure><p><br>The new section show tabs with the information referenced in TestRail in each entity type, as you can see in the blue buttons panel in the image below.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 917/564;\" src=\"https://support.testrail.com/hc/article_attachments/49211691816468\" width=\"917\" height=\"564\"></figure><p><br><span style=\"font-weight: 400;\">Clicking each tab should show you all the results you link from Azure DevOps to TestRail that you specifically want to see. All the information you see will be any result linked to that specific Azure DevOps issue as a <strong>Reference</strong> and/or <strong>Defect</strong> from your TestRail instance.</span></p><p><span style=\"font-weight: 400;\">For example, you could link a test case to a Azure DevOps issue. Under the </span><strong>Cases </strong><span style=\"font-weight: 400;\">tab, you will see all the times that test case was tested and access them directly from the Work Item while also getting all the information you need with a drop-down option (highlighted in the below screenshot) for each element to see extra details. </span></p><p><span style=\"font-weight: 400;\">Similarly, you can see results under any of the other tab options once you've linked them in TestRail.</span></p><p><span style=\"font-weight: 400;\">This information can be seen in a very similar way as you see it in your TestRail instance, making it easier to interpret and access.</span></p><h2 id=\"h_01HRWBSRQB39YM4RH86W7RM5D9\">Test cases and test runs in the issue view</h2><p><span style=\"font-weight: 400;\">To quickly link new Cases and Runs in Azure DevOps, you can do it directly from the right side menu in each issue, clicking <strong>Add Test Case </strong>and <strong>Add Run</strong> buttons.</span></p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 355/302;\" src=\"https://support.testrail.com/hc/article_attachments/49130343725460\" alt=\"ADO6.png\" width=\"355\" height=\"302\"></figure><p><br><span style=\"font-weight: 400;\">Once you click either one,</span><span style=\"font-weight: 400;\"> a small section should appear underneath the <strong>Add Test Case / Add Run </strong>button where you </span><span style=\"font-weight: 400;\">can choose from a small dropdown a TestRail project in which you can quickly create the new case or run.</span><img src=\"https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on205.png\" alt=\"\" srcset=\"https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on205.png 983w, https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on205-300x168.png 300w, https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on205-768x431.png 768w\" sizes=\"(max-width: 983px) 100vw, 983px\" title=\"\"> </p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 343/279;\" src=\"https://support.testrail.com/hc/article_attachments/49130338757268\" alt=\"ADO7.png\" width=\"343\" height=\"279\"></figure><p><br><span style=\"font-weight: 400;\">This action will take you to the Add Test Case or Add Test Run page in your TestRail instance, where you can configure a case or a run. You should notice that the Azure DevOps issue ID has already been added to the </span><strong>References </strong><span style=\"font-weight: 400;\">field, thus creating traceability between the Azure DevOps issue and TestRail entity.</span><img src=\"https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on207.png\" alt=\"\" srcset=\"https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on207.png 865w, https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on207-300x155.png 300w, https://www.gurock.com/wp-content/uploads/2022/05/Jira20add-on207-768x396.png 768w\" sizes=\"(max-width: 865px) 100vw, 865px\" title=\"\"></p><p><span style=\"font-weight: 400;\">You can check if the reference was successfully linked to the issue by refreshing the Azure DevOps page and rechecking the corresponding tab under </span><strong>TestRail: Results </strong><span style=\"font-weight: 400;\">to see the reference details.</span></p><p><span style=\"font-weight: 400;\">That way, the case or run can be linked to the Azure DevOps issue and be verified for easy access from your instance directly.</span></p><div class=\"callout callout--info\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01HRWBSRQBX2XAWGM0AW644QH4\"><em class=\"fas fa-info-circle\"> </em></h4>\n<p><span style=\"font-weight: 400;\">To link existing test cases or runs (from TestRail) to a Azure DevOps issue, you need to access the case or run from your TestRail instance and click </span><strong>Edit</strong><span style=\"font-weight: 400;\">. </span><span style=\"font-weight: 400;\">After editing the References field in TestRail, simply click on Save and refresh the Azure DevOps issue page. The newly added details will appear in the corresponding tab, the same way as explained above.</span></p>\n</div>","user_segment_ids":[]},{"id":48529694385940,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/48529694385940.json","html_url":"https://support.testrail.com/hc/en-us/articles/48529694385940-Configuring-a-Theme-Light-or-Dark-in-TestRail","author_id":12818215810836,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":-6,"vote_count":8,"section_id":7076692244500,"created_at":"2026-04-23T16:40:39Z","updated_at":"2026-06-23T06:33:45Z","name":"Configuring a Theme (Light or Dark) in TestRail","title":"Configuring a Theme (Light or Dark) in TestRail","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-04-23T16:40:44Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<h2 id=\"h_01JV336NE0P2TVQ3WSPEDA5A1X\">Overview</h2><p>As of TestRail 910.3, you can switch between <strong data-start=\"233\" data-end=\"242\">Light</strong> and <strong data-start=\"247\" data-end=\"255\">Dark</strong> themes to match your working environment and personal preference.</p><ul data-start=\"323\" data-end=\"439\">\n<li data-section-id=\"28ofzz\" data-start=\"323\" data-end=\"352\" data-list-item-id=\"ef7013f546b3b0f460bc5d10160a3c4cb\">\n<strong data-start=\"325\" data-end=\"334\">Light:</strong> Default theme</li>\n<li data-section-id=\"1dslo2m\" data-start=\"353\" data-end=\"439\" data-list-item-id=\"ef4a648e350cef9a0cf455201424cd585\">\n<strong data-start=\"355\" data-end=\"363\">Dark:</strong> Reduces brightness and can help minimize eye strain during extended use</li>\n</ul><h2 id=\"h_01JV33H9FD4NWCJ4BZ9KMNWNTM\">Change your theme</h2><p>To select a theme:</p><ol class=\"list-colored\">\n<li data-list-item-id=\"e82ec0a86100596f0dbedb11b4191e200\">Navigate to <strong>My Settings &gt; User</strong>.</li>\n<li data-list-item-id=\"ec7a708a8a6cbd087affb30452ab5a600\">Under the <strong>Theme</strong> dropdown, select your preferred one.</li>\n<li data-list-item-id=\"e9ffbc96de69e942241f95785606d32a2\">Click <strong>Save Settings </strong>for the changes to apply to the entire instance.</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2592/1696;\" src=\"https://support.testrail.com/hc/article_attachments/48529694382484\" alt=\"Screenshot 2026-04-23 at 17.38.48.png\" width=\"2592\" height=\"1696\"></figure>","user_segment_ids":[]},{"id":48316772215956,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/48316772215956.json","html_url":"https://support.testrail.com/hc/en-us/articles/48316772215956-TestRail-10-3-1-Default-1009","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":4,"vote_count":4,"section_id":10423156702740,"created_at":"2026-04-17T10:50:22Z","updated_at":"2026-05-19T11:59:05Z","name":"TestRail 10.3.1 Default (1009)","title":"TestRail 10.3.1 Default (1009)","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-05-04T21:01:25Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p style=\"box-sizing: border-box; margin: 0 0 calc(var(--line-height-computed)); color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\n  <strong style=\"box-sizing: border-box; font-weight: bold;\">Early Access release track date: 23-Apr-2026\n</strong>\n</p><p><strong style=\"-webkit-text-stroke-width: 0px; background-color: #ffffff; box-sizing: border-box; color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\">Default release track date: 11-Mar-2026</strong></p><p data-start=\"264\" data-end=\"500\">We’re excited to announce the release of <strong data-start=\"701\" data-end=\"720\">TestRail 10.3.0</strong>, bringing one of our most requested usability updates, new capabilities for AI testing, and a significant investment in platform quality.</p><h2 id=\"h_01KPDG9AM0YZN5TF18F0ESKGWB\"><strong>🌙 Dark Mode &amp; High Contrast</strong></h2><p data-start=\"898\" data-end=\"980\">Dark Mode is back in TestRail! </p><p data-start=\"982\" data-end=\"1118\">Alongside it, we’re introducing <strong data-start=\"1014\" data-end=\"1036\">High Contrast mode</strong>, designed to <strong>improve accessibility and readability</strong> across different environments.</p><p data-start=\"1120\" data-end=\"1152\">With theme support, you can now:</p><ul data-start=\"1154\" data-end=\"1327\">\n<li data-section-id=\"1h8ppd7\" data-start=\"1154\" data-end=\"1200\" data-list-item-id=\"e930cfe5ece4dbb5124c63861e53c959d\">Reduce eye strain during extended sessions</li>\n<li data-section-id=\"71zu6v\" data-start=\"1201\" data-end=\"1261\" data-list-item-id=\"e9bba407725d686607d1c2c5b141b78c8\">Improve visibility in low-light or high-glare conditions</li>\n<li data-section-id=\"p4ubcd\" data-start=\"1262\" data-end=\"1327\" data-list-item-id=\"e4224420fbe3c4d55c96d8340b3d4bd5e\">Choose a display mode that fits your workflow and preferences</li>\n</ul><p>Learn how to configure it <a href=\"https://support.testrail.com/hc/en-us/articles/48529694385940-Configuring-a-Theme-Light-or-Dark-in-TestRail\">here</a>.</p><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 2348/1320;\" src=\"https://support.testrail.com/hc/article_attachments/48316743915412\" alt=\"Screenshot 2026-04-17 at 11.40.46.png\" width=\"2348\" height=\"1320\"><figcaption>Test Runs &amp; Results in Dark Mode</figcaption></figure><h2 id=\"h_01JP5SVWFJSMNG7FYEQG0AFWQ3\" data-start=\"397\" data-end=\"429\">\n<strong data-start=\"647\" data-end=\"683\"><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 96/96; width: 3.15%;\" src=\"https://support.testrail.com/hc/article_attachments/48316772215188\" alt=\"❖ SparkleIconSembi.png\" width=\"96\" height=\"96\"></strong><strong>AI Evaluation Template with Quality Insights Dashboard</strong>\n</h2><p data-start=\"0\" data-end=\"159\">Testing is evolving. As systems become more dynamic and AI-driven, outcomes are no longer always predictable, and traditional pass or fail simply isn’t enough.</p><p data-start=\"161\" data-end=\"232\">That’s why the <strong data-start=\"176\" data-end=\"202\">AI Evaluation template</strong> is now available in TestRail.</p><p data-start=\"234\" data-end=\"612\">It introduces a structured way to test systems where results can vary between executions, giving teams the ability to evaluate quality across multiple dimensions rather than relying on a binary outcome. While it’s designed with AI-powered features in mind, it also supports any scenario where understanding <em data-start=\"541\" data-end=\"551\">how well</em> something performs is just as important as whether it works.</p><p data-start=\"614\" data-end=\"823\" data-is-last-node=\"\" data-is-only-node=\"\">Best of all, it fits seamlessly into the way you already work. Your existing TestRail workflows and API integrations remain unchanged, so you can start adopting this new approach to quality without disruption.</p><p data-start=\"522\" data-end=\"575\">For AI-driven use cases, the template helps teams to:</p><ul data-start=\"577\" data-end=\"782\">\n<li data-section-id=\"pkunju\" data-start=\"577\" data-end=\"655\" data-list-item-id=\"e5c57b933a67ee261a4aba95f01629c82\">Evaluate AI-generated outputs such as chatbot responses or recommendations</li>\n<li data-section-id=\"1yik6z1\" data-start=\"656\" data-end=\"707\" data-list-item-id=\"ea5ba7c3ef2b20dcb11115ff8c6058598\">Assess behaviour that varies between executions</li>\n<li data-section-id=\"1tlc2ip\" data-start=\"708\" data-end=\"782\" data-list-item-id=\"e9f622ad13cec89e9e7da9cefb9600671\">Measure quality across dimensions like accuracy, relevance, and safety</li>\n</ul><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 2282/1258;\" src=\"https://support.testrail.com/hc/article_attachments/48321521029140\" alt=\"Screenshot 2026-04-17 at 14.54.27.png\" width=\"2282\" height=\"1258\"></figure><p data-start=\"784\" data-end=\"1079\">To support this, the <strong data-start=\"805\" data-end=\"835\">Quality Insights dashboard</strong> provides a clear view of evaluation results, helping teams to pinpoint problematic areas in complex systems, make more data-driven go or no-go release decisions, and compare performance across models to choose the right LLM for their features.</p><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 2802/1440;\" src=\"https://support.testrail.com/hc/article_attachments/48321483007124\" alt=\"Screenshot 2026-04-17 at 14.55.30.png\" width=\"2802\" height=\"1440\"></figure><p data-start=\"1081\" data-end=\"1191\">For non-AI scenarios, the <strong data-start=\"1107\" data-end=\"1138\">Quality Rating result field</strong> can also be reused with other templates to evaluate:</p><ul data-start=\"1193\" data-end=\"1415\">\n<li data-section-id=\"i6njdt\" data-start=\"1193\" data-end=\"1266\" data-list-item-id=\"e987f961ce84f32ff8744838f9e861fc3\">Performance, such as perceived responsiveness or behaviour under load</li>\n<li data-section-id=\"1klhtc0\" data-start=\"1267\" data-end=\"1349\" data-list-item-id=\"e5afeeb569274e6719c14380daececbeb\">Security and compliance, including prompt injection resistance or data leakage</li>\n<li data-section-id=\"smfiql\" data-start=\"1350\" data-end=\"1415\" data-list-item-id=\"e78e14409d3029de02b6102564bf1870a\">Any system where quality cannot be reduced to a binary result</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong><a href=\"https://support.testrail.com/hc/en-us/articles/47813727805588-AI-Evaluation-Template-with-Quality-Insights-Dashboard\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more about AI Test Case Template.</a>\n</div><h2 id=\"h_01KPDVW6QK23YSXDZZ41D2X8GH\" data-start=\"397\" data-end=\"429\">\n<strong data-start=\"647\" data-end=\"683\"><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 96/96; width: 3.15%;\" src=\"https://support.testrail.com/hc/article_attachments/48316772215188\" alt=\"❖ SparkleIconSembi.png\" width=\"96\" height=\"96\"></strong><strong>Improved Generate Test Cases with AI</strong>\n</h2><p data-start=\"0\" data-end=\"90\">We’ve improved <strong data-start=\"15\" data-end=\"46\">Generate Test Cases with AI</strong> to give you more control over your outputs.</p><p data-start=\"92\" data-end=\"389\" data-is-last-node=\"\" data-is-only-node=\"\">You can now define the <strong data-start=\"115\" data-end=\"147\">maximum number of test cases</strong> the AI should generate, helping you tailor results to your specific needs. Whether you’re looking for a focused set of high-impact tests or broader coverage, this ensures the output stays relevant, manageable, and aligned with your workflow.</p><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 1366/768;\" src=\"https://support.testrail.com/hc/article_attachments/48321679176852\" alt=\"new.jpg\" width=\"1366\" height=\"768\"></figure><h2 id=\"h_01KPDGVR2V3YKB0WQQ7SBZQ4AY\" data-section-id=\"1rlf1z8\" data-start=\"1975\" data-end=\"2001\"><strong data-start=\"402\" data-end=\"427\">🧩 Quality Improvements</strong></h2><p data-start=\"2003\" data-end=\"2143\">TestRail 10.3 includes a significant set of fixes and improvements, representing a focused investment in platform stability and reliability.</p><p data-start=\"2145\" data-end=\"2276\">These updates improve consistency and performance across core workflows, helping teams operate more smoothly as their usage scales.</p><h2 id=\"h_01KKXTNYAQSACQ9W189B90FY07\">💻 <strong data-start=\"2630\" data-end=\"2651\">TestRail CLI 1.14.1</strong>\n</h2><p data-start=\"2627\" data-end=\"2738\">The latest version of the <strong data-start=\"2680\" data-end=\"2696\">TestRail CLI</strong> is now available with new capabilities. You can now:</p><ul>\n<li data-list-item-id=\"e6621c2c9651066a7273e9ba8f19d98e6\">Preserve <strong data-start=\"462\" data-end=\"481\">Markdown syntax</strong> when sending content to TestRail using the new WYSIWYG editor (requires TestRail 10.3.0 or higher)</li>\n<li data-list-item-id=\"e9cdff65129cf76bb0eddf7e033bb1442\">Use the enhanced <code data-start=\"604\" data-end=\"617\">parse_junit</code> command with the <code data-start=\"635\" data-end=\"664\">--special-parser multisuite</code> option to create or update a single test plan with one run per suite from a JUnit XML report</li>\n<li data-list-item-id=\"eb846985bc1b7537a837b0823d0c2ae90\">Update runs using the enhanced <code data-start=\"793\" data-end=\"802\">add_run</code> command, including options to clear attributes such as description, dates, milestone, and case selection</li>\n</ul><p data-start=\"427\" data-end=\"481\">This release also includes the following improvements &amp; fixes:</p><ul data-start=\"483\" data-end=\"548\"><li data-section-id=\"z9fva1\" data-start=\"483\" data-end=\"548\" data-list-item-id=\"ea7ebfd1da0af5a800dc4612238afa84f\">Improved attachment handling when parsing multiple reports, ensuring attachments are correctly associated with their respective resultsFixed attachment upload failures when adding results to empty test runsImproved run updates to ensure case selection is applied correctly</li></ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more in the <a href=\"https://github.com/gurock/trcli?tab=readme-ov-file#trcli---the-testrail-cli\">TestRail CLI documentation.</a>\n</div><h2 id=\"h_01KKXT0WFAB50PQVB836YFT1SB\">🐞 Fixes and Improvements (72)</h2><p data-start=\"2319\" data-end=\"2431\">This release includes more than <strong data-start=\"2351\" data-end=\"2380\">72 fixes and improvements</strong> across the platform, addressing issues related to:</p><ul data-start=\"2433\" data-end=\"2572\">\n<li data-section-id=\"8eo6ug\" data-start=\"2433\" data-end=\"2471\" data-list-item-id=\"e311709019dffbd47f0220e76e60c26cb\">Reporting performance and accuracy</li>\n<li data-section-id=\"1i0oeou\" data-start=\"2472\" data-end=\"2507\" data-list-item-id=\"e4494745b5be6b26f9b54fa8b2cb8e4cb\">Jira integrations and workflows</li>\n<li data-section-id=\"ndv3qx\" data-start=\"2508\" data-end=\"2539\" data-list-item-id=\"ec405d360d3455aa93eb1e38d49367ea5\">Data handling and stability</li>\n<li data-section-id=\"17k8o7p\" data-start=\"2540\" data-end=\"2572\" data-list-item-id=\"e4e50c7deca8daeee67deb5fba05b99ee\">UI consistency and usability</li>\n</ul><p>List of fixed tickets:</p><ul>\n<li data-list-item-id=\"e7a7be8ac2a50dc5e5249ad7f213030b8\"><p data-start=\"55\" data-end=\"146\"><strong>TR-11789: </strong>Error message shown when navigating away from a page</p></li>\n<li data-list-item-id=\"e793aaa459788ce85b30e7762d5b1027c\"><p data-start=\"55\" data-end=\"146\"><strong>TR-13277:</strong> Increased PHP memory limit for Docker deployments</p></li>\n<li data-list-item-id=\"e7160351a5d156920aa778d6dd08bdc6f\"><p data-start=\"55\" data-end=\"146\"><strong>TR-13458:</strong> Milestone field not displayed in test case version history</p></li>\n<li data-list-item-id=\"ed90d91b18e06c3b8f97d3753590209b5\"><p data-start=\"55\" data-end=\"146\"><strong>TR-13553:</strong> Status not shown when selecting test cases for a test run</p></li>\n<li data-list-item-id=\"e2df8c86cc91c94c3224560ed2a99e684\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14014:</strong> Data sets not creating multiple test runs in multi-suite projects</p></li>\n<li data-list-item-id=\"e24a045bc7fe93c1a0caa34ceb0f4d114\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14099:</strong> Unable to edit case fields</p></li>\n<li data-list-item-id=\"e2bdbfaff25c1c4340499e28bbd1fe988\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14429:</strong> Custom field values not imported via XML</p></li>\n<li data-list-item-id=\"e45eb2a5a02f0b1aa30797ce4d2cde7ca\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14592:</strong> Test runs displayed in incorrect order within test plans</p></li>\n<li data-list-item-id=\"ef71c7ff16faf1f140d4926712dffd958\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14677:</strong> Incorrect tester and filtering in Test Run Summary report</p></li>\n<li data-list-item-id=\"e265fadc3d4da3d31f718dbe9bda6df80\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14819: </strong>Test labels editable in closed runs and plans</p></li>\n<li data-list-item-id=\"edd474e8d2e8bf6952e278a503fbd88f6\"><p data-start=\"55\" data-end=\"146\"><strong>TR-14902:</strong> Attachments deleted in test cases with steps</p></li>\n<li data-list-item-id=\"eda054721996ddbb1230c5084227822e4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15108:</strong> Incorrect attachment ID returned by get_section endpoint</p></li>\n<li data-list-item-id=\"e136f01e9b468a6a59794f2e94f733741\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15574:</strong> Unable to bulk update references</p></li>\n<li data-list-item-id=\"e09555304d7fb56b877682b3d18d94f98\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15593:</strong> Bulk editing users across all projects not displaying correctly</p></li>\n<li data-list-item-id=\"e524270718ba6cb6163b11d20dc78cef0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15594:</strong> Incorrect case count in plans created with dynamic filters</p></li>\n<li data-list-item-id=\"ee97d20cf9c9401ef2e1d5c65238450a8\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15624:</strong> Jira Test Management app returning 403 error</p></li>\n<li data-list-item-id=\"eb161f8d89413d8463c9ce3a2ce6d99f0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15725: </strong>Unable to delete test runs</p></li>\n<li data-list-item-id=\"e0f58a522d66186b2d19c112f4e3ab3ca\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15785:</strong> Jira plugin appearing in projects where it should not</p></li>\n<li data-list-item-id=\"e30d5129c2ef81c4989425795651f75f1\"><p data-start=\"55\" data-end=\"146\"><strong>TR-15913:</strong> Test case status not displayed correctly in reports</p></li>\n<li data-list-item-id=\"e81ec03b692d8e9c52835957ab3066158\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16037:</strong> Reports generated without data</p></li>\n<li data-list-item-id=\"e0e0a1ac37315ce6a8a4b489e8153fc6c\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16176:</strong> Dynamic filter mismatch in test runs with manual section selection</p></li>\n<li data-list-item-id=\"ed25892afa7c7bc73d2d280c3981df6da\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16222:</strong> Webhook %event_creator% returning incorrect user</p></li>\n<li data-list-item-id=\"ea40ed4454a5ee368fd1c29469f37db21\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16240: </strong>“Edit all” filter causing undefined variable error</p></li>\n<li data-list-item-id=\"e1355a18f08c28813142a196895c37958\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16288:</strong> Attachment filtering not working in Data Management</p></li>\n<li data-list-item-id=\"e08cf7840cb167ed2fbdbba87c655c4b1\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16383: </strong>Error when deleting attachments from closed runs</p></li>\n<li data-list-item-id=\"e12c5b6732d925b6e51a8181b23e41254\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16500:</strong> Ignored status still appearing in Jira integration reports</p></li>\n<li data-list-item-id=\"e97f5fb4c2b65a71ed56ed609bdbc9a8f\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16580:</strong> Jira push defect fields not matching project configuration</p></li>\n<li data-list-item-id=\"eeb3c9ebff151a7330f161c2b5166db33\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16596:</strong> Filtering with underscore characters not working in shared steps</p></li>\n<li data-list-item-id=\"ebe581222d35d499298a3679756de570f\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16605:</strong> Unable to delete projects due to memory errors</p></li>\n<li data-list-item-id=\"e65ad86e18e044175120c22cfcbf96a44\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16663:</strong> Offline error shown when generating AI test cases</p></li>\n<li data-list-item-id=\"ede4bb40f49e55e9cbc52431ab331635a\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16677: </strong>Error when deleting attachments after v9.4</p></li>\n<li data-list-item-id=\"e76dc1c7784d2d7d3c7667d70699c602b\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16736:</strong> Error when assigning users</p></li>\n<li data-list-item-id=\"ef93c3e97c357f26c8dc854e95dfaef61\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16823:</strong> Permission error in cross-project reports</p></li>\n<li data-list-item-id=\"e5f9e965529514dd5f8044c4aefbb93eb\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16943: </strong>Enter key not creating line breaks in BDD scenarios</p></li>\n<li data-list-item-id=\"e7203ddb866ffbd5ceef3a38a45172881\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16948: </strong>Long text truncated in results fields</p></li>\n<li data-list-item-id=\"e624747ce3722d178f49d8d97bc536991\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17009:</strong> Editing section title removes description</p></li>\n<li data-list-item-id=\"e1fb3fa7d35854ae19f465edc0ebd3611\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17071:</strong> Case references in preconditions not rendered as links</p></li>\n<li data-list-item-id=\"ef670667c21b877d5620f7d20be2630ab\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17089:</strong> API stability improvements</p></li>\n<li data-list-item-id=\"eb9283390b1e19002b59205f3f4c69eaf\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17117:</strong> Markdown and code block formatting issues</p></li>\n<li data-list-item-id=\"e1b286097bdb74e879ffec04ab7a93def\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17119:</strong> Blank exports when exporting test runs</p></li>\n<li data-list-item-id=\"eec4464b801506fb5411fc11fbf7e0119\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17133: </strong>HTML tags appearing in CSV/Excel exports</p></li>\n<li data-list-item-id=\"e5d8aa904d52b424bc504594fb19710ea\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17136:</strong> Missing spacing in H2 headings in descriptions</p></li>\n<li data-list-item-id=\"e7b23e4d5761fa43d790a3ff29012c0c0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17149:</strong> Admin overview banner display issues</p></li>\n<li data-list-item-id=\"e1f82970997aacf3068e417416be57636\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17204:</strong> Error when deleting a project</p></li>\n<li data-list-item-id=\"eb26564b7616376b82e1c75cc7471687f\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17209: </strong>Error when hovering over references or defects</p></li>\n<li data-list-item-id=\"eb81de3eb91046ba2033b8980a74a6fc0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17232: </strong>Unable to add references using the Add button</p></li>\n<li data-list-item-id=\"e7ca36b426c02559e14dd53a2119f4207\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17457:</strong> Editing section title removes description</p></li>\n<li data-list-item-id=\"e08411674a6a1d185e7663e3a3ed28caf\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17627:</strong> Unable to save test cases</p></li>\n<li data-list-item-id=\"e11fdfca03678c2443e8b71955000358f\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18435:</strong> Incorrect “Tested By” and “Tested On” values in test runs</p></li>\n<li data-list-item-id=\"e082d3d064bb32c2bc974569108bdebc4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18468:</strong> Missing TestRail panel in Jira projects</p></li>\n<li data-list-item-id=\"e45544163f3926569c65d6509d275a84d\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18479:</strong> Defect ID not included in Excel exports</p></li>\n<li data-list-item-id=\"e6a8051f551e2ef57de7d83f5815795b4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18547:</strong> Angle bracket characters not visible in test fields</p></li>\n<li data-list-item-id=\"e9ca607e7b44ae81f42f54a5ac242a077\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18608: </strong>HTML tags added to test cases unexpectedly</p></li>\n<li data-list-item-id=\"e75e6b3be432e72030057ead1fdf8e3e7\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18891: </strong>Custom result fields not retaining values</p></li>\n<li data-list-item-id=\"eb7ec5ec2dfb222bbe2e84b4ecc33e0b1\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18945:</strong> Dynamic filter configuration not visible in edit mode</p></li>\n<li data-list-item-id=\"ef40b86ebafbe728a7e05889741b7b23e\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18958: </strong>Error when uploading .feature files</p></li>\n<li data-list-item-id=\"e2b725e092224cd9315cda9443e582f67\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19018:</strong> Custom field values not removed from database when cleared</p></li>\n<li data-list-item-id=\"e849985d88abd0c786d931c08ec337ae6\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19048:</strong> API error when adding cases (500 Internal Server Error)</p></li>\n<li data-list-item-id=\"ea26107e6401f26708c928e7694346c43\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19071:</strong> Incorrect defect shown in run defect column</p></li>\n<li data-list-item-id=\"eee8f8bbffccc816a41aedbb6d98c3a91\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19175:</strong> “Assign To” field mismatch between cache and submission</p></li>\n<li data-list-item-id=\"e5db325551e4ec77cc6083f847ff195f4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19202:</strong> Jira references not fetched, causing data loss on save</p></li>\n<li data-list-item-id=\"ef165166690856973df31f3f813b7feb3\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19224:</strong> Special characters displayed incorrectly after upgrade</p></li>\n<li data-list-item-id=\"e65c21003537e38876d4f77797eb19766\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19233:</strong> Custom result field updates not reflected in test runs</p></li>\n<li data-list-item-id=\"e11a5035ab7d86100a33a9f89a97733b1\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19254:</strong> Missing sorting option in Test Run view</p></li>\n<li data-list-item-id=\"e8ba7e3278424bbdd766bcbe9bcdb4278\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19337:</strong> Test runs not appearing in search results</p></li>\n<li data-list-item-id=\"eff60d39edcdde8a44b1d8c4ccc5344d8\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19365:</strong> Navigation issue when selecting test cases across pages</p></li>\n<li data-list-item-id=\"e946245c43bf51770b555f1a64f1e7b12\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19381:</strong> get_test API failing for archived runs</p></li>\n<li data-list-item-id=\"ead36e77a9feb6f77b32166c719e9fc1d\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19424:</strong> Jira data sync and OAuth integration failures</p></li>\n<li data-list-item-id=\"e21998e26f470cccf35d4ca2d1184479b\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19431: </strong>Markdown syntax preserved in API responses</p></li>\n<li data-list-item-id=\"e3e7b00a3a0b148c6d3af8d9334727ae0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19480:</strong> Test case order not preserved after CSV import</p></li>\n<li data-list-item-id=\"e719ec190affbe7170db0050863ad2b70\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19640:</strong> Error when editing more than 50 test cases</p></li>\n<li data-list-item-id=\"effbb5bb2d798ca5b44c5a3ab6f4f00cf\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19790</strong>: Fixed an issue where tests were not shown after switching to compact view from the second page of Test Runs &amp; Results</p></li>\n<li data-list-item-id=\"e0e12eac803bf6d0946d6d50b8047e360\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19874</strong>: Fixed migration failures when adding AI evaluation fields for instances with many custom fields</p></li>\n</ul><p> </p><p> </p>","user_segment_ids":[]},{"id":48282451983124,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/48282451983124.json","html_url":"https://support.testrail.com/hc/en-us/articles/48282451983124-Integrating-Kiuwan-SAST-Scans-via-UI","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":42067143159956,"created_at":"2026-04-16T11:37:53Z","updated_at":"2026-04-17T14:04:49Z","name":"Integrating Kiuwan SAST Scans via UI","title":"Integrating Kiuwan SAST Scans via UI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-04-16T11:37:53Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 67.29%;\"><img style=\"aspect-ratio: 1000/224;\" src=\"https://support.testrail.com/hc/article_attachments/48282479909524\" alt=\"7225c9087d7f0af4ff8c5b40ca299adca95499e0.png\" width=\"1000\" height=\"224\"></figure><p>Modern software teams can no longer afford to treat security and quality as separate goals. The same discipline that ensures tests pass must also ensure code is safe. By integrating <a href=\"https://www.kiuwan.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Kiuwan SAST</a> <strong data-start=\"547\" data-end=\"600\">(Static Application Security Testing)</strong> directly into <a href=\"https://www.testrail.com/\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail</a>, teams bring security findings into the same lifecycle as functional and regression tests, creating a unified view of application health. This approach, known as <strong data-start=\"790\" data-end=\"818\">Quality Through Security</strong>, empowers QA and <a href=\"https://www.kiuwan.com/blog/from-optional-to-essential-devsecops/\" target=\"_blank\" rel=\"noopener noreferrer\">DevSecOps </a>teams to detect, track, and remediate vulnerabilities as part of their everyday testing workflows. Instead of managing security reports in isolation, developers and testers can see which builds or test runs contain critical issues, measure improvement over time, and demonstrate “safe software sooner” across both quality and security metrics.</p><h2 id=\"h_01K78299JVJVBK7P36WVS2YKJC\" data-start=\"2016\" data-end=\"2032\">Prerequisites</h2><p data-start=\"2034\" data-end=\"2053\">Before integrating:</p><ol data-start=\"2055\" data-end=\"2390\">\n<li data-start=\"2055\" data-end=\"2134\" data-list-item-id=\"e3856f6006e792a12a47d8320bb6b60c1\"><p data-start=\"2058\" data-end=\"2134\">You must<a href=\"https://www.kiuwan.com/request-a-trial/?utm_source=WI&amp;utm_medium=direct\" target=\"_blank\" rel=\"noopener noreferrer\"> have a valid Kiuwan account</a></p></li>\n<li data-start=\"2135\" data-end=\"2218\" data-list-item-id=\"e9a84d8728f357af3d255a84b7fdb655b\"><p data-start=\"2138\" data-end=\"2218\">You should be able to<a href=\"https://support.kiuwan.com/hc/en-us/articles/37024520067729-Kiuwan-Local-Analyzer-CLI-Command-Line-Interface\" target=\"_blank\" rel=\"noopener noreferrer\"> run a Kiuwan scan</a> </p></li>\n<li data-start=\"2219\" data-end=\"2299\" data-list-item-id=\"eaf8c3256e8b5fa5a3166f20e58929c99\"><p data-start=\"2222\" data-end=\"2299\">Your TestRail instance must allow <a href=\"https://support.testrail.com/hc/en-us/articles/7077083596436-Introduction-to-the-TestRail-API\" target=\"_blank\" rel=\"noopener noreferrer\">API access</a></p></li>\n</ol><h2 id=\"h_01KPB110N2ZHHHGXZC0D2S92RA\">Integration Flow Overview (UI)</h2><p id=\"docs-internal-guid-ee63414b-7fff-a326-3262-abecabf2ae1d\">Use the <strong>Kiuwan Integrations</strong> tab to connect Kiuwan to TestRail. This article explains how to connect Kiuwan Web to <strong>TestRail</strong> so Kiuwan can access your TestRail account through the API.</p><p><strong>Note:</strong> The content displayed in <strong>Integrations</strong> depends on the <strong>language currently selected</strong> by the user in Kiuwan (UI language).</p><h3 id=\"1-connect-kiuwan-to-testrail\">\n<a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#1-connect-kiuwan-to-testrail\"></a>Connect Kiuwan to TestRail</h3><p>To establish an integration from <strong>Kiuwan Web</strong> to your <strong>TestRail</strong> account, follow these steps.</p><h4 id=\"2-open-the-integrations-tab\">\n<a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#2-open-the-integrations-tab\"></a>Open the Integrations tab</h4><ol>\n<li data-list-item-id=\"e4336f6f83d76d4564c1c6d063e953868\">In Kiuwan, go to the <strong>Account Management</strong> menu.</li>\n<li data-list-item-id=\"ecdb29eef2c2d2a6cb788ec13a9df20a9\">Select the <strong>Integrations</strong> tab.</li>\n<li data-list-item-id=\"ea1b26510d259752051d3588cfa2a01d0\">In the list of integrations, select <strong>TestRail</strong>.</li>\n</ol><h4 id=\"3-fill-in-the-testrail-connection-form\">\n<a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#3-fill-in-the-testrail-connection-form\"></a>Fill in the TestRail connection form</h4><p>On this page, Kiuwan displays a <strong>TestRail connection form</strong> with the following fields:</p><p><img src=\"https://support.kiuwan.com/hc/article_attachments/45078760540433\" width=\"624\" height=\"287\"></p><div><figure class=\"wysiwyg-table\" style=\"width: 100%;\"><table class=\"wysiwyg-table-resized\">\n<colgroup>\n<col style=\"width: NaN%;\">\n<col style=\"width: NaN%;\">\n</colgroup>\n<tbody>\n<tr>\n<td><strong>Field</strong></td>\n<td><strong>What to enter</strong></td>\n</tr>\n<tr>\n<td><strong>TestRail Host</strong></td>\n<td>Your <strong>TestRail host URL</strong> (for example, your instance URL).</td>\n</tr>\n<tr>\n<td><strong>Username</strong></td>\n<td>The <strong>email address</strong> used for your TestRail account.</td>\n</tr>\n<tr>\n<td><strong>API key</strong></td>\n<td>Your <strong>TestRail API key, </strong>available in the <strong>My Settings</strong> menu.</td>\n</tr>\n</tbody>\n</table></figure></div><p>If you need information on how to generate your API key, see TestRail’s documentation: <a href=\"https://support.testrail.com/hc/en-us/articles/7077039051284-Accessing-the-TestRail-API#h_01J53NS432TJFBGHMFVVVEHPKQ\"><strong><span class=\"wysiwyg-underline\">Accessing the TestRail API</span></strong></a>.</p><h4 id=\"4-connect\">\n<a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#4-connect\"></a>Connect</h4><ol>\n<li data-list-item-id=\"e5ec12066677ac1c6bbce04a98702cb99\">After completing all fields, click <strong>Connect to TestRail</strong>.</li>\n<li data-list-item-id=\"e117af722c907cee607198048b243bceb\">Kiuwan establishes the connection and confirms it in the UI.<br><img src=\"https://support.kiuwan.com/hc/article_attachments/45078760541329\" width=\"624\" height=\"247\">\n</li>\n</ol><h3 id=\"5-push-audit-results-to-testrail\" data-section-id=\"1xfb3p0\" data-start=\"1329\" data-end=\"1363\" data-has-anchor=\"true\"><a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#5-push-audit-results-to-testrail\"></a></h3><h3 id=\"6-manage-an-existing-connection\">\n<a href=\"https://support.kiuwan.com/hc/en-us/articles/45078726141329-Integrations#6-manage-an-existing-connection\"></a>Manage an existing connection</h3><p>After the connection has been established, you can manage it from the same area:</p><ul>\n<li data-list-item-id=\"e7defea3cc583588a6ced73f9c5521019\">\n<strong>Edit</strong> the connection details </li>\n<li data-list-item-id=\"eb65a042a843a09972963624bfe433085\">\n<strong>Remove</strong> the integration completely (disconnect TestRail) from the Integrations tab.</li>\n</ul><h2 id=\"4-send-audit-results-to-testrail\">Send Audit results to TestRail</h2><ol>\n<li data-list-item-id=\"ea3750ca1ac24ec3b55a222877c5ec06f\">In Kiuwan, go to <strong>Life Cycle &gt; Deliveries</strong> and open the <strong>Audit results</strong> for a delivery (click the <strong>Status</strong> icon).</li>\n<li data-list-item-id=\"ef1d9be608613f31f09d040fee3c5029d\">In the Audit results page, open the <strong>menu icon</strong> next to the module title.</li>\n<li data-list-item-id=\"e24c495b91ff5f338b8be173814b12e1c\">\n<p>Select <strong>Send to TestRail</strong>.<br><img style=\"height: auto;\" src=\"https://support.kiuwan.com/hc/article_attachments/45083148482449\" width=\"624\" height=\"149\"><br>After you click <strong>Send to TestRail</strong>, Kiuwan displays a pop-up where you define where the results will be uploaded in TestRail:</p>\n<ul>\n<li class=\"wysiwyg-list-bold\" data-list-item-id=\"eda0278b47958dd759c35306461f0c24c\"><strong>Select project</strong></li>\n<li class=\"wysiwyg-list-bold\" data-list-item-id=\"e3837ed814bbd288733338a0fa222f265\"><strong>Select test suite</strong></li>\n<li data-list-item-id=\"e2387c3da944c47e58f8fc920350265c8\">\n<strong>Test run title</strong> (optional). If you leave this field blank, <strong>TestRail automatically generates a title</strong> for the test run.</li>\n</ul>\n<p><img style=\"height: auto;\" src=\"https://support.kiuwan.com/hc/article_attachments/45083133044881\" width=\"624\" height=\"355\"></p>\n</li>\n<li data-list-item-id=\"e14010b014f626f1667c47e751b791d46\">Click <strong>Send to TestRail</strong> to upload the Audit results.</li>\n</ol><p>Once you click <strong>Send to TestRail</strong>, the Audit results are sent to TestRail for processing. When processing is complete, <strong>TestRail sends an email</strong> containing a link to the TestRail location where the results were created.</p><p><img style=\"height: auto;\" src=\"https://support.kiuwan.com/hc/article_attachments/45083148488977\" width=\"624\" height=\"80\"></p><h3 id=\"5-view-results-in-testrail\" data-has-anchor=\"true\">\n<a aria-label=\"Link to this section\" href=\"https://support.kiuwan.com/hc/en-us/articles/36301206429585-Deliveries-Audit-and-Defects#5-view-results-in-testrail\"></a>View results in TestRail</h3><p>After processing, you can open the link from the TestRail email to view the created test run and the imported results in TestRail. A link to the original Kiuwan report is included in the created Test Run Description.</p><p><img style=\"height: auto;\" src=\"https://support.kiuwan.com/hc/article_attachments/45083133051793\" width=\"624\" height=\"227\"></p>","user_segment_ids":[]},{"id":47813727805588,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/47813727805588.json","html_url":"https://support.testrail.com/hc/en-us/articles/47813727805588-AI-Evaluation-Template-with-Quality-Insights-Dashboard","author_id":12818215810836,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":47813623099028,"created_at":"2026-04-01T18:35:41Z","updated_at":"2026-04-23T16:45:42Z","name":"AI Evaluation Template with Quality Insights Dashboard","title":"AI Evaluation Template with Quality Insights Dashboard","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-04-22T11:45:16Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p data-local-id=\"b17cf532b5b1\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Evaluation template</strong> introduces a structured way to test systems where outcomes are not strictly deterministic.</p><p data-local-id=\"9d188418b8aa\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">It is designed for evaluating AI-powered features, while also supporting other scenarios where quality must be assessed across multiple dimensions rather than a simple pass or fail.</p><p data-local-id=\"fbe3efbbd5af\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The template integrates with existing TestRail functionality. Test runs, plans, milestones, reports, integrations and API all behave as they do today.</p><h2 id=\"h_01KN558RTPDDSHR19TW9BD2MN4\">When to use this template</h2><p data-local-id=\"bb0799ac53fc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Use the AI Evaluation template when you need to:</p><ul data-local-id=\"626d163a-fb17-43d1-a81e-65f679693c4f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"7015c47c-8d43-4000-aa2e-6d892edb5373\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e9490fab1a829101dfa29023cb03a01d3\"><p data-local-id=\"0fa4c4625360\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Evaluate AI-generated outputs (for example, chatbot responses or recommendations)</p></li>\n<li data-local-id=\"004fc67d-e673-49b2-8ce8-21f7dae22079\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"efc768fc3f47169a3db9a3a72b484363a\"><p data-local-id=\"f9a08123c49a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Assess behaviour that varies between executions</p></li>\n<li data-local-id=\"b3b64448-e247-40b3-a1c1-949925fff9b5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ea3e7b91a95981570844189d77983c45a\"><p data-local-id=\"882dcf4ba285\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Measure quality across multiple dimensions (for example, accuracy, relevance, or safety)</p></li>\n</ul><p data-local-id=\"c4336735f781\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">For non-AI scenarios, you can reuse the <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating result field</strong> with other templates to evaluate:</p><ul data-local-id=\"4688ddd1-097c-4335-beb4-a8df62c17824\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"bb347f9a-dac4-4dbc-a1ef-1bd1e944b901\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"edb0688b865ecafc6954d2349b534d7b8\"><p data-local-id=\"889c9fa7dafc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Performance (for example, perceived responsiveness or degradation under load)</p></li>\n<li data-local-id=\"d6fa8507-9952-4001-86e0-32f3a54efacd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e5e5763d09218990e09b11f06f6c635db\"><p data-local-id=\"f90333d4d5d3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Security and compliance (for example, prompt injection resistance or data leakage)</p></li>\n<li data-local-id=\"c80d1a32-55a2-4243-97e4-e8517d57b449\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1a0dd479e263ddd2ef6dcf663eba8b36\"><p data-local-id=\"d0c88ce34204\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Any system where quality cannot be reduced to a binary outcome</p></li>\n</ul><h2 id=\"h_01KN558RTVPVE8ZY834T10SKZW\">Creating AI Evaluation test cases</h2><p data-local-id=\"9c0ad5e9b0e2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When creating a test case, select <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Evaluation</strong> from the Template dropdown.</p><p data-local-id=\"fba1154034c9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The template includes all standard TestRail system fields:</p><ul data-local-id=\"1dc42ea8-6569-4357-a5f6-e9033a606b4b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"ddf8fe1a-8b22-44f3-9b5e-54892b5b830e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eea931b08128ba1dcb5f431c103ce97de\"><p data-local-id=\"ef5cdd714d0f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Title (required)</p></li>\n<li data-local-id=\"ece067b6-af25-4dc3-bc1f-5e7772a5e261\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e3a5db4c537e97518c236f314b84ecc41\"><p data-local-id=\"7ceee0c0e407\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Section (required)</p></li>\n<li data-local-id=\"d4cb11f9-c5bd-43b2-adbe-34a116f0ef0c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e007e3d57fcd3007a0928532bf6c7d65f\"><p data-local-id=\"871b28253dd7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Template (required)</p></li>\n<li data-local-id=\"0db9ceed-23dc-4061-b55e-fd0720496653\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e61cc58b607cb846ae804a54f28bff66a\"><p data-local-id=\"1dbbb0966be6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Type (required)</p></li>\n<li data-local-id=\"b5eca1e3-2c0f-4ba7-b94c-0817d761bf35\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eac3a6a0fe6b8b57ac843b244b807ef6d\"><p data-local-id=\"ee436a6eaf8b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Priority (required)</p></li>\n<li data-local-id=\"971c8292-9c07-44f4-9c34-122e49eb137c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eff973f577b5092f932d3a840d45f3947\"><p data-local-id=\"7d7ac8d4b687\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Status (Enterprise only)</p></li>\n<li data-local-id=\"e950f5f5-7c8d-4da4-86e4-01624514b209\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e7a3daaf01dc9a1a3bebc03c00a858219\"><p data-local-id=\"83f1da90f18b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Assigned To (Enterprise only)</p></li>\n</ul><p data-local-id=\"3ff49dd83e55\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">It also supports structured steps with expected results.</p><h2 id=\"h_01KN558RV030DZM5ZQ1EK1GMYX\">Additional case fields</h2><p data-local-id=\"c77b9dac9669\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The template introduces optional fields to describe the system under test:</p><ul data-local-id=\"c188e747-07e2-4c55-b742-f7f09624e7fd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"ae4861b4-6a96-4375-aa64-b18618dbf551\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e972d8de604a96d67097f5ce2b9a66d48\"><p data-local-id=\"6e6439d6f66d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Type</strong> (dropdown)<br>Used to categorise the system (for example, RAG, ML, LLM)</p></li>\n<li data-local-id=\"18df6a8d-ec70-4cc6-b717-2c29e346b44f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e2705de6ad161a316789b6a964d361b4b\"><p data-local-id=\"d91a8df0b49b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Model</strong> (dropdown)<br>Used to identify the model or system version (for example, GPT, Gemini)</p></li>\n</ul><p data-local-id=\"434d16cb13e7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">These fields can also be used for broader classification in non-AI scenarios.</p><h2 id=\"h_01KN558RV2QRVHWG26HVT0QZSG\">Logging results</h2><p data-local-id=\"4cc5c7a8ce0d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">In addition to existing fields (Status, Comment, Defects, etc.), the following fields are available:</p><ul data-local-id=\"f6c85b53-75b6-49c9-9ad1-2e85c02282f2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"12ad1432-7e38-41e7-a214-691ed5fb5ce1\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e87912d3d63de15dcef836d9f55447933\"><p data-local-id=\"c9f9f1b5cf06\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating (required)</strong><br>Use this to evaluate the overall quality of the AI output across defined criteria (e.g. accuracy, relevance, completeness). This provides a consistent, qualitative assessment of the result.</p></li>\n<li data-local-id=\"38c7b468-28dc-489d-863e-22e000641a77\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec2a3d1c32ae26e3bafabb3a316072af6\"><p data-local-id=\"3426369e6a04\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Input (optional)</strong><br>Capture the user or system input provided to the AI (e.g. prompts, parameters, boosts). This helps with reproducibility and debugging.</p></li>\n<li data-local-id=\"9d32e444-e7f4-48c4-aa39-73f2cb16ef58\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ebbd5cd9c1c7722bd71e14d02762901a6\"><p data-local-id=\"f09bc3f915ff\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Output (optional)</strong><br>Record the AI-generated output (e.g. chatbot response, generated content). This allows for direct comparison against expected behaviour.</p></li>\n<li data-local-id=\"f278a2e7-2a42-4204-8639-ff144f822f5b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e19b8c67e4a841852c23737960ae91dd2\"><p data-local-id=\"de095c6e282b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Traces (optional)</strong><br>Provide a URL to trace logs from external observability tools (e.g. Langfuse). This is useful for deeper analysis and troubleshooting.</p></li>\n<li data-local-id=\"73fcc1e3-6555-487d-88b8-b96687ad1515\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eab9eb8df78f78cae9efb83eddc427c8a\"><p data-local-id=\"49460fb1993c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Latency (optional)</strong><br>Record the response time of the AI system. This helps monitor performance and identify potential bottlenecks.</p></li>\n</ul><p data-local-id=\"8366460aa44f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">All fields behave consistently with existing TestRail result fields.</p><div data-media-vc-wrapper=\"true\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"mediaSingle\" data-prosemirror-node-block=\"true\"><div data-node-type=\"mediaSingle\" data-layout=\"center\" data-width=\"760\" data-width-type=\"pixel\" data-media-vc-wrapper=\"true\"><div><figure><div><div><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2282/1258;\" src=\"https://support.testrail.com/hc/article_attachments/48482945804436\" alt=\"Screenshot 2026-04-22 at 12.43.56.png\" width=\"2282\" height=\"1258\"></figure></div></div></figure></div></div></div><p data-local-id=\"51fef211e50c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"> </p><h2 id=\"h_01KN558RV76QFM5SFYG3FN37VZ\">Quality Rating</h2><p data-local-id=\"ead1962c9626\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Our new <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating</strong> results field enables structured evaluation using a star-based system.</p><ul data-local-id=\"766e06d6-5762-4431-8ff1-62c219f1750c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"2772d0b2-17c0-407e-8030-e8755f5e5727\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e90d9c7a88bc66a27936cb2d866728b5f\"><p data-local-id=\"1ae6e5c2f8cf\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Each category can be rated from 0 to 5 stars</p></li>\n<li data-local-id=\"dcc06844-23e7-4a44-b35e-2eacfb47168b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eb6fbb84f07cc09c73abea171a92a2d6c\"><p data-local-id=\"02e95a7b21cf\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Categories are configurable in <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Administration → Customisation → Result Fields</strong></p></li>\n<li data-local-id=\"1a3d9ce6-03d0-457b-8659-2921a15e2b81\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e89c0269bde271cd53fd8ae34ea275223\"><p data-local-id=\"1368f119cb91\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A maximum of 15 categories is supported</p></li>\n<li data-local-id=\"4ec489d4-5939-4170-abd9-dbf44c2af168\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e220c2e4296f5fde3b704f7cc50e20023\"><p data-local-id=\"ea9538aae84e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">At least one category must be rated (≥1 star) before saving a result</p></li>\n</ul><p data-local-id=\"47adda77b104\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Typical categories include:</p><ul data-local-id=\"0a06df35-edaa-410f-a7ce-028bc8d7a8d6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"41e4a3ad-4ea5-4fbe-8bf5-15973333664b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec40b3907a7a037c3dcf47cd77578f3a6\"><p data-local-id=\"63280b8f0fd9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Factual accuracy</p></li>\n<li data-local-id=\"644c22ad-7886-4048-ab4e-69a6e07b3282\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e2e6b980e502ae98cdaab7de5923c17ec\"><p data-local-id=\"eb5b66558a42\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Relevance to user intent</p></li>\n<li data-local-id=\"c2d81c4f-8b33-4e17-8554-ff417c97f278\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e90a7e23a162395c4283e633185c5c7e3\"><p data-local-id=\"30c211c18ae8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Reasoning coherence</p></li>\n<li data-local-id=\"aef100df-b5a1-4f3b-8828-7f2e02ea27b5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"edb89b5780d373737ecf929d95d083d4c\"><p data-local-id=\"3e67f0bc5a25\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Security and compliance</p></li>\n<li data-local-id=\"e8e4a130-0c23-46e5-bdef-dc05301b31b9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e78ab26dd38fc62505b7d56f34e72d89e\"><p data-local-id=\"033ed6557089\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Response consistency</p></li>\n</ul><p data-local-id=\"db3ab14e79b6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Categories are fully customisable and can be adapted to different testing needs.</p><h2 id=\"h_01KN558RVBGX88M402GPMJB9E8\">Reusing Quality Rating across templates</h2><p data-local-id=\"8ff8b758fca8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Quality Rating is not limited to the AI Evaluation template.</p><p data-local-id=\"686abc667a9a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Administrators can add this result field to other templates to support consistent evaluation across:</p><ul data-local-id=\"1c0e6e30-2488-4787-8c7f-f90865ecf6ee\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"db007336-6cc5-446b-a24c-d3b91ebd01c8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec8fedcd5afd7922135e9606b138da448\"><p data-local-id=\"9ced5d27b6ae\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">AI testing</p></li>\n<li data-local-id=\"f243b677-ba92-4e4e-882f-b7fe57512347\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e4b64a833df7fe72e9032df0876163818\"><p data-local-id=\"846c20ffe1b9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Performance testing</p></li>\n<li data-local-id=\"3542ed6f-72a0-4fb1-902f-adf15d84b7c3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1fb1da1fa7263d939fc00a800507323f\"><p data-local-id=\"826ec7ad1140\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Security testing</p></li>\n<li data-local-id=\"0e61f74a105f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ef109fcc70c92115f8f39ae1383040f28\"><p data-local-id=\"f79da1230246\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">and anything else that requires more qualitative insights</p></li>\n</ul><p data-local-id=\"9b3508487c30\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When used in other templates, the same rating behaviour and dashboards apply.</p><h2 id=\"h_01KN558RVDPAXP4CHKYNBFTNDA\">Quality Insights dashboard</h2><div data-media-vc-wrapper=\"true\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"mediaSingle\" data-prosemirror-node-block=\"true\"><div data-node-type=\"mediaSingle\" data-layout=\"center\" data-width=\"760\" data-width-type=\"pixel\" data-media-vc-wrapper=\"true\"><div><figure><div><div><div data-media-vc-wrapper=\"true\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"mediaSingle\" data-prosemirror-node-block=\"true\" data-pm-slice=\"0 0 []\"><div data-node-type=\"mediaSingle\" data-layout=\"center\" data-width=\"760\" data-width-type=\"pixel\" data-media-vc-wrapper=\"true\"><div><figure><div><div><div data-media-vc-wrapper=\"true\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"mediaSingle\" data-prosemirror-node-block=\"true\" data-pm-slice=\"0 0 []\"><div data-node-type=\"mediaSingle\" data-layout=\"center\" data-width=\"760\" data-width-type=\"pixel\" data-media-vc-wrapper=\"true\"><div><figure><div><div><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2802/1440;\" src=\"https://support.testrail.com/hc/article_attachments/48483010318996\" alt=\"Screenshot 2026-04-17 at 14.55.30.png\" width=\"2802\" height=\"1440\"></figure></div></div></figure></div></div></div></div></div></figure></div></div></div></div></div></figure></div></div></div><p data-local-id=\"fb7b4f0365ab\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When a test run includes tests with the <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating</strong> field, a <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Insights</strong> section becomes available.</p><p data-local-id=\"913201fe3057\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The dashboard includes:</p><ul data-local-id=\"b893a67b-db45-4e89-849b-d2f86af39cd7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"c8b9dd7e-e28e-423a-b465-4161e44e80d0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e31a84106c8b816fb750ed68102c0b02d\"><p data-local-id=\"5d9aa37ea4f5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Average Quality Score</strong><br>Overall average rating across all results (out of 5)</p></li>\n<li data-local-id=\"61dd6e31-d6e8-407c-95b9-35d345cb88e6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eafd64c2ddb3833322fd31eafab690496\"><p data-local-id=\"909edf477f9d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Tests with results</strong><br>Percentage of tests with a final status</p></li>\n<li data-local-id=\"02df9985-d14f-4b5c-9f9f-d84a8776b77d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ea0d5f5e4e5e3e751558da08d296e2754\"><p data-local-id=\"81fd4213765e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality by Category</strong><br>Average rating per category, based on configured order</p></li>\n</ul><p data-local-id=\"732365503d06\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Additional behaviour:</p><ul data-local-id=\"184fbbc4-a3e6-4a7e-9c56-2cc01e7a58b8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"3df8560e-1021-4433-b944-040745e902f6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ea578edf136ddaa7ee10f3e89f4203f21\"><p data-local-id=\"32155aab72c9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Visible only when the Quality Rating field is present in the run</p></li>\n<li data-local-id=\"cc814721-ab87-4929-be61-c2c42750af9f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e21492e43fb9123ebe99d72dd2654d852\"><p data-local-id=\"326ff6e70822\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Automatically hidden if no such tests exist</p></li>\n<li data-local-id=\"6f514ad7-5573-4a75-aa05-850d7de022b8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e44da9b5956e62acbf75cb60bda3342e6\"><p data-local-id=\"c194f17ec89d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Data refreshes hourly, with manual refresh available</p></li>\n<li data-local-id=\"2b5ca27a-3b60-4e57-8e51-deb347ad63c2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1f732357041728f8d24ff775e90899f3\"><p data-local-id=\"dd734b765556\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Dashboard is read-only</p></li>\n<li data-local-id=\"49460f40-593c-461a-a87a-0af393c1873d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e101accaaaae3f6718b216ad6faff47db\"><p data-local-id=\"c2ce21116d99\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Export available as PDF</p></li>\n</ul><h2 id=\"h_01KN558RVJ8JCAB84BMNGN6B7A\">Filtering and sorting</h2><p data-local-id=\"c2a988ec3b8b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When the Quality Rating field is present in a test run:</p><ul data-local-id=\"a28a97dd-114f-43eb-aaca-a82d41e09c0b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"07ea0f8b-c8fd-4f81-8d61-2eda7896da43\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e23dbf89cee738562c201bfdb6b2f5e19\"><p data-local-id=\"a366ba4e91f0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Category filter</strong> is available in Tests &amp; Results</p></li>\n<li data-local-id=\"5ff83a9c-e5e0-4d83-9e66-9d0b0ea90dda\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e6048cdd16f930590d1136384f15a9994\"><p data-local-id=\"c6ee77986b97\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating</strong> sort option is available (default: high to low)</p></li>\n<li data-local-id=\"bf0ecac7-fe8c-40e4-83a2-4df65b1d1c71\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e709755862317364b1fa6b01b5e1a2b5c\"><p data-local-id=\"10710bde1725\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating column</strong> is displayed</p></li>\n</ul><p data-local-id=\"4d5ac3c43b31\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Behaviour:</p><ul data-local-id=\"48d4de4d-e32d-4401-a84f-e064e0217609\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"2db3755a-8e15-4920-9563-95669f091bb3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e15dda6b005b3a5b1055de28ac1d34d55\"><p data-local-id=\"d882b4f75b73\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Filtering by category updates both the test list and displayed ratings</p></li>\n<li data-local-id=\"1d781973-c5fc-486f-aeba-7d2151020884\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eb0cde03c7b1895a3aa29a4313cdc2dcc\"><p data-local-id=\"76ebd19ebc45\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The column shows the average rating per test</p></li>\n<li data-local-id=\"e6141b6c-32c8-4e7d-84c2-7f572509699b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ee49b112af618864ac75254a5ef0e5c02\"><p data-local-id=\"e48189c2bd5d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Hovering shows ratings for all categories</p></li>\n<li data-local-id=\"56581a01-d870-42e1-9a6d-229e9853d632\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e5680154048081b578e0730b6415786be\"><p data-local-id=\"22332182018c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Controls are hidden if no Rating-type field exists in the run</p></li>\n</ul><p> </p><h2 id=\"h_01KN558RVQ0M957491JGPA9B8J\">Template configuration</h2><p data-local-id=\"71ae9599c1b1\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI Evaluation template is available under:</p><p data-local-id=\"a444cebaad26\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\"><strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Administration → Customisation → Templates</strong></p><p data-local-id=\"e42481bfd72e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">By default:</p><ul data-local-id=\"5ba8088d-143d-4013-acfc-d88970f1cdd7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"da52c6d9-4569-40e5-a4da-a8b956111e89\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ecda300b7bbc1d42e090be7496764ac2d\"><p data-local-id=\"1d637759a744\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Available to all projects</p></li>\n<li data-local-id=\"34925fed-68b4-4955-8862-945630d853af\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e25fdf7060787b6ee5f1b0ad6729e69ba\"><p data-local-id=\"18317bdaaaff\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Not set as the default template</p></li>\n<li data-local-id=\"7a4082ac-0287-4ba5-b375-1192b95332b8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e7a6573450578d7f9cc066735402cbe21\"><p data-local-id=\"2df540abeb6d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Fully editable</p></li>\n</ul><p data-local-id=\"fb76e3abfda6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Administrators can:</p><ul data-local-id=\"4f3e7a95-7a09-417d-a2d9-222e53c8e3b5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"578345d6-7ad4-4549-8f1d-308b5126adc3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ee76b5abcf209a48d641f595aa546df4e\"><p data-local-id=\"6eb814e1cfe5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Rename the template</p></li>\n<li data-local-id=\"cea5fad8-33c4-49dd-85b6-e1b567bd0a39\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed444d7a97ab98bde24f3e621659aa6a9\"><p data-local-id=\"214b94be01a0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Restrict it to selected projects</p></li>\n<li data-local-id=\"d7aa11f9-63e2-4b40-ad67-86a57c2d1d8b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e68dae4d6274a04faf90e1609c7d14723\"><p data-local-id=\"64b7c740a545\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Add or remove supported case fields</p></li>\n<li data-local-id=\"c543c147-acb0-44ca-9972-02e2fadd8c81\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e2eca7ea9f600456476f358d82ffb0e54\"><p data-local-id=\"d4bf9391d49a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Reorder fields</p></li>\n</ul><p data-local-id=\"849d7756c8e7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Limitations:</p><ul data-local-id=\"99e1aff4-14e3-4f7f-b4e0-51150fc2409a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"86eebf55-9dd9-4b9b-94a7-2c742cda09d0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec6dca48609f482b62b45aef410cd5169\"><p data-local-id=\"e13260df6b9a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Quality Rating</strong> result field cannot be removed</p></li>\n<li data-local-id=\"17ffd6ba-645a-4d87-b0bc-e1701ac134ca\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e11b72ef73ac8d319e37d92c72c6c3da2\"><p data-local-id=\"e007849755ae\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">System field names are reserved</p></li>\n<li data-local-id=\"90a04625-2dee-4e16-9b18-dbd01f789d19\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed8a551704eaf46d51554c85978f9d8cd\"><p data-local-id=\"d9004b4731d5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Fields marked as “applies to all templates” are automatically included</p></li>\n</ul><h2 id=\"h_01KN558RVVPYY09KDBXF4PRF2V\">Compatibility</h2><p data-local-id=\"dfab5f354add\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI Evaluation template is fully additive.</p><p data-local-id=\"8103083ab363\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">It does not change or impact:</p><ul data-local-id=\"1afd22f9-b26b-40b1-994b-d597f6c6e0d3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"c63143f1-fe63-4c52-a541-c889c384604e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1052fb7e434758005b98268c6f368dff\"><p data-local-id=\"4766dc037892\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Existing templates</p></li>\n<li data-local-id=\"c9578b5e-65f3-462b-8cd3-61a0cc5efbc3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eb753f297aae8e94fc0eae6344ede6add\"><p data-local-id=\"d1b54b51398c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Case and result fields</p></li>\n<li data-local-id=\"bda29f1b-8f26-407f-a070-e747eb535526\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e760cdd78da3629da0a7844e7f2e917f5\"><p data-local-id=\"6180fe83e2cd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Test execution workflows</p></li>\n<li data-local-id=\"c87ef233-68ee-4335-abc3-a92bb651b823\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e3082d9c0c0880abf8843a79388d55875\"><p data-local-id=\"76bf30d0e585\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Test runs and plans</p></li>\n<li data-local-id=\"20513952-0f35-4d26-a84b-64d57089c1a7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"efb957db0ce85fd0cb01a56d8ead8c1aa\"><p data-local-id=\"22e7eb405da8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Integrations and defect tracking</p></li>\n<li data-local-id=\"b5d54e49-6771-4c2c-8d7b-24dc795504f9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec70c1b8cc81c2212ec71de811c21a322\"><p data-local-id=\"f3a965c65021\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">API behaviour</p></li>\n<li data-local-id=\"b5d54e49-6771-4c2c-8d7b-24dc795504f9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e343f6aca3f999535f6ee15fa1080145b\"><p data-local-id=\"f3a965c65021\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">CLI - coming soon!</p></li>\n</ul><div style=\"margin: 24px 0; padding: 24px; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc;\">\n  <div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #111827;\">\n    <p style=\"margin: 0 0 8px; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280;\">\n      TestRail Academy\n    </p>\n    <h3 style=\"margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; color: #111827;\" id=\"h_01KKGRB5B6Y1XZWSZCEMX90B0N\">\n      AI Testing, Reimagined\n    </h3>\n    <p style=\"margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: #374151;\">\nAI doesn’t give the same answer twice, so testing it like traditional software no longer works. In this course, you’ll learn how to evaluate AI outputs across multiple quality dimensions, use LLM-as-judge to scale your testing, and build a repeatable framework for continuous evaluation. Stop guessing. Start measuring what actually matters.\n    </p>\n    <a href=\"https://academy.testrail.com/plus/courses/168/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 12px 20px; font-size: 15px; font-weight: 600; color: #ffffff; background: #2563eb; text-decoration: none; border-radius: 8px;\">\n      Open Academy Course\n    </a>\n  </div>\n</div>","user_segment_ids":[]},{"id":47294381299732,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/47294381299732.json","html_url":"https://support.testrail.com/hc/en-us/articles/47294381299732-TestRail-10-2-0-Default-1076","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":11,"vote_count":17,"section_id":10423156702740,"created_at":"2026-03-17T11:48:42Z","updated_at":"2026-05-11T11:26:56Z","name":"TestRail 10.2.0 Default (1076)","title":"TestRail 10.2.0 Default (1076)","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-05-11T11:26:56Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p style=\"box-sizing: border-box; margin: 0 0 calc(var(--line-height-computed)); color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\">\n    <strong style=\"box-sizing: border-box; font-weight: bold;\">Early Access release track date: 26-Mar-2026\n</strong>\n  </p><p><strong style=\"-webkit-text-stroke-width: 0px; background-color: #ffffff; box-sizing: border-box; color: #3c3c3c; font-family: ' Open Sans' , sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\">Default release track date: 9-Apr-2026</strong></p><p data-start=\"264\" data-end=\"500\">We’re excited to announce the release of <strong data-start=\"305\" data-end=\"324\">TestRail 10.2.0</strong>, introducing new <strong>AI-powered automation capabilities</strong>, <strong>enhanced Jira coverage visibility</strong>,<strong> improved authentication support</strong>, and continued investments in modern testing workflows.</p><p data-start=\"502\" data-end=\"637\">This release focuses on helping teams <strong data-start=\"540\" data-end=\"636\">accelerate automation, improve traceability, and adopt more secure and flexible integrations</strong>.</p><h2 id=\"h_01JP5SVWFJSMNG7FYEQG0AFWQ3\" data-start=\"397\" data-end=\"429\"><strong data-start=\"647\" data-end=\"683\"><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 96/96; width: 3.15%;\" src=\"https://support.testrail.com/hc/article_attachments/47296890546836\" alt=\"❖ SparkleIconSembi.png\" width=\"96\" height=\"96\">AI Test Script Generation <img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 168/56; width: 8.34%;\" src=\"https://support.testrail.com/hc/article_attachments/47296890547732\" alt=\"❖ BadgeSembi.jpg\" width=\"168\" height=\"56\"></strong></h2><p data-start=\"685\" data-end=\"826\">TestRail now introduces <strong data-start=\"709\" data-end=\"738\">AI Test Script Generation</strong>, a new beta feature designed to accelerate script development for automation engineers.</p><p data-start=\"828\" data-end=\"956\">Generate high-quality, well-structured test automation code directly from your test cases through an interactive chat interface.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2208/2030;\" src=\"https://support.testrail.com/hc/article_attachments/47297312113044\" alt=\"academycourse (1).png\" width=\"2208\" height=\"2030\"></figure><p data-start=\"958\" data-end=\"998\">With AI Test Script Generation, you can:</p><ul data-start=\"1000\" data-end=\"1369\">\n<li data-section-id=\"1bqsq1r\" data-start=\"1000\" data-end=\"1070\" data-list-item-id=\"eb9b0b5d0fc1b590531f83d1866ec7718\">Generate <strong data-start=\"189\" data-end=\"266\">structured, well-commented automation code and downloadable project files</strong>\n</li>\n<li data-section-id=\"1bqsq1r\" data-start=\"1000\" data-end=\"1070\" data-list-item-id=\"e1cb9d0b216ccbc876f351084756d8f43\">\n<strong data-start=\"286\" data-end=\"325\">Upload files for additional context</strong> (for example existing automation code, selectors, or configuration files) to improve the generated output</li>\n<li data-list-item-id=\"ee36df7fa9e15b156d4e7d6f1ae134d36\"><p data-start=\"813\" data-end=\"873\">Get <strong data-start=\"817\" data-end=\"852\">clear placeholders and guidance</strong> for required setup</p></li>\n<li data-section-id=\"1uczqd7\" data-start=\"1176\" data-end=\"1238\" data-list-item-id=\"ebf01dc1d49dc4dd0eceebf417b4aca0f\">Iteratively refine code through a <strong data-start=\"1212\" data-end=\"1236\">chat-based interface</strong>\n</li>\n<li data-section-id=\"1uczqd7\" data-start=\"1176\" data-end=\"1238\" data-list-item-id=\"ed11e4f6b44b29184ddd615b65d3347b3\">\n<strong data-start=\"535\" data-end=\"587\">Attach the generated automation to the test case</strong> for traceability, reuse, and easy updates as the test case evolves</li>\n</ul><figure class=\"wysiwyg-table wysiwyg-table-align-left\" style=\"width: 97.4%;\"><table class=\"wysiwyg-table-resized\" data-pm-slice=\"1 1 []\">\n<colgroup>\n<col style=\"width: 26%;\">\n<col style=\"width: 42%;\">\n<col style=\"width: 32%;\">\n</colgroup>\n<tbody>\n<tr>\n<td colspan=\"1\" rowspan=\"1\"><strong>Language</strong></td>\n<td colspan=\"1\" rowspan=\"1\"><strong>Frameworks</strong></td>\n<td colspan=\"1\" rowspan=\"1\"><strong>Status</strong></td>\n</tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">Java</td>\n<td colspan=\"1\" rowspan=\"1\">Selenium · Playwright · Cucumber</td>\n<td colspan=\"1\" rowspan=\"1\">Live</td>\n</tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">Python</td>\n<td colspan=\"1\" rowspan=\"1\">Selenium · Playwright · Behave</td>\n<td colspan=\"1\" rowspan=\"1\">Live</td>\n</tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">More</td>\n<td colspan=\"1\" rowspan=\"1\">Additional frameworks</td>\n<td colspan=\"1\" rowspan=\"1\">Coming soon</td>\n</tr>\n</tbody>\n</table></figure><p>This is a <strong data-start=\"1513\" data-end=\"1529\">beta feature</strong> and requires <strong data-start=\"1543\" data-end=\"1565\">manual integration</strong> into your automation framework. It represents the first step toward deeper automation assistance in TestRail. </p><p> </p><div style=\"margin: 24px 0; padding: 24px; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc;\">\n    <div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #111827;\">\n      <p style=\"margin: 0 0 8px; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280;\">\n      TESTRAIL ACADEMY\n    </p>\n      <h3 style=\"margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; color: #111827;\" id=\"h_01KKY0GZ7XSHV20NHHTVB474R4\">\n      Learn how to use Automate with AI\n    </h3>\n      <p style=\"margin: 0 0 24px; font-size: 16px; line-height: 1.6; color: #374151;\">\n        Explore the TestRail Academy course to learn how to generate automation\n        scripts with AI,\n        understand the workflow, and get the best results from the feature.\n      </p>\n      <div style=\"line-height: 0;\">\n        <a href=\"https://academy.testrail.com/plus/courses/165/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 12px 22px; font-size: 15px; font-weight: 600; color: #ffffff; background: #2563eb; text-decoration: none; border-radius: 8px; margin-right: 20px;\">\n        Open Academy Course\n      </a><a href=\"https://support.testrail.com/hc/en-us/sections/43586890371220-Automate-Test-Cases-with-AI\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 12px 22px; font-size: 15px; font-weight: 600; color: #2563eb; background: #e0ecff; text-decoration: none; border-radius: 8px;\">\n        View Documentation\n      </a>\n      </div>\n    </div>\n  </div><h2 id=\"h_01KKXT0WFAYHR7Y5E79Z2JH2XA\" data-start=\"397\" data-end=\"429\">\n<strong data-start=\"402\" data-end=\"427\"><img class=\"wysiwyg-image-resized\" style=\"aspect-ratio: 512/512; height: auto; width: 27.5625px;\" src=\"https://cdn-icons-png.flaticon.com/512/5968/5968875.png\" alt=\"Jira - Free logo icons\" width=\"512\" height=\"512\"></strong><strong> </strong><strong data-start=\"1685\" data-end=\"1708\">Jira Coverage Check</strong>\n</h2><p data-start=\"1710\" data-end=\"1857\">TestRail now provides a new way to <strong data-start=\"1745\" data-end=\"1791\">analyze test coverage across Jira entities</strong>, improving visibility into gaps between requirements and testing.</p><p data-start=\"1859\" data-end=\"1893\">With Jira Coverage Check, you can:</p><ul data-start=\"1895\" data-end=\"2177\">\n<li data-section-id=\"lpr1y4\" data-start=\"1895\" data-end=\"1979\" data-list-item-id=\"e88c4adf93b6492e8aed63ccb0436f2bb\">Evaluate coverage for Jira entities such as <strong data-start=\"1941\" data-end=\"1977\">Sprints, Fix Versions, and Epics</strong>\n</li>\n<li data-section-id=\"3ob56m\" data-start=\"1980\" data-end=\"2053\" data-list-item-id=\"ea3321fc761accf6ad098a28ac06401cd\">Run coverage checks across both the <strong data-start=\"2018\" data-end=\"2051\">Test Cases Repository and Test Runs</strong>\n</li>\n<li data-section-id=\"18cfogv\" data-start=\"2054\" data-end=\"2125\" data-list-item-id=\"e62fc88e6b04ee8d8ff10d6829d2c3d5d\">Identify uncovered items and <strong data-start=\"2085\" data-end=\"2123\">navigate directly to Jira entities</strong>\n</li>\n<li data-section-id=\"hrn7xp\" data-start=\"2126\" data-end=\"2177\" data-list-item-id=\"e001578f2d4726e6f46227c9e3109f347\">Export results via <strong data-start=\"2147\" data-end=\"2154\">CSV</strong> for further analysis</li>\n</ul><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 2356/1604;\" src=\"https://support.testrail.com/hc/article_attachments/47525850531220\" alt=\"Screenshot 2026-03-18 at 16.15.11.png\" width=\"2356\" height=\"1604\"><figcaption>Selecting Jira Entity to check against</figcaption></figure><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 2366/1584;\" src=\"https://support.testrail.com/hc/article_attachments/47525842159636\" alt=\"Screenshot 2026-03-24 at 12.46.45.png\" width=\"2366\" height=\"1584\"><figcaption>Jira Coverage Results</figcaption></figure><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more about <a href=\"https://support.testrail.com/hc/en-us/articles/47341662234772-Jira-Coverage-Check\">Jira Test Coverage Check</a>.</div><h2 id=\"h_01KKY0GZ7Y12AAZKEX1V1CCGZX\">🔐 <strong data-start=\"2281\" data-end=\"2321\">Passwordless Login Support for Azure</strong>\n</h2><p data-start=\"2323\" data-end=\"2398\">TestRail now supports <strong data-start=\"2345\" data-end=\"2397\">passwordless authentication for Azure SSO (SAML)</strong>.</p><p data-start=\"2400\" data-end=\"2595\">This update removes the previous restriction on authentication methods, allowing TestRail to accept users authenticated by Azure regardless of method (e.g., passwordless, MFA, certificate-based).</p><p data-start=\"2597\" data-end=\"2610\">This ensures:</p><ul data-start=\"2612\" data-end=\"2778\">\n<li data-section-id=\"zqzmy6\" data-start=\"2612\" data-end=\"2670\" data-list-item-id=\"e24f427923c46d88c4458eba430554dd4\">Compatibility with modern Azure authentication methods</li>\n<li data-section-id=\"1fazccw\" data-start=\"2671\" data-end=\"2720\" data-list-item-id=\"ef02c4d005b1fc4ac4399ec1951e583f7\">Alignment with Azure as the identity provider</li>\n<li data-section-id=\"1avt75j\" data-start=\"2721\" data-end=\"2778\" data-list-item-id=\"e81fe41c579f4d53b286b6e45c9cd5fcc\">A more secure and seamless login experience for users</li>\n</ul><h2 id=\"h_01KKY0GZ7Y8D8D8T68XNR0NJ27\">🧪 <strong data-start=\"2788\" data-end=\"2810\">BDD Syntax Support</strong>\n</h2><div><div tabindex=\"-1\"><div><div dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"0cc3d09b-ec3d-4548-b097-f57948ca6316\" data-message-model-slug=\"gpt-5-3\"><div><div>\n<p data-start=\"0\" data-end=\"426\" data-is-last-node=\"\" data-is-only-node=\"\">BDD scenarios in TestRail now support proper Gherkin syntax rendering, making them easier to read and work with. Keywords such as Given, When, Then, And, and But are clearly formatted with syntax highlighting and structured layout, improving clarity for both manual and automated workflows. Combined with native Cucumber parser support in the <a href=\"https://github.com/gurock/trcli/releases/tag/v1.13.3\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail CLI 1.13.3</a> teams can seamlessly run and report BDD automation end to end.</p>\n<figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 85%;\"><img style=\"aspect-ratio: 1802/812;\" src=\"https://support.testrail.com/hc/article_attachments/47299062113428\" alt=\"Screenshot 2026-03-17 at 14.18.10.png\" width=\"1802\" height=\"812\"></figure>\n</div></div></div></div></div></div><p> </p><h2 id=\"h_01KKXTNYAQSACQ9W189B90FY07\">💻 <strong data-start=\"2630\" data-end=\"2651\">TestRail CLI 1.13.4</strong>\n</h2><p data-start=\"2627\" data-end=\"2738\">The latest version of the <strong data-start=\"2680\" data-end=\"2696\">TestRail CLI</strong> is now available with new capabilities. You can now:</p><ul>\n<li data-list-item-id=\"e04fe4be2b02759851c9d5bafa5075ab4\">Extended glob support for robot parser for efficient multiple test result file processing</li>\n<li data-list-item-id=\"e30d2bbf58211d9ad80dd4269251752b4\">Added <code class=\"inline-code\">--run-assigned-to-id</code> and <code class=\"inline-code\">--clear-run-assigned-to-id</code> options to <strong>add_run</strong> command for clearing and setting test run assignees during run creation and updates</li>\n<li data-list-item-id=\"e8e6fb1ddaa4d39d904d9403a995396ea\">Receive <strong data-start=\"226\" data-end=\"251\">version notifications</strong> and use a new <code class=\"inline-code\">update</code> command to easily upgrade to the latest version (v1.13.3).</li>\n<li data-section-id=\"1v818l0\" data-start=\"325\" data-end=\"425\" data-list-item-id=\"ea70fe8a144c135aed56ff2268c8cec43\">Handle <strong data-start=\"334\" data-end=\"364\">multiple test result files</strong> with enhanced blob support, improving automation workflows (v1.13.3).</li>\n</ul><p data-start=\"427\" data-end=\"481\">This release also includes the following improvements &amp; fixes:</p><ul data-start=\"483\" data-end=\"548\">\n<li data-section-id=\"z9fva1\" data-start=\"483\" data-end=\"548\" data-list-item-id=\"e78aa58238eb3c7ad76eb5a685a4cefc4\">Improved - Attachment handling and validation for custom fields</li>\n<li data-section-id=\"z9fva1\" data-start=\"483\" data-end=\"548\" data-list-item-id=\"e8e0f931116ed98de9c98044bccdef4e2\">Fixed - Cannot add empty runs via add_run command due to empty test case validation</li>\n</ul><p>API Update:</p><ul><li data-list-item-id=\"e87abe888249720ca53388b4d456304c6\">\n<a href=\"https://support.testrail.com/hc/en-us/articles/7077874763156\" target=\"_blank\" rel=\"noopener noreferrer\">update_run</a>: included support for assignedto_id</li></ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>👉 </strong>Learn more in the <a href=\"https://github.com/gurock/trcli?tab=readme-ov-file#trcli---the-testrail-cli\">TestRail CLI documentation.</a>\n</div><h2 id=\"h_01KKXT0WFAB50PQVB836YFT1SB\">🐞 Fixes and Improvements (15)</h2><ul>\n<li data-list-item-id=\"e4cbc6e26a0b9869e4f32a08405c10d4c\"><p data-start=\"55\" data-end=\"146\"><strong>TR-10585:</strong> Test cases marked as deleted still visible after retention period</p></li>\n<li data-list-item-id=\"e7523107fbecbabb6094ecf85b06108c2\"><p data-start=\"55\" data-end=\"146\"><strong>TR-12235:</strong> Resolved inconsistencies in case_assocs table</p></li>\n<li data-list-item-id=\"e4fc6fdcfd0de5b0957613d2cf6dd1ac4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-12737: </strong>Variable values issues in pop-up</p></li>\n<li data-list-item-id=\"ef21e6c2fa67249d336b90ac26a9c6c5c\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16765:</strong> Added support for Azure passwordless login</p></li>\n<li data-list-item-id=\"e2febdd6d03e40b42273eedefc36b949b\"><p data-start=\"55\" data-end=\"146\"><strong>TR-16842:</strong> Error when closing test plans resulting in internal server error</p></li>\n<li data-list-item-id=\"ec93cdbdec28ef002a81900e6ce88682e\"><p data-start=\"55\" data-end=\"146\"><strong>TR-17321: </strong>Pasted defect lists in Jira integration not saved correctly</p></li>\n<li data-list-item-id=\"e5ba524464e679b13a317e225f13789b4\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18487:</strong> Data loss when creating or updating test cases</p></li>\n<li data-list-item-id=\"ea64920ff6a2b4481b67b1f454bcad65a\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18623: </strong>Data Management export issue</p></li>\n<li data-list-item-id=\"efe7769b0ace4dbaa380f581028a869ad\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18640:</strong> Jira integration returning 401 error when editing issues</p></li>\n<li data-list-item-id=\"e7928c29df223745d4cf9f18b14e5cc24\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18662: </strong>Column issues on property distribution report</p></li>\n<li data-list-item-id=\"ee10b92b41f16fb560da4cd3520e8a939\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18671:</strong> Project-level permissions not applied correctly</p></li>\n<li data-list-item-id=\"ee9d5f534030980732aa7f8f8f3cc5d88\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18785:</strong> Scheduled reports not being generated</p></li>\n<li data-list-item-id=\"e7d92e5b9555ff0f3ac51d18964c38436\"><p data-start=\"55\" data-end=\"146\"><strong>TR-18833:</strong> Error when importing test cases due to missing estimate field</p></li>\n<li data-list-item-id=\"ed4e12e6706e7b10218be6e4488e3ee33\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19183:</strong> Error when opening tests within archived runs</p></li>\n<li data-list-item-id=\"e313d87de2c6191769a1cb8becae2afa0\"><p data-start=\"55\" data-end=\"146\"><strong>TR-19290: </strong>DateTime error on Admin &gt; Integration Page</p></li>\n</ul><p> </p><p> </p>","user_segment_ids":[]},{"id":47020752099988,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/47020752099988.json","html_url":"https://support.testrail.com/hc/en-us/articles/47020752099988-Best-Practices-Generate-Automation-Test-Code-with-AI","author_id":20567219603988,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":32889553351316,"created_at":"2026-03-09T01:12:21Z","updated_at":"2026-03-26T11:47:32Z","name":"Best Practices: Generate Automation Test Code with AI","title":"Best Practices: Generate Automation Test Code with AI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-03-26T11:47:16Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>TestRail’s new <strong>Automate with AI (BETA)</strong> feature leverages Large Language Models (LLMs) to automatically generate test code directly from your manual test cases. By writing well-structured test steps and providing the correct context files, you can instantly translate your manual efforts into functional automated test artifacts.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 740/378;\" src=\"https://support.testrail.com/hc/article_attachments/47599702454932\" width=\"740\" height=\"378\"></figure><h2 id=\"h_01KK83TQ9HCJ37JNHAH9Q9VSCE\">Feature Capabilities &amp; Scope</h2><p>LLMs are trained on massive amounts of data to learn patterns, but they do not actually write or execute code independently; instead, they learn what valid, useful code tends to look like. Therefore, understanding the scope and limitations of the tool is vital:</p><ul>\n<li data-list-item-id=\"ee85fece6104ec801897c6fae18f83c7e\">\n<strong>Supported Frameworks:</strong> Generate code in Java (using JUnit) or Python. Supported frameworks include Selenium and Playwright. You can also choose to generate BDD-style tests (like Cucumber or Behave).</li>\n<li data-list-item-id=\"e61762b426ee97e72f9f7c6e784627e8b\">\n<strong>Project Structure:</strong> Generated Selenium projects automatically use the Page Object Model (POM) structure, and Java projects will include JavaDoc comments.</li>\n<li data-list-item-id=\"ee894f8562ec5dc2ba12e30efa83d3123\">\n<strong>Supported Use Cases:</strong> This feature is exclusively for standalone Web-based UI end-to-end automated test cases.</li>\n<li data-list-item-id=\"ececc59afb8201b77c2991d380e471ad3\">\n<strong>Not Supported:</strong> Mobile, desktop, backend testing, or other programming languages are not currently supported.</li>\n</ul><hr><h2 id=\"h_01KK83TQ9HZDRDF4FMB417PN4N\">Optimizing Your Test Case for AI</h2><p>Because LLMs do not inherently know your application's URLs or routing, you must write your test cases using <strong>Pseudocode</strong>—precise, detailed wording that reads like plain text but acts like computer code. Assure the AI has zero outside context.</p><h3 id=\"h_01KK83TQ9H2BY8HVPVGHMB5BXB\">Writing Pseudocode Steps</h3><ul>\n<li data-list-item-id=\"ecc7cc81fe4a938ba9e198c5b8c38459b\">\n<strong>Use Exact Navigation:</strong> Instead of \"Go to Settings\", use: <em>\"Navigate to 'url.com', Click on My Account link, Click Settings Button\"</em>.</li>\n<li data-list-item-id=\"e5163c8975c71eace64a8b1fd8732adb5\">\n<strong>Use Precise Assertions:</strong> Computer code differentiates between \"visible to the user\" and \"present on the page\". Use phrases like <em>\"Wait up to X seconds for the {element} to be visible\"</em> instead of the vague <em>\"Should be there\"</em>.</li>\n<li data-list-item-id=\"e0f8887307dba5775b9b8df11ed1a464f\">\n<strong>Specify Text Matching Strictness:</strong> Distinguish between exact matches and partial matches. Use <em>\"The error text is an exact match for 'Incorrect password'\"</em> or <em>\"The error text contains the words 'incorrect password'\"</em>.</li>\n</ul><h3 id=\"h_01KK83TQ9HAXXC1R6CNMQHVM10\">Expected Results are Required</h3><p><strong>The \"Expected Result\" field cannot be empty.</strong> If this field lacks pass/fail criteria, the <em>Automate with AI</em> button will remain disabled. Any text placed in the Pre-Conditions field will be generated as commented-out code, so you should omit manual-only setup steps.</p><hr><h2 id=\"h_01KK83TQ9JXF3NKTN831BDJ8QM\">Generating the Code</h2><ol>\n<li data-list-item-id=\"e4b5eff1adfc7065a9a90f044c5afd4b7\">Navigate to your saved Test Case in TestRail. (The button will be disabled until the test is saved).</li>\n<li data-list-item-id=\"eeda2bb2a78a6994cbf7accbee95e9e99\">Click the <strong>Automate with AI (BETA)</strong> button in the left panel.</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 203/157;\" src=\"https://support.testrail.com/hc/article_attachments/47599702455444\" width=\"203\" height=\"157\"></figure><ol start=\"3\"><li data-list-item-id=\"e88d4c8d42edb587e30ef805a70d50ac9\">In the AI Tool Window, click <strong>Settings</strong> to choose your Programming Language and Framework.</li></ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 565/316;\" src=\"https://support.testrail.com/hc/article_attachments/47599702456084\" width=\"565\" height=\"316\"></figure><ol start=\"3\"><li data-list-item-id=\"e57e33c1e0c5831f08042f4aae785d4f0\">Click <strong>Add Context Files</strong> and upload your prepared Selectors, Test Data, and Coding Rules files.</li></ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 441/151;\" src=\"https://support.testrail.com/hc/article_attachments/47599702456852\" width=\"441\" height=\"151\"></figure><ol start=\"3\"><li data-list-item-id=\"e025090384b102424ad1490b68ece464d\">Click <strong>Generate</strong> and wait for the AI to prepare your automation code.</li></ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 224/100;\" src=\"https://support.testrail.com/hc/article_attachments/47599721657236\" width=\"224\" height=\"100\"></figure><hr><h2 id=\"h_01KK83TQ9JBBCDM70JN54VV04P\">Reviewing and Refining</h2><p>Once generated, the results window will display:</p><ul>\n<li data-list-item-id=\"e5ac86c1bed458aa0a75161c33d7f14e7\">\n<strong>Imports.java (1):</strong> The library and framework imports for your code.</li>\n<li data-list-item-id=\"eec4a221aedf56bd1c88c065024cb9f6c\">\n<strong>Code.java(2):</strong> The test script, broken down by class using comment strings.</li>\n<li data-list-item-id=\"eabc457b74aa63e92987990c309fc3229\">\n<strong>AI Chat Window(3):</strong> Use this to interactively iterate and refine your code.</li>\n</ul><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 795/483;\" src=\"https://support.testrail.com/hc/article_attachments/47599702458388\" width=\"795\" height=\"483\"></figure><p>If the code isn't perfect, use the chat box to request edits. A strong prompt includes the <strong>Goal</strong>, <strong>Context</strong>, <strong>Rules/Style</strong>, and <strong>Output Format</strong>. For complex tasks, ask the AI to <em>\"Think step by step\"</em>. If something is unclear, you can ask <em>\"Why did you do X on line 123?\"</em>.</p><hr><h2 id=\"h_01KK83TQ9JKVVM8765CBDCXN1D\">Saving and Execution</h2><p>Once you are satisfied with the code, you have two options:</p><ul>\n<li data-list-item-id=\"e68b9d730e0cecf14da6f06dbac918214\">Click <strong>Download</strong> to export the project as a package to run in your local IDE.</li>\n<li data-list-item-id=\"e0d314f2d3e39c9f8cb1925612d7b0404\">Click <strong>Add to Test Case</strong> to save the generated code natively within your TestRail test case.</li>\n</ul><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 783/342;\" src=\"https://support.testrail.com/hc/article_attachments/47599702459156\" width=\"783\" height=\"342\"></figure><hr><h2 id=\"h_01KK83TQ9J789JVXKM9SHRBYF2\">Important Limitations &amp; Security</h2><p>Because this feature is in BETA, the AI treats each test case as a completely isolated project; it does not retain data or instructions outside of the test case they were given to. LLMs can occasionally generate code that looks technically correct but does not perform as expected. <strong>Never skip human review and oversight before implementing generated code.</strong></p><hr><div role=\"alert\" aria-label=\"Attention\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #fb8500; background: #fff7ed; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Attention</div>\n  <div>\n    <p style=\"margin: 0 0 8px 0;\">\n      This script includes code generated using LLM. Because this code is produced by an automated system, please note the following:\n    </p>\n    <ul style=\"margin: 0; padding-left: 20px;\">\n      <li style=\"margin-bottom: 6px;\">\n        <strong>No Official Support.</strong> We do not provide technical support, troubleshooting, or bug fixes for code generated by AI.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Review Required.</strong> You must manually audit and test all output before use. Automated systems may produce errors, security flaws, or outdated syntax.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Environmental Context.</strong> Generated steps may be incomplete or incorrect due to missing context. This includes unmentioned browser requirements, missing dependencies, or specific environment configurations.\n      </li>\n      <li>\n        <strong>User Responsibility.</strong> You are solely responsible for the performance, security, and maintenance of any generated code you choose to implement.\n      </li>\n    </ul>\n  </div>\n</div><h2 id=\"h_01KK83TQ9JSM0QQ26ADZEJZ1WE\">Additional TestRail AI Resources</h2><p>For more specific articles on AI functionality and security, please explore the User Guide in the TestRail Support Center:</p><ul>\n<li data-list-item-id=\"e5bbe3ef8f313e832ee63f8f405c4e690\"><a href=\"https://support.testrail.com/hc/en-us/sections/41125250577428-Generating-Test-Cases-with-AI\" target=\"_blank\" rel=\"noopener noreferrer\">Generating Test Cases with AI</a></li>\n<li data-list-item-id=\"e1065e771a6234a75b202bb1921c669f2\"><a href=\"https://support.testrail.com/hc/en-us/articles/41088265893652-Responsible-AI-Use-Guide\" target=\"_blank\" rel=\"noopener noreferrer\">Responsible AI Use Guide</a></li>\n<li data-list-item-id=\"e8bfcde4fe19ee4d75637046c6e7b9286\"><a href=\"https://www.sembi.com/legal/Gurock/#tab2\" target=\"_blank\" rel=\"noopener noreferrer\">AI Supplementary Terms and Data Policy</a></li>\n</ul>","user_segment_ids":[]},{"id":46901632532244,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46901632532244.json","html_url":"https://support.testrail.com/hc/en-us/articles/46901632532244-Getting-the-most-out-of-AI-Powered-Automation-in-TestRail","author_id":30722137297812,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":1,"vote_count":1,"section_id":43586890371220,"created_at":"2026-03-05T11:39:27Z","updated_at":"2026-03-25T17:21:52Z","name":"Getting the most out of AI-Powered Automation in TestRail","title":"Getting the most out of AI-Powered Automation in TestRail","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-03-20T10:59:42Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>AI-powered automation in TestRail helps you move from manual test cases to executable automation faster. It generates a structured first draft based on your test case content and selected settings, while explaining what it created and why.</p><p>The output is designed to be reviewed, tested, and refined. It accelerates your work, but you remain in control.</p><p>The quality of what you receive depends directly on the quality of what you provide. This guide explains how to write better test cases, prompt more effectively, and provide the right context so the generated automation aligns with your real project.</p><p> </p><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>ℹ️ </strong>The AI feature is available in <strong data-start=\"105\" data-end=\"128\">TestRail Cloud only</strong>.</div><h2 id=\"h_01KJYWTG4DV67AJGCK9SP2HT4Q\"> </h2><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2208/2030;\" src=\"https://support.testrail.com/hc/article_attachments/47137100134804\" alt=\"academycourse.png\" width=\"2208\" height=\"2030\"></figure><h2 id=\"h_01KJYXT2EVVR2WJ52QC1MSN674\"><strong>Understand what the AI actually uses</strong></h2><p>When generating automation, only text-based information from the test case is sent to the AI. This may include:</p><ul>\n<li data-list-item-id=\"eb1c2aeb34ddef1ecdac6271ee5eed78e\">Title</li>\n<li data-list-item-id=\"ea6f4f1d20b7825ab2b09a5973c4a7a49\">Description</li>\n<li data-list-item-id=\"e3af9eca73b0a96c6078ccd87b8ffd892\">Preconditions</li>\n<li data-list-item-id=\"ec2dfbf0142f2996f372335b3d5f7480d\">Steps</li>\n<li data-list-item-id=\"eb9984f04335c1ef237beab4d02620a26\">Expected results</li>\n<li data-list-item-id=\"e5c3083b7cbf9f63403a82db2729e62b9\">BDD scenarios</li>\n<li data-list-item-id=\"e4ff65bfc6c50cb1cf2710908274fa31f\">Other custom text fields</li>\n</ul><p>The AI uses whichever of these fields are present in the test case. Structured metadata, attachments, and non-text fields are not used.</p><div role=\"alert\" aria-label=\"Warning\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #e5a700; background: #fffbea; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">Important to know</div>\n  <div>\nIf your templates use custom Text type case fields for steps and expected results, complete the AI mapping in Customization  Edit Case Field so AI can correctly interpret and use them during automation script generation.  </div>\n</div><p> </p><h2 id=\"h_01KJYWV11V0ZTVT9NBCRYR3SEE\"><strong>Write test cases for automation, not just for humans</strong></h2><p>Regardless of the test case template you use, the more precise and structured the information in your title, preconditions, steps, and expected results, the better the generated automation will be.</p><p>AI does not interpret intent the way a human tester does. It translates written instructions into executable logic. The clearer the instructions, the stronger the result. Even something as simple as a more specific title helps the AI better understand the test objective.</p><p>Let’s look at a simple comparison.</p><p> </p><h4 id=\"h_01KJYWXSPTWDKAG96VT3W0ENQ8\"><strong>🟡 Weak example</strong></h4><p><strong>Title:</strong> user can update profile</p><p><strong>Steps:</strong></p><ul>\n<li data-list-item-id=\"eff56e1e7637a5b8bf3f1744324189237\">Log in</li>\n<li data-list-item-id=\"e8b4d45e7bd74eea2c50e30f12b1a0aec\">Update profile</li>\n<li data-list-item-id=\"e772299600176d742af7bd06475684595\">Save</li>\n<li data-list-item-id=\"e8c4273141e4961892cf67639ff57d635\">Verify changes</li>\n</ul><p>This leaves too much open to interpretation:</p><ul>\n<li data-list-item-id=\"e70fb13dfd9c49910a025844a99b47d2e\">Which field is being updated?</li>\n<li data-list-item-id=\"e1d60aa8e39a4746664b67530d47b5aed\">What data should be entered?</li>\n<li data-list-item-id=\"edcf16314118e7ddf923732dde9262d3c\">How is login performed?</li>\n<li data-list-item-id=\"e2d5c72cd5ec3226a61869ff6889f01b4\">Which selectors are involved?</li>\n<li data-list-item-id=\"effebc6c5f0b78a37557ec8c2934e689b\">What confirms success?</li>\n<li data-list-item-id=\"e25f27d77e77f7c74ae26876737e77923\">What should the automation wait for?</li>\n</ul><div role=\"alert\" aria-label=\"Poor Outcome\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #cf222e; background: #fff8f8; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">Poor Outcome</div>\n  <div>\n    The AI will generate generic automation because the instructions are generic.\n  </div>\n</div><h4 id=\"h_01KJYX57J2NSCRH9M6A1XAR8PQ\"> </h4><h4 id=\"h_01KJYXT2EVHCH3WBB2VR3G6GM6\"><strong>🟢 Stronger example</strong></h4><p><strong>Title:</strong> update phone number in profile settings</p><p>Notice how the title already clarifies the specific objective.</p><p><strong>Preconditions:</strong></p><ul>\n<li data-list-item-id=\"e7683202e80c28c280e5a42c449766d3c\">User account exists</li>\n<li data-list-item-id=\"edf7ca65c10e02d65e6a58be61535cb9f\">Base URL: <a href=\"https://staging.example.com/\"><span class=\"wysiwyg-underline\">https://staging.example.com</span></a>\n</li>\n<li data-list-item-id=\"e0cd62b36588c2e66d083cfed82d20db3\">User is logged out</li>\n</ul><p><strong>Steps:</strong></p><ol>\n<li data-list-item-id=\"e5662dc7bf2a8dee7c8d1624ef6a934cf\">Navigate to /login</li>\n<li data-list-item-id=\"e5ee39517d9573f654c5de594b9fc3197\">Enter email into field with ID email</li>\n<li data-list-item-id=\"e142ee8ec21ed15ef5c838c1cc44e81ed\">Enter password into field with ID password</li>\n<li data-list-item-id=\"e25bc0d61316827361559135cf92069b0\">Click button with ID login-submit</li>\n<li data-list-item-id=\"e90b95fa347244eab2daa2e62fd56609d\">Wait until URL contains /dashboard</li>\n<li data-list-item-id=\"e4e62fee200e4721bdaa90ec8550d9475\">Navigate to /profile</li>\n<li data-list-item-id=\"ee222edf6db3d704999d695beb46684f4\">Clear field with ID phone-number</li>\n<li data-list-item-id=\"e0556deec51743c9cc2abb2f53c6cf84d\">Enter value +44 7700 900123</li>\n<li data-list-item-id=\"e53b8e104c215c08e8bc5c4b5dea8d41a\">Click button with CSS selector .save-profile</li>\n<li data-list-item-id=\"e63211989f00bb12070df164b96cd929e\">Wait for success toast with text Profile updated successfully</li>\n</ol><p><strong>Expected results:</strong></p><ul>\n<li data-list-item-id=\"eb08cd00840ce66c8f46fdf2da3543795\">Success toast is visible</li>\n<li data-list-item-id=\"ea28117df0894aaccccc6feeb0451c35e\">Toast text equals Profile updated successfully</li>\n<li data-list-item-id=\"ea181ebcb0cba050dbf2401eb0da52965\">Field phone-number contains +44 7700 900123</li>\n</ul><p><strong>This version provides:</strong></p><ul>\n<li data-list-item-id=\"e013942875d01822ce59e34e0f807f4d1\">A clearly defined objective</li>\n<li data-list-item-id=\"ecb92437fcf271fe4bfa25ac8c86a80e6\">Explicit navigation</li>\n<li data-list-item-id=\"ecf6519e7cfa615c580864e95abb97957\">Concrete element references</li>\n<li data-list-item-id=\"e68e879cf1e4c77e0d601c90e501b47ae\">Defined test data</li>\n<li data-list-item-id=\"e322d59a13b447c1be0b28a6f111916d0\">Verifiable assertions</li>\n</ul><div role=\"note\" aria-label=\"AI Usage Guidance\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #2da44e; background: #f6fffa; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">Good Outcome</div>\n  <div>\n    As a result, the AI can translate each step into structured automation code\n    with meaningful waits and validations.\n  </div>\n</div><p> </p><div role=\"note\" aria-label=\"Tip\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #0969da; background: #f6f8ff; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">💡 Tip</div>\n  <div>\n    When writing test cases with automation in mind, think in terms of:\n    <ul style=\"margin: 8px 0 8px 18px; padding: 0;\">\n      <li>Exact actions</li>\n      <li>Exact inputs</li>\n      <li>Exact validations</li>\n      <li>Observable outcomes</li>\n    </ul>\n    The more explicit your test case, the closer the generated automation will align with your intended behaviour.\n  </div>\n</div><p> </p><h2 id=\"h_01KJYXAJA6N3RATYEA10K0VSSW\"><strong>Be explicit about validations</strong></h2><p>Automation only works when the system can clearly determine whether a test has passed or failed.</p><p>Unlike a human tester, an automated test cannot rely on judgement or visual interpretation. It must check specific, measurable conditions in the application to decide if the behaviour is correct.</p><p>In automation, these checks are called <em>assertions</em>. An assertion is simply a rule in the code that verifies something is true, such as:</p><ul>\n<li data-list-item-id=\"ec54f2b6dcb14fe50bf37aa44617695c5\">A message is visible</li>\n<li data-list-item-id=\"edb8830d8593a75b68f5305d63710f9b6\">A button is enabled</li>\n<li data-list-item-id=\"e52bd2dea6a1fe3d519a1347d0f6985ba\">A URL has changed</li>\n<li data-list-item-id=\"e4c138baf9e6c59caa7ee93725f0b1d71\">A field contains a specific value</li>\n</ul><p>If the condition is not met, the test fails.</p><p>Validation details can appear in:</p><ul>\n<li data-list-item-id=\"efe9b4ed46fa7aaf56de251056e6f41b3\">Preconditions</li>\n<li data-list-item-id=\"ed4381c27ef82bb5812072ffa913449ad\">Steps</li>\n<li data-list-item-id=\"e62f6f3bb2449740b768ec6e47da7f89e\">Expected results</li>\n<li data-list-item-id=\"e3c753cafd828b59a68d05c3fe283416d\">Or in additional prompting instructions</li>\n</ul><p>What matters is that the expected outcome is clearly defined somewhere in the information sent to the AI.</p><h2 id=\"h_01KJYXJTF9ZAFM0YWB97VN87T0\"><strong>Select the correct language and framework</strong></h2><p>Before generating automation, you select the language and framework, such as Java or Python, Selenium or Playwright.</p><p>If your test case uses a BDD-style template, the AI aligns automatically:</p><ul>\n<li data-list-item-id=\"e18c547e4c4b07e8849e1b14e45e5330b\">Cucumber for Java</li>\n<li data-list-item-id=\"ef512769ddf604ded1eaaa29bde7fa34d\">Behave for Python </li>\n</ul><p>For best results with BDD, keep one scenario per test case. Multiple scenarios can lead to bloated or less focused output.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1366/768;\" src=\"https://support.testrail.com/hc/article_attachments/46902226235540\" alt=\"seetings.jpg\" width=\"1366\" height=\"768\"></figure><h2 id=\"h_01KJYXK0BZGYK65WYZ4TMJRT8Z\"><strong>Use direct prompting strategically</strong></h2><p>When generating automation in TestRail, you can provide additional instructions in the AI automation pop-up before clicking generate. This is called prompting.</p><p>A prompt is simply a structured set of instructions that tells the AI how to behave during code generation. It can include preferences, constraints, rules, and project-specific guidance.</p><p>Think of it as briefing a new team member before they start writing automation. Stronger prompts lead to stronger results.</p><p>The most effective prompts include two elements:</p><ol>\n<li data-list-item-id=\"e869752972f56fd5bec3955bacec9f854\">Context-building instructions</li>\n<li data-list-item-id=\"ecfcb021c29650372ba811b68796b2614\">Boundary-defining instructions</li>\n</ol><p>Both are essential.</p><h2 id=\"h_01KJYXKSH46H0RTXT3G9GDF0FE\"><strong>What are context-building prompts?</strong></h2><p>For non-technical readers, context-building prompts are instructions that explain how your project works. They help the AI understand:</p><ul>\n<li data-list-item-id=\"e63ddbb0b95d60570b7b975e125c8692c\">What framework you use</li>\n<li data-list-item-id=\"e8acaaa591647d58a64d56573822f8c78\">How your automation is structured</li>\n<li data-list-item-id=\"e95050edaf8749e39aa6391d4d9ade20a\">What naming conventions you follow</li>\n<li data-list-item-id=\"e551f49bdb5e8f0adb10ae814e050482e\">How you prefer validations and waits to be written</li>\n</ul><p>They improve quality by reducing generic output and aligning the generated code with your existing framework. Examples of context-building instructions:</p><ul>\n<li data-list-item-id=\"e6599755121de79cf29379b34df37c2c7\">Preferred locator strategy</li>\n<li data-list-item-id=\"ec30e6b7fa8306602b921d255ec6e31b0\">Page Object Model usage</li>\n<li data-list-item-id=\"e85d6a0349c930433e9d04457556a1a93\">Custom assertion wrappers</li>\n<li data-list-item-id=\"e18b9dfdf540930585d90e19a756741cf\">Naming conventions</li>\n<li data-list-item-id=\"e7de42f2fb0b015b16067bbaeb809b3b3\">Wait strategies</li>\n<li data-list-item-id=\"e9813169afd1da328c28b4b764cea9956\">Architectural patterns</li>\n</ul><h2 id=\"h_01KJYXMAP9ANNRERYK6M9KZK34\"><strong>What are boundary-defining prompts?</strong></h2><p>Boundary-defining prompts tell the AI what it must not do.</p><p>AI systems try to fill in gaps. If something is unclear, they may invent structure, selectors, utilities, or test data.</p><p>Boundaries protect consistency.</p><p>They prevent:</p><ul>\n<li data-list-item-id=\"e2fffade88ed343039dee9b83bed563c9\">Architectural overreach</li>\n<li data-list-item-id=\"e12e150499d7cc1380fd6880f2673518d\">Invented data</li>\n<li data-list-item-id=\"e41aa4c36dab2b9535d3de3d08807d96d\">Unapproved patterns</li>\n<li data-list-item-id=\"eb4e181b125e7400c7fc9cd958cf4d849\">Unnecessary refactoring</li>\n</ul><p>They keep the generated code stable and predictable.</p><h2 id=\"h_01KJYXMF957HYEX13JZTQYNG9G\"><strong>Why both matter</strong></h2><p>Context-building prompts improve quality.<br>Boundary-defining prompts protect consistency.</p><p>Together, they give you control.</p><p>When you send a prompt that combines both, the AI is guided not only on what to use during code generation, but also on what to avoid.</p><p>This significantly reduces generic outputs and increases the likelihood that the generated code will:</p><ul>\n<li data-list-item-id=\"edb8b696d81f3ee3f06d2ca52ced5de63\">Align with your framework</li>\n<li data-list-item-id=\"eaeabb4c2146cea9abd119fcea16ca860\">Respect your architectural decisions</li>\n<li data-list-item-id=\"eec82ac80d577504982df54f967f120b7\">Use the correct patterns</li>\n<li data-list-item-id=\"e76d8eaf9122f710c91ccdc83065e69c0\">Meet your expectations</li>\n</ul><p> </p><h2 id=\"h_01KJYXMSDMZGV0KBBR3Z8BFGXD\"><strong>Example of a good prompt</strong></h2><p>Here is an example that combines both context and boundaries in a single structured instruction:</p><pre class=\"wysiwyg-code-block\"><code class=\"language-auto\">Generate automation using Playwright with Python.\nFollow our existing Page Object Model structure as shown in the uploaded files.\nUse data-testid selectors wherever available.\nUse our custom assert_text_equals() wrapper for validations.\nUse explicit waits from our wait utility and do not use fixed sleeps.\nDo not introduce new helper classes or base classes.\nDo not invent URLs, credentials, or test data.\nIf required information is missing, insert a clearly marked TODO instead of guessing.\nOnly implement the steps defined in this test case. Do not extend behaviour beyond what is described.</code></pre><p>When you provide a prompt like this in the AI automation pop-up:</p><ul>\n<li data-list-item-id=\"e7e322dd0bd49c7c73679d6757fc6cf05\">The AI understands your preferred framework and patterns.</li>\n<li data-list-item-id=\"ecf9f3aa3b8ad44f91b768b78f3da6c98\">It avoids inventing architecture.</li>\n<li data-list-item-id=\"ea290a12fe0909d1feb96aa869df7c055\">It inserts placeholders instead of making unsafe assumptions.</li>\n<li data-list-item-id=\"ea02a0b8811557d777dfb828ef35da903\">The generated script is far more aligned with your real project.</li>\n</ul><p>This is what good prompting looks like.</p><h2 id=\"h_01KJYXNSZ9GHK3TG1KZSAYS76N\"><strong>What makes prompts more effective</strong></h2><p>The prompts that produce better results usually:</p><ul>\n<li data-list-item-id=\"ee47d99b14970ea480452122c9d417b81\">Are specific rather than generic</li>\n<li data-list-item-id=\"e280b950adb6a573611674e40a5370d6d\">Reflect your actual project structure</li>\n<li data-list-item-id=\"e56809ef59a31a364b384796171cff6db\">Combine guidance and constraints</li>\n<li data-list-item-id=\"ebefae05616d5b5c73850a7f4a2700e07\">Avoid vague instructions like “write clean code”</li>\n<li data-list-item-id=\"e9cc1e36805b5e1a0da9ed1e586ef6b4f\">Clearly define how missing information should be handled</li>\n</ul><p>Prompting is not about adding more text.<br>It is about adding the right clarity.</p><p>When used well, prompting transforms AI automation from a generic generator into a framework-aligned assistant.</p><h2 id=\"h_01KJYXNZE8104ZZ5WS6135Z36A\"><strong>Use file uploads as a quality multiplier</strong></h2><p class=\"wysiwyg-indent0.8333333333333334\">You can upload supporting files before generating automation to provide additional context. Supported formats include common code files, configuration files, and documentation formats. Uploading real project files significantly improves the relevance and alignment of the generated automation.</p><h5 id=\"h_01KJYWSP5HD07Z9N68P5A20SE8\">Useful files to upload:</h5><ul>\n<li data-list-item-id=\"ed88db06c2b36977cdac8205292461eab\">Page Object classes</li>\n<li data-list-item-id=\"e5d44617db69bb30166882c0b3f74bfd6\">Base test classes</li>\n<li data-list-item-id=\"e82c220ed9ee33a28a0971d04c10337c2\">Utility methods</li>\n<li data-list-item-id=\"ed9ec1f347497aa2e4a35151f49ee4f16\">Example test files</li>\n<li data-list-item-id=\"e5fc4cf72ee01a690872b36b7b407d0ef\">Centralised locator repositories</li>\n<li data-list-item-id=\"e9291410f70a7118b263eebafdc45cf66\">Test setup files</li>\n<li data-list-item-id=\"e29438c7469877a46904253674372360e\">Runner configuration</li>\n<li data-list-item-id=\"e87fad9a4a540cccdef765d8a9c157b05\">Framework snippets </li>\n<li data-list-item-id=\"ece4ad74c597ac20830b2a8136be13afe\">Custom assertion wrappers</li>\n<li data-list-item-id=\"e38ce21ef7eb991514e75d61a027c315d\">Logging utilities</li>\n<li data-list-item-id=\"e0083e0d93046ac16518b2f1b5a579c4e\">Wait helpers </li>\n<li data-list-item-id=\"ecea77cf1e1d732f2f62bb02e548c30dc\">etc.</li>\n</ul><div role=\"alert\" aria-label=\"Attention\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #fb8500; background: #fff7ed; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Attention</div>\n  <div>\n    Without file uploads, the AI generates automation based only on the test case text. With file uploads, it mirrors your real structure.\n  </div>\n</div><p> </p><h2 id=\"h_01KJYXS93H4DG0HGC3HBVQ9RJ7\"><strong>Review, refine, and iterate</strong></h2><p>The AI response includes:</p><ul>\n<li data-list-item-id=\"ea94f810fb32a06c8959ca39e2ad0e575\">An explanation of what was generated</li>\n<li data-list-item-id=\"ec52925f6bb54e3f07d59eea88f03eb37\">Inline comments mapping code to test steps</li>\n<li data-list-item-id=\"e6d0ecb02f0d6f12453115936ec87ce47\">Clearly marked placeholders where input is missing.</li>\n</ul><p>Always:</p><ul>\n<li data-list-item-id=\"ef576314c70391154b919b4577d0f71d6\">Review the script</li>\n<li data-list-item-id=\"e48a8261363dce39d5f5545c3f58e9329\">Run it in your environment</li>\n<li data-list-item-id=\"ed083cb654038d90039b45fedec02e9d9\">Validate selectors and waits</li>\n<li data-list-item-id=\"eadaee80ac054727ebb39234befbad5f1\">Refine for maintainability</li>\n</ul><p>Automation generation is traceable and recorded in history and audit logs, but human validation remains essential.</p><p> </p><div role=\"alert\" aria-label=\"Attention\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #fb8500; background: #fff7ed; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Attention</div>\n  <div>\n    <p style=\"margin: 0 0 8px 0;\">\n      This script includes code generated using LLM. Because this code is produced by an automated system, please note the following:\n    </p>\n    <ul style=\"margin: 0; padding-left: 20px;\">\n      <li style=\"margin-bottom: 6px;\">\n        <strong>No Official Support.</strong> We do not provide technical support, troubleshooting, or bug fixes for code generated by AI.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Review Required.</strong> You must manually audit and test all output before use. Automated systems may produce errors, security flaws, or outdated syntax.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Environmental Context.</strong> Generated steps may be incomplete or incorrect due to missing context. This includes unmentioned browser requirements, missing dependencies, or specific environment configurations.\n      </li>\n      <li>\n        <strong>User Responsibility.</strong> You are solely responsible for the performance, security, and maintenance of any generated code you choose to implement.\n      </li>\n    </ul>\n  </div>\n</div><div style=\"margin: 24px 0; padding: 24px; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc;\">\n  <div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #111827;\">\n    <p style=\"margin: 0 0 8px; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280;\">\n      TestRail Academy\n    </p>\n\n    <h3 style=\"margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; color: #111827;\" id=\"h_01KKGRJM1XQFTZ7PN6ME4JM85A\">\n      Learn how to use Automate with AI\n    </h3>\n\n    <p style=\"margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: #374151;\">\n      Explore the TestRail Academy course to learn how to generate automation scripts with AI, understand the workflow, and get the best results from the feature.\n    </p>\n\n    <a href=\"https://academy.testrail.com/plus/courses/165/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 12px 20px; font-size: 15px; font-weight: 600; color: #ffffff; background: #2563eb; text-decoration: none; border-radius: 8px;\">\n      Open Academy Course\n    </a>\n  </div>\n</div>","user_segment_ids":[]},{"id":46609041281812,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46609041281812.json","html_url":"https://support.testrail.com/hc/en-us/articles/46609041281812-How-to-get-the-best-results-with-Prioritize-with-AI","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":46556666909460,"created_at":"2026-02-24T18:27:44Z","updated_at":"2026-06-17T14:15:37Z","name":"How to get the best results with Prioritize with AI","title":"How to get the best results with Prioritize with AI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-17T14:15:35Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p data-local-id=\"4e10cfe54b83\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\" data-pm-slice=\"0 0 []\">Prioritize with AI analyses the information available in your TestRail environment - your tests content, execution history, defect data, labels, and the instructions you provide - to decide which tests matter most for your current release.</p><p data-local-id=\"470135fd33ad\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The quality of the results you get out is directly shaped by the quality of the information you put in. This guide explains what that means in practice: what to have in place before you run prioritization, and what habits will help you get consistently strong results over time.</p><h3 id=\"h_01KR3W44N88749QEJ72MVDC0G0\"><strong>Write a specific and meaningful prompt</strong></h3><p data-local-id=\"4c8132ad5dfa\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Your Additional Instructions prompt is the single most important input to prioritization. It tells the AI what your release is about, what areas carry the most risk, and what you need to focus on right now. The more specific and context-rich your prompt, the more targeted and accurate your results will be.</p><p data-local-id=\"39a1b7b41750\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI uses your prompt to understand:</p><ul data-local-id=\"1a171e32-b570-4e9f-894d-f15842c35529\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"c67b89b5-0280-4bac-9677-6ceaf15a8cca\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e198298f9647d8ca29833ad7bcb8e2527\"><p data-local-id=\"1c134491cbf8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Which areas of the application matter for this release</p></li>\n<li data-local-id=\"6b259bcf-3710-46fd-834f-852324c68b7b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e252e744255c545101835a20aa0c052d6\"><p data-local-id=\"642fbb8ee485\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">What risk signals to look for, such as recent changes, known defects, or unstable features</p></li>\n<li data-local-id=\"04dc92a0-3751-4e28-89b0-a45add1ff149\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e8027e58c8470f726b9b00b8472f4f697\"><p data-local-id=\"bfec80961512\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Which types of tests should be prioritized or deprioritized</p></li>\n<li data-local-id=\"326a2340-8314-4569-9ad2-33c95371f8a5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eb1fea6d7a299b07b7f5b122ac18cb827\"><p data-local-id=\"756cc4a5004f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Whether any tests should be excluded entirely from the results</p></li>\n</ul><div style=\"background-color: #f3f4f6; border-left: 4px solid #6366f1; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Note:</strong> A vague or minimal prompt produces less targeted results. Without enough release\n  context, the AI relies more heavily on historical signals such as failure history\n  and native priority, which may miss the specific focus of your release entirely.\n</div><p data-local-id=\"352463d15162\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Strong prompt examples:</p><ul data-local-id=\"b8622f09-a3f3-4a6b-af55-e2f0a1847f61\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"cdce768a-7858-4758-b51e-f433c3a82204\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e0059220355da74ecea68741a0f7ec9de\"><p data-local-id=\"53bb38e46f37\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“We've made significant changes to the checkout and payment flows this sprint. Focus on tests covering price calculation, discount logic, and payment gateway integrations. Deprioritize mobile-only and negative-flow tests.”</p></li>\n<li data-local-id=\"f1188641-42c7-455a-801e-2706acb206eb\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e50cca19249f23c778d8f9b67d1a382f7\"><p data-local-id=\"01869a64df1b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“This is a hotfix release targeting a known login regression. Prioritize authentication, session management, and MFA flows. Everything unrelated to login can be deprioritized.”</p></li>\n<li data-local-id=\"3aec2e24-759f-4858-88a6-9b1111c58133\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e370c9c46b26b387f0bf34ade08783e5b\"><p data-local-id=\"fc794cd61d71\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“Black Friday regression. Focus on high-traffic flows: search, cart, checkout, and order confirmation. Prefer tests that have failed or had linked defects in the past 30 days.”</p></li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Tips for better prompts:</strong>\n\n  <ul style=\"margin: 8px 0 0 18px; padding: 0;\">\n    <li>Name the specific features, flows, or components changed in the release</li>\n    <li>Mention known instability, open defects, or recently modified areas</li>\n    <li>Explicitly mention tests or areas you want deprioritized</li>\n    <li>You can write prompts in any language supported by TestRail</li>\n  </ul>\n</div><h3 id=\"h_01KR3WE89ZCMVTP5ZPRZHZAW7G\"><strong>Make sure your Test Cases have meaningful content</strong></h3><p data-local-id=\"fc5e96050f06\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI reads the text content of your test cases — including titles, steps, expected results, BDD scenarios, and other description fields — and semantically matches that information against your prompt and labels to understand what each test actually covers.</p><div style=\"background-color: #fef2f2; border-left: 4px solid #ef4444; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Important:</strong>\n  <ul style=\"margin-top: 8px; margin-bottom: 0; padding-left: 20px;\">\n    If your test cases contain empty, minimal, or generic descriptions, the AI has less meaningful context to work with.\n  </ul>\n</div><p data-local-id=\"9a6da601f1cd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">For best results, ensure your test cases include:</p><ul data-local-id=\"ac9d83e9-2ff1-4414-a46f-8d08efd17291\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"4d298511-0b88-43e1-9d2d-6a475573bf82\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e196fc6bdf2175ef7e48b6252ba310af7\"><p data-local-id=\"f4d582928260\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Descriptive titles that clearly identify the feature or flow being tested</p></li>\n<li data-local-id=\"0f44814e-29a5-41d8-a464-1773751b8fcc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eb37c419b7c417196b7ff15c35c46e2f4\"><p data-local-id=\"9265b6b2b8ef\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Detailed steps or scenarios describing the actions being performed</p></li>\n<li data-local-id=\"bf637c9d-fbac-4cf5-be0c-8e0163350e51\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eea4bd3364469294f4e9391f657130cca\"><p data-local-id=\"62aef1c2b42e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Clear expected results explaining what successful behaviour looks like</p></li>\n</ul><p data-local-id=\"8e250f56e7bc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Only fields containing data on the selected tests are available in the field selector.</p><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nWhen running prioritization, choose the fields that contain the most useful functional information. These selected fields are what the AI uses to semantically compare your test cases against your release context and prioritization prompt.\n</div><h3 id=\"h_01KR3WJHYK6WN22EJ4MKCF83E1\"><strong>Use Labels consistently and meaningfully</strong></h3><p data-local-id=\"908d75df4805\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Labels are one of the strongest signals available to the prioritization AI. They help the AI quickly identify which tests belong to specific features, components, or testing categories.</p><p data-local-id=\"5ca6506bfdbd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI uses labels in two ways:</p><ul data-local-id=\"a8a96eba-d8b5-4e60-a93a-6522f8c475d6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"c6d8e426-a1b6-4274-87a7-05301a9522c0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e385b0e5a3b6409966b065c7331609a50\"><p data-local-id=\"016b3240d12d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Explicitly, when you select labels in the prioritization modal to increase the importance of matching tests</p></li>\n<li data-local-id=\"3c088200-c579-40f0-a8ac-d064338d01fa\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e71b38e7f01b7e9ff5d1ffe68c15c2c8c\"><p data-local-id=\"d8ef58947842\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Semantically, when labels align with terms used in your Additional Instructions prompt</p></li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>For best results</strong>\n  <ul style=\"margin: 8px 0 0 18px; padding: 0;\">\n    <li>\n      Apply labels consistently across related tests\n    </li>\n    <li>\n      Use labels that reflect real product areas or testing categories\n    </li>\n    <li>Keep labels up to date as tests evolve</li>\n    \n  </ul>\n</div><h3 id=\"h_01KR3WNRZE5AE79V2W1W4Z8HQ5\"><strong>Build and maintain execution history</strong></h3><p data-local-id=\"062f2729d1e3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When historical data is enabled, the AI analyses execution history to identify patterns that may indicate higher release risk, such as frequent failures, instability, or linked defects.</p><p data-local-id=\"bb8f5090c3b5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The richer your execution history, the stronger the AI signal becomes.</p><p data-local-id=\"659fa8940015\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">To improve historical analysis:</p><ul data-local-id=\"7259fed6-830a-438b-91de-6e59ea3b7d9e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"19d42cfd-f715-42f1-bff6-e531771f77f7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eccc8fed7ce2208f92327a595f0db8eec\"><p data-local-id=\"946e281b829f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Run tests regularly across multiple release cycles</p></li>\n<li data-local-id=\"3bffd3c7-67b7-4a27-a3e8-f3fdd9511394\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed2a60754372fd62ef0059b79cf7ee69d\"><p data-local-id=\"16140744781f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Record execution results directly in TestRail</p></li>\n<li data-local-id=\"90a8ccc7-fe31-4495-b775-f9f98ca176af\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e34853331030991f2640c912bffc332d1\"><p data-local-id=\"e42042803c76\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Select a look-back period that matches your release cadence</p></li>\n</ul><div style=\"background-color: #f3f4f6; border-left: 4px solid #6366f1; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Note:</strong> For new test suites with little historical data, the AI relies more heavily on your prompt and test case content.\n</div><h3 id=\"h_01KR3WP8WVH0WDZP0TPFCWG2XC\"><strong>Link defects to your Test Results</strong></h3><p data-local-id=\"07f4296d031b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Tests that have historically uncovered real defects provide valuable prioritization signals. The AI uses linked defect information to identify areas that may represent higher release risk.</p><p data-local-id=\"f47d693a9dca\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">For best results:</p><ul data-local-id=\"c59b2791-2f70-488d-96ec-5ba4ebd354ab\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"c6a566f0-b365-499b-b9d8-83e7325f3fd0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ea1ad7f9f1255716d7483156dbd062e94\"><p data-local-id=\"9d73adb04ac2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Link defects to failing test results whenever possible</p></li>\n<li data-local-id=\"b2716b35-a45e-4f91-9fd3-88f68c9dcf2c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1fcfb0ee652c1de06f359ff616974533\"><p data-local-id=\"524a16d1862c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Keep defect links accurate and current</p></li>\n</ul><p data-local-id=\"58b8776d74a9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Over time, consistent defect linkage improves the AI’s ability to identify high-risk tests more accurately.</p><h3 id=\"h_01KR3WQYB9RZS8EMQ163AX80FN\"><strong>Set Priority on your Test Cases</strong></h3><p data-local-id=\"56282cdbcf85\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Native test case priority in TestRail acts as an additional signal for the AI when evaluating relative importance.</p><p data-local-id=\"07055f2f1c7e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">For best results:</p><ul data-local-id=\"39a9d4c2-14a8-4f64-a690-be3b7563ce8b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"e67058bd-976f-4d35-b73a-75c21440dfe2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ec49a69c20eabd28f26850743f40ea4bd\"><p data-local-id=\"b2c4e9529f29\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Assign priorities that reflect actual business criticality</p></li>\n<li data-local-id=\"75a50226-7872-4e5b-b13d-773cfb3a3cfe\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e5f9ab964fb011f723aec08ee0d7a3e13\"><p data-local-id=\"0945c6af0942\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Review and maintain priorities as the application evolves</p></li>\n</ul><p data-local-id=\"ca4136f23607\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">If all tests remain at the same default priority level, this signal becomes less meaningful to the AI.</p><h3 id=\"h_01KR3WRV76Q81T52DED0136D97\"><strong>Choose the right scope for your Run</strong></h3><p data-local-id=\"aa98e1a722a7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">AI priorities are always relative to the tests included in the specific run being prioritized.</p><p data-local-id=\"36b0bf096862\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">To improve prioritization quality:</p><ul data-local-id=\"102ddc34-f5be-429e-ba0a-94f4ffb8a576\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"4f72fad4-c580-47b1-85d5-93fa9ea4e3e2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"eccd8531a189ded4c4af8bcaf96c05af5\"><p data-local-id=\"9adfe24c7a66\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Include a meaningful and relevant set of tests</p></li>\n<li data-local-id=\"1f13331a-fbfe-4c9e-8d24-1755afc8b488\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed84176751095c99d003defd6fae3f2cc\"><p data-local-id=\"0c8303759ccd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Avoid adding large volumes of unrelated tests to the run</p></li>\n<li data-local-id=\"87adb52a-de21-4030-9212-ae952878ef17\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ebf7c5fd308c31ccbb4a7e3b9221c4983\"><p data-local-id=\"83040f5b5ed5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Use the Selected tests option for targeted prioritization scenarios</p></li>\n</ul><p data-local-id=\"06e211d5397f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A “Very High” AI Priority in one run does not necessarily mean the same test would receive the same priority in a different run. Priorities are relative to the specific set of tests included in the run.</p><h3 id=\"h_01KR3WSD68C3MSXDFBHP509XK7\"><strong>Keep your Test Suite healthy</strong></h3><p data-local-id=\"f008f54de016\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The AI prioritizes based on the data it receives. Outdated or poorly maintained test cases introduce noise that can reduce prioritization quality.</p><p data-local-id=\"89df88fc642f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Recommended practices include:</p><ul data-local-id=\"b67268be-f1f4-4ca2-b833-89d3882ec5a5\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"83007300-209b-4bfa-b104-bad598184242\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e3e1236c7971ade9037440b329f1c52c4\"><p data-local-id=\"ef6cdf2bd8a0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Archive or remove obsolete test cases</p></li>\n<li data-local-id=\"911b50b5-1048-4b5c-b9f6-ec6e301d6c5f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e1aa57e87d4196db082af96c4494d7b9f\"><p data-local-id=\"d811f3f8f53f\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Keep titles, steps, and expected results current</p></li>\n<li data-local-id=\"e7700dfa-7284-4910-be6e-6846a0ab1ea6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e601d91728b9b68d573c291d1ae3517fc\"><p data-local-id=\"c21bb83b6587\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Apply labels and priorities consistently</p></li>\n<li data-local-id=\"7117faf6-fd31-4840-b108-6fca35fa3e50\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ebda7b0c96af911421dcfb17575a3c394\"><p data-local-id=\"e774040f3cba\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Review stale or rarely executed tests regularly</p></li>\n</ul><div style=\"background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; margin: 24px 0;\">\n  <h2 style=\"margin-top: 0;\" id=\"h_01KR3X57DPYDJPFMWDAZHAXHZ6\">Learn Prioritize with AI in TestRail Academy</h2>\n\n  <p>\n    Discover how to use AI-powered test prioritization to focus on high-risk areas, improve release confidence, and make smarter testing decisions.\n  </p>\n\n  <ul>\n    <li>Configure prioritization settings</li>\n    <li>Write effective AI prompts</li>\n    <li>Understand AI Priority and AI Reason results</li>\n    <li>Apply AI within risk-based testing workflows</li>\n  </ul>\n\n  <p style=\"margin-top: 16px;\">\n    <a href=\"#\" style=\"display: inline-block; background: #2563eb; color: #ffffff; text-decoration: none; padding: 10px 16px; border-radius: 6px; font-weight: 600;\">\n      Go to TestRail Academy\n    </a>\n  </p>\n\n  <hr style=\"margin: 20px 0; border: none; border-top: 1px solid #e5e7eb;\">\n\n  <p style=\"margin-bottom: 8px;\">\n    <strong>Additional resources</strong>\n  </p>\n\n  <ul style=\"margin: 0; padding-left: 18px;\">\n    <li>\n      <a href=\"https://gurock.zendesk.com/knowledge/articles/41088265893652/en-us?brand_id=360004939152\" target=\"_blank\" rel=\"noopener noreferrer\">\n        Responsible AI Use in TestRail\n      </a>\n    </li>\n    <li>\n      <a href=\"https://www.sembi.com/legal/Gurock/#tab2\" target=\"_blank\" rel=\"noopener noreferrer\">\n        AI Legal and Compliance Documentation\n      </a>\n    </li>\n  </ul>\n</div>","user_segment_ids":[]},{"id":46556681633172,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46556681633172.json","html_url":"https://support.testrail.com/hc/en-us/articles/46556681633172-Getting-started-with-Prioritize-tests-with-AI","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":46556666909460,"created_at":"2026-02-23T11:12:47Z","updated_at":"2026-06-17T14:15:09Z","name":"Getting started with Prioritize tests with AI","title":"Getting started with Prioritize tests with AI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-17T14:15:08Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p data-start=\"41\" data-end=\"337\">QA teams often face the same challenge before every release: there are more tests available than time to execute them all. As applications grow, releases accelerate, and regression suites expand, it becomes increasingly difficult to identify which tests are most critical for the current release.</p><p data-start=\"339\" data-end=\"609\"><strong data-start=\"339\" data-end=\"361\">Prioritize with AI</strong> helps solve this problem by intelligently ranking tests in a test run based on likely risk, relevance, and importance. Instead of treating every test equally, the AI helps your team focus first on the tests most likely to uncover critical defects.</p><p data-start=\"611\" data-end=\"759\">Using historical execution data, linked defects, labels, and your own release-specific instructions, the feature automatically assigns each test an:</p><ul data-start=\"761\" data-end=\"900\">\n<li data-section-id=\"12rk1x4\" data-start=\"761\" data-end=\"814\" data-list-item-id=\"ed2fa0eba16e9618ca91707722d62acbe\">\n<strong data-start=\"763\" data-end=\"778\">AI Priority - </strong>Very High, High, Medium, or Low</li>\n<li data-section-id=\"11xlvjn\" data-start=\"816\" data-end=\"900\" data-list-item-id=\"e71ff3ed44b606c6acebe8610b99b336c\">\n<strong data-start=\"818\" data-end=\"831\">AI Reason - </strong>A clear explanation describing why the test received its ranking</li>\n</ul><p data-start=\"902\" data-end=\"926\">This allows QA teams to:</p><ul data-start=\"928\" data-end=\"1225\">\n<li data-section-id=\"17iwxk3\" data-start=\"928\" data-end=\"972\" data-list-item-id=\"ee88d2972a70d3c453c95100058efff35\">Focus testing effort where it matters most</li>\n<li data-section-id=\"1bv7z6y\" data-start=\"973\" data-end=\"1025\" data-list-item-id=\"efbecc286242b909457e2b29cb0704925\">Reduce release risk during time-constrained cycles</li>\n<li data-section-id=\"rb1lq6\" data-start=\"1026\" data-end=\"1057\" data-list-item-id=\"e2fa1c0272f152c6f0419199216fd7872\">Accelerate regression testing</li>\n<li data-section-id=\"s9k91k\" data-start=\"1058\" data-end=\"1099\" data-list-item-id=\"ed5f9a0041739d9a751ddbec5213a010e\">Improve confidence in release readiness</li>\n<li data-section-id=\"1fump1s\" data-start=\"1100\" data-end=\"1152\" data-list-item-id=\"e33da0662efd93cd3f9930f8fb2fd0e67\">Prioritize newly changed or high-risk areas faster</li>\n<li data-section-id=\"16ugq13\" data-start=\"1153\" data-end=\"1225\" data-list-item-id=\"e9250ef2c26ed268d577e5df34897117f\">Make smarter testing decisions using historical trends and AI insights</li>\n</ul><p data-start=\"1227\" data-end=\"1273\">Prioritize with AI is especially valuable for:</p><ul data-start=\"1275\" data-end=\"1458\">\n<li data-section-id=\"t88b1z\" data-start=\"1275\" data-end=\"1300\" data-list-item-id=\"eee11af6b4528e2e10bf76d4b932ff7c2\">Large regression suites</li>\n<li data-section-id=\"1ypceex\" data-start=\"1301\" data-end=\"1326\" data-list-item-id=\"edfebd90281610c4b2ebef52c6e643fb3\">Fast-moving Agile teams</li>\n<li data-section-id=\"amse8c\" data-start=\"1327\" data-end=\"1350\" data-list-item-id=\"e243fe238f57bd848f6eba336c718f2bb\">Short release windows</li>\n<li data-section-id=\"1cj76xo\" data-start=\"1351\" data-end=\"1382\" data-list-item-id=\"ec63fe028b2b1f99016ccfb2c22d414ef\">Risk-based testing strategies</li>\n<li data-section-id=\"a649zm\" data-start=\"1383\" data-end=\"1420\" data-list-item-id=\"efa0bb4dd7054e1b2f434770a3472224e\">Teams with limited testing capacity</li>\n<li data-section-id=\"jf39cw\" data-start=\"1421\" data-end=\"1458\" data-list-item-id=\"ece2839b05786c305fa028f6ad1b37e73\">High-frequency release environments</li>\n</ul><div style=\"background-color: #f3f4f6; border-left: 4px solid #6366f1; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Note:</strong> Prioritize with AI is available for <strong>TestRail Cloud only </strong>\n  and is enabled by default. If you cannot see the feature, contact your TestRail\n  administrator.\n</div><h3 id=\"h_01KR1349PNPNBA4NC4664DZMS4\"><strong>Before you begin</strong></h3><p data-local-id=\"14afe88eb263\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Prioritize with AI is <strong>enabled by default for TestRail Cloud instances</strong>. To use the feature, the following conditions must be met:</p><ul data-local-id=\"a8ef8524-8336-4ba0-b36c-974b89dbb6cd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"e5e4a7d5-e483-4a2f-828d-251e6b212fe6\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e199f5c04096224645bc7a5d6676ad83d\"><p data-local-id=\"fcda64d2495e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Prioritize with AI remains enabled at the instance level <em data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"em\">(AI Hub → AI Settings)</em></p></li>\n<li data-local-id=\"55533f2e-2116-4a32-9636-644f40ce982c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e3270c64c60ca8b118721fa5c01a402e0\"><p data-local-id=\"a888bd602d14\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Prioritize with AI remains enabled for your project (<em data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"em\">Project Settings)</em></p></li>\n<li data-local-id=\"64c1910f-22f5-4b27-bb0c-06f961a76aeb\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e65a2e000a55d38da3024b8998ac7c107\"><p data-local-id=\"401ddf209871\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Your user role or project access role includes permission to use Prioritize with AI</p></li>\n<li data-local-id=\"9f243896-fdc6-440e-9ee4-729a6546cff7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e11e288959de2e598107dac632030d4b4\"><p data-local-id=\"0bff20a29ebc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The test run is currently open (<em data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"em\">not archived or closed)</em></p></li>\n</ul><div style=\"background-color: #f3f4f6; border-left: 4px solid #6366f1; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n<strong>Insufficient permissions?</strong>\nIf the Prioritize with AI button is visible but disabled, hover over it to view the reason. \n</div><h3 id=\"h_01KR139XXNN71EY1RK9AW04FSK\"><strong>Step 1: Open a Test Run</strong></h3><p data-local-id=\"42755bb56c57\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Navigate to the open test run you want to prioritize. In the test run toolbar, click <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Prioritize (BETA). </strong>Choose one of the available options:</p><ul>\n<li data-list-item-id=\"e2ff3849db3fbb2f2070c609713f07b37\">All tests - Prioritizes every test in the run. This option becomes unavailable if the number of tests exceeds the maximum allowed.</li>\n<li data-list-item-id=\"e3441de486cd21d58cb291e6c9fcbea6c\">Selected tests - Prioritizes only the tests you manually selected. This option becomes unavailable if your selection falls outside the allowed minimum or maximum range.</li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Tip:</strong> You can also access Prioritize with AI directly from the QPane preview when viewing a test on the right-hand side of the run.\n</div><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2934/1528;\" src=\"https://support.testrail.com/hc/article_attachments/49003911778068\" alt=\"Screenshot 2026-05-07 at 12.34.06.png\" width=\"2934\" height=\"1528\"></figure><h3 id=\"h_01KR13S4VY55QP7H22RQ3E9GEJ\"><strong>Step 2: Configure Prioritization</strong></h3><p data-start=\"0\" data-end=\"196\">The prioritization modal allows you to control the information the AI uses when analysing your tests, helping the AI make more accurate and context-aware prioritization decisions for your release.</p><h4 id=\"h_01KR140K254M5MBBMGDQZAEHZX\"><strong>Use Historical Data</strong></h4><p data-start=\"222\" data-end=\"366\">When <strong data-start=\"227\" data-end=\"250\">Historical Data</strong> is enabled, the AI analyses historical testing activity related to the test cases included in the current test run.</p><p data-start=\"368\" data-end=\"385\">This may include:</p><ul data-start=\"387\" data-end=\"509\">\n<li data-section-id=\"lhdnkl\" data-start=\"387\" data-end=\"410\" data-list-item-id=\"e1ffc7697672b777c630f6df877aa71f0\">Previous test results</li>\n<li data-section-id=\"1hmrp6v\" data-start=\"411\" data-end=\"432\" data-list-item-id=\"e8a0c7411cb0fe7028b1f565291895fc3\">Historical failures</li>\n<li data-section-id=\"1i3jzlb\" data-start=\"433\" data-end=\"449\" data-list-item-id=\"e3975071c072b0860d0351fa0543afd92\">Linked defects</li>\n<li data-section-id=\"fk5zz5\" data-start=\"450\" data-end=\"470\" data-list-item-id=\"ed8395f5c9486afcbbb1f3bbb29ff853e\">Execution patterns</li>\n<li data-section-id=\"1bxw7qy\" data-start=\"471\" data-end=\"509\" data-list-item-id=\"ec3841f43b96c266682768b54225e654b\">Frequently failing or unstable areas</li>\n</ul><p data-start=\"511\" data-end=\"619\">You can choose how much historical execution data the AI should consider by selecting a look-back period of: 7, 30 and 60 days.</p><p data-start=\"651\" data-end=\"699\">The AI uses this information to better identify:</p><ul data-start=\"701\" data-end=\"902\">\n<li data-section-id=\"8tjtz7\" data-start=\"701\" data-end=\"726\" data-list-item-id=\"e7d13180e599f9b1666009552a94b36a5\">High-risk functionality</li>\n<li data-section-id=\"ela8zx\" data-start=\"727\" data-end=\"769\" data-list-item-id=\"ed44e5a079fe165ebe764250e343e4cff\">Tests associated with recurring failures</li>\n<li data-section-id=\"1bdncjr\" data-start=\"770\" data-end=\"801\" data-list-item-id=\"e7d6775f1f8ed55f5aee655039548a363\">Areas with recent instability</li>\n<li data-section-id=\"324bhe\" data-start=\"802\" data-end=\"833\" data-list-item-id=\"e9bdef4470b77345642f9779080ca01d0\">Tests linked to known defects</li>\n<li data-section-id=\"13xbbot\" data-start=\"834\" data-end=\"902\" data-list-item-id=\"e97a614d69cf8179f456da3d5fd937ccc\">Functionality that may require additional attention before release</li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  Including historical data helps the AI make smarter prioritization decisions by combining your current release context with real testing trends from previous executions.\n</div><section dir=\"auto\" data-turn-id=\"request-WEB:6618af28-3bd6-468d-9472-00307c20d133-8\" data-testid=\"conversation-turn-16\" data-scroll-anchor=\"false\" data-turn=\"assistant\"><div><div><div><div dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"f2f9dd43-9412-4243-a55d-17fbb0e2bc4c\" data-message-model-slug=\"gpt-5-5\" data-turn-start-message=\"true\"><div><div>\n<p data-start=\"32\" data-end=\"200\">You can turn off <strong data-start=\"49\" data-end=\"72\">Use Historical Data</strong> if you want the AI to prioritize tests based only on your current release context, instructions, and selected test case fields. When historical data is not included, it becomes especially important to provide:</p>\n<ul data-start=\"285\" data-end=\"465\">\n<li data-section-id=\"znx4fs\" data-start=\"285\" data-end=\"333\" data-list-item-id=\"ee85c9523af1af0731636580f4449d3c1\">Clear and detailed <strong data-start=\"306\" data-end=\"333\">Additional Instructions</strong>\n</li>\n<li data-section-id=\"1y8jl48\" data-start=\"334\" data-end=\"465\" data-list-item-id=\"e33e1ad01f0c2a84ba82e41183913f76e\">Relevant <strong data-start=\"345\" data-end=\"365\">test case fields</strong> that give the AI enough semantic context to understand the purpose, risk, and coverage of each test</li>\n</ul>\n<p data-start=\"467\" data-end=\"513\">For best results, include information such as:</p>\n<ul data-start=\"515\" data-end=\"696\">\n<li data-section-id=\"1vfjh1i\" data-start=\"515\" data-end=\"551\" data-list-item-id=\"e353def9c966ca9b81bcf392c3e165efc\">High-risk areas of the application</li>\n<li data-section-id=\"ho78zj\" data-start=\"552\" data-end=\"584\" data-list-item-id=\"e66ff19a843d3706f89f400a5f4b31052\">Recently changed functionality</li>\n<li data-section-id=\"195rz3l\" data-start=\"585\" data-end=\"621\" data-list-item-id=\"eadbc6ee765ebfbe6a617952a59017180\">Known defects or unstable features</li>\n<li data-section-id=\"9k4r51\" data-start=\"622\" data-end=\"651\" data-list-item-id=\"eac8a9681569471cf80ec95010ac2a675\">Critical business workflows</li>\n<li data-section-id=\"vutvd2\" data-start=\"652\" data-end=\"696\" data-list-item-id=\"e73216ab2c2e64ecf83e96bea31646f07\">Areas requiring deeper regression coverage</li>\n</ul>\n<div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nSelecting meaningful fields such as Title, Steps, and Expected Result also helps the AI better understand each test and make more accurate prioritization decisions.\n</div>\n</div></div></div></div></div></div></section><h4 id=\"h_01KR146PC0S3XBNPBNZ304T7FW\"><strong>Labels (Optional)</strong></h4><p data-local-id=\"8a07690f7e2d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Use labels to tell the AI which areas, features, or types of tests are most important for the current release.</p><p data-local-id=\"99ad4a9ea783\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Examples include:</p><ul data-local-id=\"f8bff2a6-9546-4251-9847-38199dcdd400\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"5f400a53-3764-4e6f-8e3f-c0037a4660c8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e72eeb3f15aecb5961e08f940d5df67b4\"><p data-local-id=\"238f51644d20\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Smoke</p></li>\n<li data-local-id=\"c51b67f3-4139-4026-b73f-432d9aac5941\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"edfb8863393a929fa079080ba1861dd2a\"><p data-local-id=\"d28ff30a254d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Checkout</p></li>\n<li data-local-id=\"a0ef0ee1-8651-482a-8263-44f6e172d6b4\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed6075156b3aca28b10b7a548efa5562f\"><p data-local-id=\"32f5aebccab7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Payments</p></li>\n<li data-local-id=\"f7a531b2-90e7-4bc6-b941-12d29181ae8e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e85d7c7dfe3b947851fc078f3221da6a0\"><p data-local-id=\"21ffe68b03c7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Security</p></li>\n<li data-local-id=\"f635610b-ac1c-4a1a-99bb-43b1021a425d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e9e6a161fb8ecc14f1a813550a5b7f038\"><p data-local-id=\"7ee4290384dd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Critical Path</p></li>\n</ul><p data-local-id=\"68a2295b314b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">You can select up to <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">6 test case and test labels</strong> using the type-ahead search.</p><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nTests associated with the selected labels are more likely to receive a higher AI Priority, helping the AI focus on the areas you consider most important or highest risk.\n</div><h4 id=\"h_01KR14C69EJP1AT405Y6Z3S80W\"><strong>Additional Instructions (Required)</strong></h4><p data-local-id=\"6f04efea5c2c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Provide instructions describing what the AI should focus on for the current release. Examples:</p><ul data-local-id=\"6613b810-4054-4f35-b27c-b00d88f7e1fc\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"700e8acd-e966-4c74-8d2e-9dbc6f77be21\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e02d43c4d08dcc5c6abbbcbb0d510eb6f\"><p data-local-id=\"6d95cee3d619\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Areas with recent code changes</p></li>\n<li data-local-id=\"83acc6ee-7c73-4c84-9114-75c556861ff7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e7e34dcc4148527fa081a08941c440eb7\"><p data-local-id=\"7e860efb6c3b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">High-risk workflows</p></li>\n<li data-local-id=\"dacb9f93-ea57-4144-aa77-b05e69237ba7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e67d65e6e5300c46e325cc864d8bce69f\"><p data-local-id=\"d19849a87b3a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Known instability</p></li>\n<li data-local-id=\"2c7c4f13-c8b9-4a1e-8b35-b589d868221d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e94df1581028f2d86f0a96b8d79f37662\"><p data-local-id=\"91ec23b42ab8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Recently reported defects</p></li>\n<li data-local-id=\"f953f836-be78-47e7-823e-0e5f88e8d0db\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e38dc57f328f1b64791665943beb06b2c\"><p data-local-id=\"826dbb98f63a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Business-critical functionality</p></li>\n</ul><p>Example prompts:</p><ul data-local-id=\"0c424b7c-2218-4448-8684-b63818a38aa2\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"ed672fad-63ac-4d9a-92ba-b6b6fe77b82b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"edaf6dc2c987f90e22392f4c4581fcaa6\"><p data-local-id=\"7c793d77ecc1\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“Focus on checkout, payment processing, and recently modified authentication workflows.”</p></li>\n<li data-local-id=\"e408efa3-5a92-40c2-8c40-20429d400a6d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e926af9994e17e78b9dfbdaf1ed898e7e\"><p data-local-id=\"44987a42b267\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“Prioritize tests related to mobile responsiveness and known login issues.”</p></li>\n<li data-local-id=\"55ffd863-c626-474b-b75e-bdc073c1c24a\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e9fa9c875768ebd75c8c3ae52e6906de3\"><p data-local-id=\"47c3df8067ad\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">“This release contains major API changes. Focus on integration and regression risk.”</p></li>\n</ul><div style=\"background-color: #fef2f2; border-left: 4px solid #ef4444; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Important:</strong>\n  <ul style=\"margin-top: 8px; margin-bottom: 0; padding-left: 20px;\">\n    <li>\n      <strong>Additional Instructions</strong> are required before prioritization\n      can run.\n    </li>\n    <li>\n      Well-written prompts help the AI better understand your release context,\n      risk areas, and testing priorities, resulting in more accurate prioritization.\n    </li>\n    <li>\n      You can write prompts in any language supported by TestRail.\n    </li>\n    <li>\n      URLs are accepted in prompts, but their contents are not scraped or analysed\n      by the AI.\n    </li>\n  </ul>\n</div><h4 id=\"h_01KR3SFK52CKKXBTAX8D1SMEBA\"><strong>Test Fields</strong></h4><p data-start=\"16\" data-end=\"90\">After you begin entering instructions, a <strong data-start=\"57\" data-end=\"72\">Test Fields</strong> selector appears. Choose up to <strong data-start=\"105\" data-end=\"117\">6 fields</strong> for the AI to analyse when evaluating each test.</p><div style=\"background-color: #f3f4f6; border-left: 4px solid #6366f1; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nThe content from these fields is used by the AI to semantically match your tests against the context, priorities, and risk areas described in your Additional Instructions prompt. Selecting relevant fields helps the AI better understand what each test covers and how closely it relates to your release priorities.\n</div><p data-start=\"486\" data-end=\"510\">Common examples include: Title, Steps, Expected Result, Descriptions, etc. Only fields available on the selected tests appear in the selector. The following case field types are supported:</p><ul data-start=\"597\" data-end=\"638\">\n<li data-section-id=\"1j4cumt\" data-start=\"597\" data-end=\"603\" data-list-item-id=\"e28c5dc07ca01795ab989359ecfdc90e8\">Text</li>\n<li data-section-id=\"178hoix\" data-start=\"604\" data-end=\"611\" data-list-item-id=\"e326d7df463e607cf2eedde2f0e5dc187\">Steps</li>\n<li data-section-id=\"1dbq8w6\" data-start=\"612\" data-end=\"622\" data-list-item-id=\"e12a5c6712242c8267e69283067d0c78b\">Scenario</li>\n<li data-section-id=\"i8mcgc\" data-start=\"623\" data-end=\"638\" data-list-item-id=\"e3ef3766158bb31ee5522d37e0e387e7c\">String</li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nFor best results, select fields that contain meaningful functional or behavioural context about the test cases.\n</div><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2840/1508;\" src=\"https://support.testrail.com/hc/article_attachments/49044535184788\" alt=\"Screenshot 2026-05-07 at 13.02.34.png\" width=\"2840\" height=\"1508\"></figure><h3 id=\"h_01KR3SRMDTBZZ7CVE64PNA9737\"><strong>Step 3: Run Prioritization</strong></h3><div style=\"margin: 24px 0; padding: 16px 20px; border: 1px solid #dfe1e6; border-radius: 12px; background: #f7faff;\">\n  <div style=\"font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #0052cc; margin-bottom: 6px;\">\n    Prioritize with AI\n  </div>\n\n  <div style=\"font-size: 20px; font-weight: 700; line-height: 1.3; color: #172b4d; margin-bottom: 8px;\">\n    Get better AI prioritization results\n  </div>\n\n  <div style=\"font-size: 14px; line-height: 1.6; color: #42526e; margin-bottom: 14px;\">\n    Improve AI recommendations by keeping your test history, priorities, bugs, and test metadata up to date. Learn best practices to help the AI identify risk and prioritize the most valuable tests.\n  </div>\n\n  <a href=\"https://support.testrail.com/hc/en-us/articles/46609041281812\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 10px 14px; background: #0052cc; color: #ffffff; text-decoration: none; border-radius: 8px; font-size: 14px; font-weight: 600;\">\n    Learn how to get the best results →\n  </a>\n</div><p data-start=\"32\" data-end=\"189\">Once all required fields are complete, you can start prioritization and TestRail will begin analysing your tests using AI to generate prioritization results.</p><p data-start=\"617\" data-end=\"864\" data-is-last-node=\"\" data-is-only-node=\"\">Only one prioritization process can run per test run at any given time. If another user has already started prioritization for the same run, you will see a notification and must wait until processing completes before starting a new prioritization.</p><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nYou do not need to remain on the prioritization screen while processing is running. After the prioritization request has started, you can close the modal, navigate to other areas of TestRail, and continue working elsewhere in the application while prioritization continues in the background. Once processing is complete, the next time you open the test run, the AI Priority results and AI Reasons will automatically appear.\n</div><h3 id=\"h_01KR3T8W8ANA96ZWCF2YGE5Q8V\"><strong>Step 4: Review and work with the Results</strong></h3><p data-local-id=\"96a73d73c7d8\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Once prioritization is complete, open the test run to review the generated AI Priority results and AI Reasons applied to your selected tests. Each prioritized test receives one of the following AI Priority values:</p><ul data-local-id=\"39ace71f-9110-42e8-803a-c8273f77c43c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"bulletList\" data-prosemirror-node-block=\"true\">\n<li data-local-id=\"3f9368a2-b403-466f-80ef-8d1aebf54ab3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e8b6ed8d201fef3a6885ea0c93dcf540f\"><p data-local-id=\"ef1baa1d25f7\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Very High</p></li>\n<li data-local-id=\"08946ebf-42a1-4023-8a76-1e3af94a3353\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"ed29a159ccb68d1594b6d4153eb090349\"><p data-local-id=\"d74cc02379bd\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">High</p></li>\n<li data-local-id=\"b74e3f91-4a96-46a8-954f-97ebfe4c232e\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e8c860de86554f09c531ab82e4b918528\"><p data-local-id=\"560fc5822a0c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Medium</p></li>\n<li data-local-id=\"b12bea8b-14c0-4fa3-bf8f-c519fb9a806b\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e6561a60ce249360569180c8943b61b1f\"><p data-local-id=\"8baa0e47b9aa\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Low</p></li>\n<li data-local-id=\"0524880c-ff45-42ed-92f5-700a58a7ad88\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"listItem\" data-prosemirror-node-block=\"true\" data-list-item-id=\"e8420447a2f96701f25b9325bc2dc8bc1\"><p data-local-id=\"481832c2a083\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Unprioritized <em data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"em\">(tests not included in the current prioritization run)</em></p></li>\n</ul><p data-local-id=\"7a5bc7a1cc34\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Tests are automatically grouped and sorted by priority level, with the highest priority displayed first, making it easier to focus on the areas considered highest risk or most important for the release.</p><p data-local-id=\"0840408e914c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">The <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Reason</strong> column explains why a test received its assigned priority. If the AI Reason column is hidden, you can still view the explanation by hovering over the AI Priority value.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2400/1336;\" src=\"https://support.testrail.com/hc/article_attachments/49045088665364\" alt=\"Screenshot 2026-05-08 at 13.54.28.png\" width=\"2400\" height=\"1336\"></figure><p data-local-id=\"df7c7c9a27d0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">A summary banner appears at the top of the test run showing when prioritization was last run, who ran it, and under what conditions. This helps teams maintain visibility and transparency into how prioritization decisions were generated, making it easier to review testing strategy, understand AI context, and align on release risk across the team.</p><p data-local-id=\"dbc5827ca5e0\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">You can also manually override any AI-assigned priority by clicking the value in the AI Priority column and selecting a different priority level. The test immediately moves into the corresponding priority group. Hovering over the updated value displays the original AI-assigned priority for reference.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2430/682;\" src=\"https://support.testrail.com/hc/article_attachments/49045088665876\" alt=\"Screenshot 2026-05-08 at 13.55.13.png\" width=\"2430\" height=\"682\"></figure><div style=\"background-color: #fef2f2; border-left: 4px solid #ef4444; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\n  <strong>Important:</strong>\n  <ul style=\"margin-top: 8px; margin-bottom: 0; padding-left: 20px;\">\nWhile AI can help surface likely high-risk areas and accelerate decision-making, human validation remains critical. QA teams should review AI-generated priorities and apply their own product knowledge, release context, and testing expertise when deciding what to execute.\n  </ul>\n</div><div style=\"margin: 24px 0; padding: 16px 20px; border: 1px solid #dfe1e6; border-radius: 12px; background: #f7faff;\">\n  <div style=\"font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #0052cc; margin-bottom: 6px;\">\n    Prioritize with AI\n  </div>\n\n  <div style=\"font-size: 20px; font-weight: 700; line-height: 1.3; color: #172b4d; margin-bottom: 8px;\">\n    Understand AI Reasons and prioritization decisions\n  </div>\n\n  <div style=\"font-size: 14px; line-height: 1.6; color: #42526e; margin-bottom: 14px;\">\n    Learn how to interpret AI generated reasons, understand why tests were prioritized or excluded, and gain better visibility into the signals influencing AI recommendations.\n  </div>\n\n  <a href=\"https://support.testrail.com/hc/en-us/articles/49138068019604\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 10px 14px; background: #0052cc; color: #ffffff; text-decoration: none; border-radius: 8px; font-size: 14px; font-weight: 600;\">\n    Read the AI Reasons guide →\n  </a>\n</div><h3 id=\"h_01KR3TRKQK6RYYHJSATC736P52\"><strong>Managing Access to Prioritize with AI</strong></h3><p data-local-id=\"6f6a8a6e280c\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Prioritize with AI is enabled by default for all TestRail Cloud instances. User roles with the relevant permissions can control feature availability at the instance, project, and user role level to match their organisation’s governance and testing workflows.</p><ul>\n<li data-list-item-id=\"e529c2f8e88632df818300712b1ecaab5\"><p data-local-id=\"6134a265ed3d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">To enable or disable the feature across the entire instance, navigate to: <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">AI Hub → AI Settings</strong></p></li>\n<li data-list-item-id=\"e1cdabd6f045829c07475d4296f0a5dd1\"><p data-local-id=\"6134a265ed3d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">To manage availability for a specific project, navigate to: <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Project Settings → Edit Project</strong></p></li>\n<li data-list-item-id=\"e541813809b8f4dc2d24d25db5ceaff4a\"><p data-local-id=\"6134a265ed3d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">To control which users can access the feature, navigate to: <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Administration → Users &amp; Roles → Roles</strong></p></li>\n<li data-list-item-id=\"e9b9183764f752299443b78f9a69aaef1\"><p data-local-id=\"6134a265ed3d\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">You can also manage access using <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">project access roles</strong>, which override a user’s global role within a specific project.</p></li>\n</ul><div style=\"background-color: #f0fdf4; border-left: 4px solid #22c55e; padding: 12px 16px; margin: 16px 0; border-radius: 4px;\">\nBy default, only roles with Add/Edit permissions for Runs &amp; Plans have access enabled. This allows administrators to ensure that only authorised users can run AI prioritization within test runs.\n</div><h3 id=\"h_01KR3V2BV40FPAYG3WDXZF2VN0\"><strong>Audit Logs</strong></h3><p data-local-id=\"e323ed246fa9\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">Audit logging for Prioritize with AI is available for customers on the <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Enterprise</strong> license with auditing enabled on their TestRail instance.</p><p data-local-id=\"59e14403c683\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">When enabled, TestRail records key Prioritize with AI activities under: <strong data-prosemirror-content-type=\"mark\" data-prosemirror-mark-name=\"strong\">Site Settings → Auditing Logs</strong></p><p data-local-id=\"7a2cc5461cf3\" data-prosemirror-content-type=\"node\" data-prosemirror-node-name=\"paragraph\" data-prosemirror-node-block=\"true\">These audit logs help organisations maintain visibility, governance, and traceability over AI-related activity within TestRail.</p><div style=\"background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; margin: 24px 0;\">\n  <h2 style=\"margin-top: 0;\" id=\"h_01KR3X4WQ1FKQZXW4XVH4XGVCC\">Learn Prioritize with AI in TestRail Academy</h2>\n\n  <p>\n    Discover how to use AI-powered test prioritization to focus on high-risk areas, improve release confidence, and make smarter testing decisions.\n  </p>\n\n  <ul>\n    <li>Configure prioritization settings</li>\n    <li>Write effective AI prompts</li>\n    <li>Understand AI Priority and AI Reason results</li>\n    <li>Apply AI within risk-based testing workflows</li>\n  </ul>\n\n  <p style=\"margin-top: 16px;\">\n    <a href=\"#\" style=\"display: inline-block; background: #2563eb; color: #ffffff; text-decoration: none; padding: 10px 16px; border-radius: 6px; font-weight: 600;\">\n      Go to TestRail Academy\n    </a>\n  </p>\n\n  <hr style=\"margin: 20px 0; border: none; border-top: 1px solid #e5e7eb;\">\n\n  <p style=\"margin-bottom: 8px;\">\n    <strong>Additional resources</strong>\n  </p>\n\n  <ul style=\"margin: 0; padding-left: 18px;\">\n    <li>\n      <a href=\"https://gurock.zendesk.com/knowledge/articles/41088265893652/en-us?brand_id=360004939152\" target=\"_blank\" rel=\"noopener noreferrer\">\n        Responsible AI Use in TestRail\n      </a>\n    </li>\n    <li>\n      <a href=\"https://www.sembi.com/legal/Gurock/#tab2\" target=\"_blank\" rel=\"noopener noreferrer\">\n        AI Legal and Compliance Documentation\n      </a>\n    </li>\n  </ul>\n</div>","user_segment_ids":[]},{"id":46410927637908,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46410927637908.json","html_url":"https://support.testrail.com/hc/en-us/articles/46410927637908-Preparing-your-Windows-server-for-the-installation-versions-10-0-1-onwards","author_id":12818215810836,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":43424218801556,"created_at":"2026-02-18T12:26:37Z","updated_at":"2026-06-09T20:08:56Z","name":"Preparing your Windows server for the installation - versions 10.0.1 onwards","title":"Preparing your Windows server for the installation - versions 10.0.1 onwards","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-09T20:08:56Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>\n  <span style=\"font-size: 15px;\">TestRail 10.4.1 is available for all Server customers. Customers who wish to upgrade to TestRail 10.4.1 can </span><a style=\"background-color: #ffffff; font-size: 15px;\" href=\"https://secure.testrail.com/portal\">download the installation files from the TestRail Billing Portal</a><span style=\"font-size: 15px;\">.</span>\n</p>\n<p>\n  The instructions below will help you understand how to install TestRail\n  on\n  a\n  Windows Server system.\n  <strong data-start=\"2434\" data-end=\"2465\">These instructions apply to all TestRail Server releases\n  from 9.4.1 through 10.4.1.</strong> You\n  can learn more about the <a href=\"https://support.testrail.com/hc/en-us/articles/39189060476180-Installation-requirements-9-3-1-version\" target=\"_blank\" rel=\"noopener noreferrer\">supported operating and server systems here.</a>\n</p>\n<div class=\"lt-article__body\">\n  <div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n    <p>\n      <strong>ℹ️ Important Note:</strong>\n    </p>\n    <p>\n      Starting with TestRail 9.5.1 Server, <strong data-start=\"2152\" data-end=\"2182\">Cassandra is officially deprecated and enforcement is in place.</strong>\n    </p>\n    <ul>\n      <li>\n        <p data-start=\"2189\" data-end=\"2228\">\n          Admins must first run the <strong data-start=\"2434\" data-end=\"2465\">Cassandra deprecation script</strong> in <strong data-start=\"2434\" data-end=\"2465\">version 9.4.1</strong> before\n          upgrading to more recent versions.\n        </p>\n      </li>\n      <li>\n        <p data-start=\"2189\" data-end=\"2228\">\n          If the script has not been executed, the upgrade to  more\n          recent\n          versions\n          will\n          be blocked and a <strong data-start=\"2152\" data-end=\"2182\">warning message will be displayed</strong> \n          during the upgrade process.\n        </p>\n        <p>\n          <strong>👉 </strong>Please check our\n          <a href=\"https://support.testrail.com/hc/en-us/sections/39794668286484-Cassandra-Deprecation\">Cassandra Deprecation</a>\n          documentation.\n        </p>\n      </li>\n    </ul>\n  </div>\n  <p> </p>\n  <div class=\"callout callout--info\">\n    We recommend not using Windows PHP/Apache/MySQL all-in-one packages (such\n    as\n    XAMPP). Instead, we recommend using IIS, PHP with FastCGI, and SQL Server\n    for\n    Windows environments to ensure the best performance and reliability,\n    as explained\n    below. The alternative option would be to use Linux, Apache, and MySQL,\n    but\n    both\n    environments work equally well.\n  </div>\n  <p>\n    <!-- END note -->\n  </p>\n  <div class=\"et_pb_module et_pb_text et_pb_text_8 et_pb_text_align_left et_pb_bg_layout_light\">\n    <h2 id=\"01G80JTWW2795KG65P4MCC70AD\">\n      <span style=\"font-size: 1.5em;\">Preparing the server</span>\n    </h2>\n  </div>\n  <p>\n    TestRail requires a web server, a SQL database (SQL Server) and a working\n    PHP\n    8.3 environment to be installed on the server. On Windows Servers,\n    TestRail\n    works best with Microsoft’s IIS web server and PHP configured to run\n    with\n    FastCGI.\n  </p>\n  <h2 id=\"h_01J0R7VHZ6MXREQ3G3FST3CYH3\">\n    <span style=\"font-size: 1.5em;\">Installing IIS</span>\n  </h2>\n  <p>\n    To install IIS on Windows Server, run <strong style=\"font-size: 15px;\">Server Manager</strong><span style=\"font-size: 15px;\">. On the Dashboard, under Configure This Local Server, click </span><strong style=\"font-size: 15px;\">Add roles and features.</strong>\n  </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410984427028\" alt=\"image8.png\">\n  </p>\n  <p> </p>\n  <p>\n    Select <strong>Role-based or feature-based installation</strong>, and\n    click\n    <strong>Next</strong>.\n  </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410984427412\" alt=\"image12.png\">\n  </p>\n  <p>\n    <br>\n    Select your desired server host to install IIS from the server pool,\n    and\n    click\n    <strong>Next</strong>. Then, when selecting Server Roles, make sure\n    <strong>Web Server (IIS) </strong>is selected and under\n    <strong>Web Server &gt; Application Development </strong>make sure <strong>CGI </strong>is\n    also selected (if it is not selected already). Click\n    <strong>Install</strong>.\n  </p>\n  <p> </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410984428180\" alt=\"image7.png\">\n  </p>\n  <p> </p>\n  <div class=\"callout callout--info\">\n    <h4 class=\"callout__title callout__icon\" id=\"h_01J0R7VHZ6DF08HDN9H7EHADX3\">\n      <em class=\"fas fa-info-circle\"><em> </em></em>\n    </h4>\n    <p>\n      <span style=\"font-weight: 400;\">For more information, please refer to Microsoft’s official documentation:</span>\n    </p>\n    <ul>\n      <li>\n        <a href=\"https://learn.microsoft.com/en-us/iis/application-frameworks/scenario-build-a-php-website-on-iis/configuring-step-1-install-iis-and-php\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Install IIS or PHP</strong></a>\n      </li>\n      <li>\n        <a href=\"https://learn.microsoft.com/en-us/windows-server/administration/server-manager/install-or-uninstall-roles-role-services-or-features\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Install or Uninstall Roles, Role Services, or Features</strong></a>\n      </li>\n      <li>\n        <a href=\"https://learn.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-applications-on-iis/using-fastcgi-to-host-php-applications-on-iis\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Using FastCGI to Host PHP Applications on IIS 7</strong></a>\n      </li>\n    </ul>\n  </div>\n  <p> </p>\n  <p>\n    <a href=\"hhttps://windows.php.net/download#php-8.3\" target=\"_blank\" rel=\"noopener noreferrer\">Download the official PHP files</a> in\n    .zip format. Use the latest 8.3 version available. \n  </p>\n  <p>\n    As of 2023, <strong>VS16 x64 Non Thread Safe</strong>  is the recommended\n    version to download, as this will be used in the installation documentation.\n  </p>\n  <figure class=\"wysiwyg-image\">\n    <img style=\"aspect-ratio: 1274/714;\" src=\"https://support.testrail.com/hc/article_attachments/46410984432404\" alt=\"Screenshot 2025-08-20 at 14.57.56.png\" width=\"1274\" height=\"714\">\n  </figure>\n  <p> </p>\n  <p>\n    Once the download is complete, extract the zipped PHP files into\n    <strong>C:\\php\\</strong> on the host system.\n  </p>\n  <p>\n    Edit your <strong>Environment Variables</strong>,  and add a new\n    Path\n    System\n    variable <strong>C:\\php</strong>. \n  </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410984439188\" alt=\"image9.png\">\n  </p>\n  <p> </p>\n  <p>\n    Go to the <strong>IIS Manager</strong>, click on the server host, then\n    click\n    <strong>Handler Mappings</strong>, and <strong>Add</strong> <strong>Module Mapping</strong>.\n  </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410927635988\" alt=\"image13.png\">\n  </p>\n  <p> </p>\n  <p>\n    On the new window, fill in all the fields with the exact information\n    shown\n    on\n    the following image, and then click <strong>OK</strong>.<br>\n    <br>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410927636116\" alt=\"image11.png\">\n  </p>\n  <p> </p>\n  <p>\n    Go back to the server host in the <strong>IIS Manager</strong>,\n    and\n    this\n    time click <strong>Default Document</strong>. Click <strong>Add</strong>\n    on the Actions Panel.\n  </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410984442004\" alt=\"image4.png\">\n  </p>\n  <p> </p>\n  <p>\n    Fill in the Name field with <strong>Index.php</strong> and click\n    <strong>OK</strong>. Next, click <strong>Add</strong> again and\n    this\n    time\n    fill in the Name field with <strong>Default.php</strong> and click <strong>OK</strong>.\n  </p>\n  <p> </p>\n  <p>\n    <img src=\"https://support.testrail.com/hc/article_attachments/46410927636756\" alt=\"image3.png\">\n  </p>\n  <p> </p>\n  <div class=\"callout callout--info\">\n    <h4 class=\"callout__title callout__icon\" id=\"h_01J0R7VHZ73NMX9T9ADBTKFC9Y\">\n      <em class=\"fas fa-info-circle\"><em> </em></em>\n    </h4>\n    <p>\n      Follow the\n      <a href=\"https://support.testrail.com/hc/en-us/articles/12981426500116\" target=\"_blank\" rel=\"noopener noreferrer\">instructions to run your PHP info diagnostics and check the PHP Version</a>.\n    </p>\n  </div>\n  <h2 id=\"h_01J0R7VHZ73PS6A87SRJ48A28G\">\n    <span style=\"font-size: 1.5em;\">Installing the prerequisites</span>\n  </h2>\n  <p>\n    To use TestRail on Windows with a SQL Server database, the following\n    PHP\n    extensions\n    are required:\n  </p>\n  <ul class=\"list-bullet\">\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">gd PHP extension for generating charts</span>\n    </li>\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">sqlsrv_81_nts_x64 PHP</span> extension\n      to\n      access SQL Server databases\n    </li>\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">pdo_mysql PHP extension to access the database</span>\n    </li>\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">fileinfo PHP extension for determining file type and encoding</span>\n    </li>\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">imagick PHP extension for working with images</span>\n    </li>\n    <li>mbstring PHP extension for working with Unicode strings</li>\n    <li aria-level=\"1\">curl PHP extension to check for updates etc.</li>\n    <li aria-level=\"1\">\n      <span style=\"font-weight: 400;\">openssl PHP extension to handle SSL connections</span>\n    </li>\n    <li aria-level=\"1\">ioncube PHP loader to decode the TestRail PHP files</li>\n  </ul>\n  <p>\n    <br>\n    Download the\n    <a href=\"https://learn.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">PHP Microsoft drivers for SQL Server here</a><span style=\"font-weight: 400;\">, and click <a href=\"https://go.microsoft.com/fwlink/?linkid=2258816\" target=\"_blank\" rel=\"noopener noreferrer\" data-linktype=\"external\">Download Microsoft Drivers for PHP for SQL Server (Windows)</a>.</span>\n  </p>\n  <p>\n    <span style=\"font-weight: 400;\">Before extracting the files, you must first make sure which Thread Safety you have for your PHP version (ts or nts), otherwise the installation will not work. To see if your version is enabled for Thread Safe or Not Thread Safe, enter the following command:</span>\n  </p>\n  <pre><code class=\"language-auto\">php -i|find \"Thread Safety\"</code></pre>\n  <p>\n    <span style=\"font-weight: 400;\">Once you have extracted the files, find the corresponding Thread Safety files according to your version and copy the files to your C:\\php\\ext\\ directory. For example:</span>\n  </p>\n  <ul>\n    <li style=\"list-style-type: none;\">\n       \n      <ul class=\"list-bullet\">\n        <li aria-level=\"1\">php_pdo_sqlsrv_83_nts_x64.dll</li>\n        <li aria-level=\"1\">php_sqlsrv_83_nts_x64.dll</li>\n      </ul>\n    </li>\n  </ul>\n  <p>\n    <span style=\"font-weight: 400;\">To install these extensions, add the following to your php.ini files:</span>\n  </p>\n  <ul>\n    <li style=\"list-style-type: none;\">\n       \n      <ul class=\"list-bullet\">\n        <li aria-level=\"1\">extension=pdo_sqlsrv_83_nts_x64</li>\n        <li aria-level=\"1\">extension=sqlsrv_83_nts_x64</li>\n      </ul>\n    </li>\n  </ul>\n  <p> </p>\n  <p>\n    <span style=\"color: #202020;\"><span style=\"font-weight: 400;\">The driver also needs the ODBC Driver to be installed. Download the corresponding package and install it:</span></span>\n  </p>\n  <ul class=\"list-bullet\">\n    <li>\n      <a href=\"https://go.microsoft.com/fwlink/?linkid=2120140\" target=\"_self\">Download the x86 package</a>\n    </li>\n    <li>\n      <a href=\"https://go.microsoft.com/fwlink/?linkid=2120137\" target=\"_self\">Download the x64 package</a>\n    </li>\n  </ul>\n  <p> </p>\n  <p>\n    <span style=\"font-weight: 400;\"><span style=\"color: #202020;\">After you activate the extension in the PHP.ini configuration file and after you installed the ODBC Driver, please restart your IIS web server. You can check if the extension has been successfully loaded by </span><a href=\"https://www.gurock.com/testrail/docs/admin/howto/running-phpinfo\" target=\"_blank\" rel=\"noopener noreferrer\">running the phpinfo() function</a><span style=\"color: #202020;\">.</span><span style=\"color: #00796b;\"><span class=\"wysiwyg-color-black\"> You can use the Command Prompt to run ‘php -m’ to confirm the modules are running.</span><br></span></span>\n  </p>\n  <p>\n    <span style=\"font-weight: 400;\"><br>Follow the official <a href=\"https://mlocati.github.io/articles/php-windows-imagick.html\" target=\"_blank\" rel=\"noopener noreferrer\">imagick extension installation documentation found here</a>.</span>\n  </p>\n  <p> </p>\n  <p>\n    The last required PHP extension is the free ionCube PHP loader. You can\n    download\n    the\n    <a href=\"http://www.ioncube.com/loaders.php\" target=\"_blank\" rel=\"noopener noreferrer\">ionCube loader for Windows here</a>.\n  </p>\n  <p>\n    <span style=\"font-weight: 400;\">This installation procedure requires ‘ioncube_loader_win_8.3.dll’, which is found by downloading the <strong>Windows VC16 (Non-TS) (64 bits)</strong> zip file (ioncube_loaders_win_nonts_vc16_x86-64.zip). Extract all the files on your server, and copy the loader extension to your PHP’s ext directory (usually C:\\php\\ext\\). Next, activate the extension by adding the following line to your PHP.ini file (You can find this file in your installation directory, usually C:\\php\\):</span>\n  </p>\n  <pre><code class=\"language-auto\">zend_extension = \"C:\\php\\ext\\ioncube_loader_win_8.3.dll\"</code></pre>\n  <p>\n    To verify that the ionCube loader extension has been successfully installed,\n    run php -v in the Windows Command Prompt (you need to change\n    to\n    PHP’s\n    installation directory in order to execute this command).\n  </p>\n  <p>\n    The ionCube loader extension is successfully installed if php -v outputs\n    something\n    like this (note the ionCube PHP Loader line):\n  </p>\n  <pre><code class=\"language-auto\">PHP 8.3.2 (cli) (built: Jan 16 2026 10:12:45) (NTS Visual C++ 2019 x64)\nCopyright (c) The PHP Group\nZend Engine v4.3.2, Copyright (c) Zend Technologies\nwith the ionCube PHP Loader v13.0.2, Copyright (c) 2002-2026, by ionCube Ltd.</code></pre>\n  <p>\n    <!-- START note -->\n  </p>\n  <div class=\"callout callout--info\">\n    <h4 class=\"callout__title callout__icon\" id=\"01G80J5D85Z6HE0CD0NV6VZ61E\">\n      <em class=\"fas fa-info-circle\"><em> </em></em>\n    </h4>\n    <p>\n      In order for IIS to be able to load the extension, you might need\n      to\n      change\n      the permission of the ionCube extension file. To do this, right-click\n      the\n      file in Explorer, click Properties, select the Security tab, and\n      add\n      the\n      Users group.\n    </p>\n  </div>\n  <p>\n    <!-- END note -->\n  </p>\n  <p>\n    Most extensions should be added automatically, IonCube, and imagick steps.\n    If\n    you installed PHP manually, you might have to activate the required extensions\n    in the PHP.ini file like this:\n  </p>\n  <pre><code class=\"language-auto\">zend_extension = \"C:\\php\\ext\\ioncube_loader_win_8.3.dll\"\nextension=gd\nextension=fileinfo\nextension=imagick\nextension=mbstring\nextension=curl\nextension=openssl\nextension=pdo_sqlsrv_83_nts_x64\nextension=sqlsrv_83_nts_x64</code></pre>\n  <p>\n    To reload PHP, restart the IIS web server. The easiest way to do this\n    is\n    to restart\n    the <em>World Wide Web Publishing Windows</em> service. You can\n    do this\n    by opening the Services application from the Administrative Tools and\n    restarting\n    the service. (Please note that this restarts all IIS application pools\n    and\n    websites.\n    If you are hosting other websites and applications on this server, you\n    might\n    want to restart the relevant application pool only).\n  </p>\n  <h2 id=\"h_01JZT80P8V94V807HF4NMKMC30\">Install Chrome Headless Shell Dependency (for Reports)</h2>\n  <ol>\n    <li>\n      <strong>Install Dependencies</strong> - Please ensure that your system\n      has\n      the ability to unarchive ZIP files.\n    </li>\n    <li>\n      <strong>Download Chrome Headless Shell Manually</strong> - Open the\n      <a href=\"https://googlechromelabs.github.io/chrome-for-testing/\">Chrome for Testing website</a>\n      in a browser and download the latest stable version\n    </li>\n    <li>\n      <strong>Unzip the File</strong> - Right-click the .zip and select\n      \"Extract\n      All\"\n    </li>\n    <li>\n      <strong>Move to Desired Location </strong>- Move the extracted folder\n      anywhere\n      (e.g., C:\\Program Files\\ChromeHeadless). Keep note of the location\n      where\n      you will move the binary, as you will need to add this path to the\n      TestRail\n      configuration.\n    </li>\n  </ol>\n  <p> </p>\n</div><p> </p>","user_segment_ids":[]},{"id":46410277480980,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46410277480980.json","html_url":"https://support.testrail.com/hc/en-us/articles/46410277480980-Preparing-your-Unix-Linux-server-for-installation-versions-10-0-1-onwards","author_id":12818215810836,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":43349842364564,"created_at":"2026-02-18T11:47:11Z","updated_at":"2026-06-09T20:08:46Z","name":"Preparing your Unix/Linux server for installation - versions 10.0.1 onwards","title":"Preparing your Unix/Linux server for installation - versions 10.0.1 onwards","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-09T20:08:46Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<div class=\"callout\"><p>TestRail 10.4.1 is available for all Server customers. Customers who wish to upgrade to TestRail 10.4.1 or older versions, can <a href=\"https://secure.testrail.com/portal\">download the installation files from the TestRail Billing Portal</a>.</p></div><div class=\"lt-article__body\">\n    <div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n      <p>\n        <strong>ℹ️ Important Note:</strong>\n      </p>\n      <p>\n        Starting with TestRail 9.5.1 Server, <strong data-start=\"2152\" data-end=\"2182\">Cassandra is officially deprecated and enforcement is in place.</strong>:\n      </p>\n      <ul>\n        <li>\n          <p data-start=\"2189\" data-end=\"2228\">\n            Admins must first run the <strong data-start=\"2434\" data-end=\"2465\">Cassandra deprecation script</strong> in <strong data-start=\"2434\" data-end=\"2465\">version 9.4.1</strong> before\n            upgrading to more recent versions.\n          </p>\n        </li>\n        <li>\n          <p data-start=\"2189\" data-end=\"2228\">\n            If the script has not been executed, the upgrade to more\n            recent\n            versions\n            will\n            be blocked and a <strong data-start=\"2152\" data-end=\"2182\">warning message will be displayed</strong> \n            during the upgrade process.\n          </p>\n          <p>\n            <strong>👉 </strong>Please check our\n            <a href=\"https://support.testrail.com/hc/en-us/sections/39794668286484-Cassandra-Deprecation\">Cassandra Deprecation</a>\n            documentation.\n          </p>\n        </li>\n      </ul>\n    </div>\n    <div class=\"lt-article__body\">\n      <div> </div>\n      <div>\n        Please see below for instructions on how to install TestRail on common\n        Unix-based server systems, including Linux. See the\n        <a href=\"https://support.testrail.com/hc/en-us/articles/39189060476180-Installation-requirements-9-3-1-version\" target=\"_blank\" rel=\"noopener noreferrer\">requirements</a><span class=\"wysiwyg-color-black\"> to learn more about supported operating and server systems.</span>\n      </div>\n      <h2 id=\"Preparingtheserver\">Preparing the server</h2>\n      <p>\n        TestRail requires a web server, a SQL based database (MySQL) and\n        a working\n        PHP environment to be installed\n        on the server. While instructions for installing Linux, Apache, MySQL,\n        and PHP (commonly referred to as <em>LAMP</em>) are out of the scope\n        of this installation guide, there are great how-to guides on how\n        to install\n        a LAMP system on popular Linux and Unix systems available on the\n        net:\n      </p>\n      <ul class=\"list-bullet\">\n        <li class=\"level1\">\n          <div class=\"li\">\n            <a class=\"urlextern\" title=\"https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-lamp/\" href=\"https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-lamp/\" target=\"_blank\" rel=\"noopener noreferrer\">Installing LAMP on Debian</a>\n          </div>\n        </li>\n        <li class=\"level1\">\n          <div class=\"li\">\n            <a class=\"urlextern\" title=\"https://docs.rockylinux.org/10/guides/web/php/\" href=\"https://docs.rockylinux.org/10/guides/web/php/\" target=\"_blank\" rel=\"noopener noreferrer\">Installing LAMP on Red Hat/CentOS</a>\n          </div>\n        </li>\n        <li class=\"level1\">\n          <div class=\"li\">\n            <a class=\"urlextern\" title=\"https://docs.vultr.com/how-to-install-apache-mysql-php-famp-stack-on-freebsd-14-0\" href=\"https://docs.vultr.com/how-to-install-apache-mysql-php-famp-stack-on-freebsd-14-0\">Apache, MySQL and PHP on FreeBSD</a>\n          </div>\n        </li>\n      </ul>\n      <h4 id=\"h_01J0R7KC9T0CW1V0TKJBV947RX\">Installing LAMP on Ubuntu:</h4>\n      <p>To install on Ubuntu, follow these steps:</p>\n      <!-- START ordered list with colored numbers -->\n      <ol class=\"list-colored\">\n        <li>\n          Install MySQL\n          <pre><code class=\"shell hljs\"><span class=\"bash\">apt-get update &amp; apt-get install -y default-mysql-server default-mysql-client</span></code></pre>\n          <p>\n            Secure the mysql installation. It is advisable, when prompted,\n            to allow removal of anonymous users and remove the test database.\n            Make sure to allow the program to reload the privilege tables.\n          </p>\n          <pre><code class=\"shell hljs\"><span class=\"bash\">mysql_secure_installation</span></code></pre>\n          <p>\n            MySQL will create the root user by default. Access MySQL\n            console\n            with the following command to create new users.\n          </p>\n          <pre><code class=\"shell hljs\"><span class=\"bash\">sudo mysql --defaults-file=/etc/mysql/debian.cnf</span></code></pre>\n        </li>\n        <li>\n          Install Apache Web Server\n          <pre><code class=\"shell hljs\"><span class=\"bash\">apt-get -y install apache2</span></code></pre>\n          <p>\n            To ensure the Apache server is running, navigate to ‘http://localhost’\n            in your web browser. If the Apache Web Server was installed\n            successfully,\n            you will see the Apache2 Ubuntu Default Page.\n          </p>\n          <img src=\"https://support.testrail.com/hc/article_attachments/46410239348500\" alt=\"Apache_Web_Server_succesful.png\">\n          <ol class=\"list-colored\">\n            <li>\n              Locate and open your Apache configuration file. For example:<br>\n              <pre><code class=\"shell hljs\"><span class=\"bash\">sudo nano /etc/apache2/sites-available/000-default.conf</span></code></pre>\n            </li>\n            <li>\n              Inside the appropriate `<em>&lt;VirtualHost&gt;</em>`\n              block\n              for your TestRail site, add or update the `&lt;Directory&gt;`\n              section as follows:<br>\n              <pre><code class=\"shell hljs\"><span class=\"bash\">&lt;Directory /var/www/testrail&gt;<br>Options Indexes FollowSymLinks<br>AllowOverride All<br>Require all granted<br>&lt;/Directory&gt;</span></code></pre>\n            </li>\n          </ol>\n        </li>\n        <li>\n          Install PHP 8.3 (Add Ondřej Surý PPA Repository if required)\n          <pre><code class=\"shell hljs\"><span class=\"bash\">apt-get install -y php8.3 libapache2-mod-php8.3</span></code></pre>\n        </li>\n        <li>\n          Restart Apache\n          <pre><code class=\"shell hljs\"><span class=\"bash\">systemctl restart apache2</span></code></pre>\n        </li>\n        <li>\n          Create the phpinfo.php file\n          <p>\n            Follow the\n            <a href=\"https://support.testrail.com/hc/en-us/articles/12981426500116\" target=\"_blank\" rel=\"noopener noreferrer\">Running phphinfo() diagnostics guide</a>\n            to create the phpinfo.php file.\n          </p>\n          <!-- START note -->\n          <div class=\"callout callout--info\">\n            <h4 id=\"h_01J0R7KC9TYBWA6JFWXNVM4627\" class=\"callout__title callout__icon\">\n              <em class=\"fas fa-info-circle\"> </em>\n            </h4>\n            <p>\n              You may need to change the owner of the phpinfo.php file.\n              Use the following command, or a modification of the command\n              to point to the specific location of your phpinfo.php\n              file.\n            </p>\n            <pre><code class=\"shell hljs\"><span class=\"bash\">chown www-data:www-data /var/www/html/phpinfo.php</span></code></pre>\n          </div>\n          <!-- END note -->\n          <p>\n            If you already have a phpinfo.php file in the\n            <strong>wwwroot</strong>\n            folder, skip the creation of the file and navigate to ‘localhost/phpinfo.php’\n            in your web browser to check the PHP version info. It should\n            look something like this (take note that the proper version\n            is\n            reflected in the title):\n          </p>\n          <img src=\"https://support.testrail.com/hc/article_attachments/46410277480468\" alt=\"phpinfo8_3.png\" width=\"696\" height=\"496\">\n          <p> </p>\n          <p>\n            <span style=\"font-weight: 400;\">Please review the </span><a href=\"https://drive.google.com/file/d/1NhdIxEOZOtfesdXOLGlHvXOo1dGUJfQd/view?usp=share_link\" target=\"_blank\" rel=\"noopener noreferrer\">phpinfo page</a><span style=\"font-weight: 400;\"> that lists all the required php extensions.</span>\n          </p>\n        </li>\n        <li>\n          Install the MySQL PHP 8.3 extension\n          <pre><code class=\"shell hljs\"><span class=\"bash\">apt-get install php8.3-phpdbg -y</span></code></pre>\n        </li>\n        <li>\n          Restart Apache\n          <pre><code class=\"shell hljs\"><span class=\"bash\">systemctl restart apache2</span></code></pre>\n        </li>\n      </ol>\n      <!-- END ordered list with colored numbers -->\n      <h2 id=\"Importantnotesbeforeinstallation\">Important notes before installation</h2>\n      <!-- START warning -->\n      <div class=\"callout callout--warning\">\n        <h4 id=\"h_01J0R7KC9TV36NVS0N9HE8C2TP\" class=\"callout__title callout__icon\">\n          <em class=\"fas fa-exclamation-triangle\"> </em>\n        </h4>\n        <p>\n          From TestRail 7.1 onwards, TestRail requires both MySQL (or MariaDB),\n          plus related drivers.\n        </p>\n      </div>\n      <!-- END warning -->\n      <h2 id=\"Installingtheprerequisites\">Installing the prerequisites</h2>\n      <p>\n        To use TestRail on a Unix-based server with MySQL, the following\n        PHP\n        extensions are required:\n      </p>\n      <ul class=\"list-bullet\">\n        <li>gd PHP extension for generating charts</li>\n        <li>mysql PHP extension to access the database</li>\n        <li>\n          <span style=\"font-weight: 400;\">fileinfo PHP extension for determining file type and encoding</span>\n        </li>\n        <li>\n          <span style=\"font-weight: 400;\">imagick PHP extension for working with images</span>\n        </li>\n        <li>mbstring PHP extension for working with Unicode strings</li>\n        <li>curl PHP extension to check for updates etc.</li>\n        <li>\n          <span style=\"font-weight: 400;\">openssl PHP extension to handle SSL connections</span>\n        </li>\n      </ul>\n      <p>\n        Most extensions are installed by default, but\n        <em>mbstring, gd, and imagick</em> need to be installed manually.\n        You\n        can do this using the following command:\n      </p>\n      <pre><code class=\"shell hljs\"><span class=\"hljs-meta\">$ </span><span class=\"bash\">apt-get -y install php8.3-imagick php8.3-mbstring php8.3-gd</span></code></pre>\n      <p>\n        Depending on the operating system and platform, the mysql and curl\n        PHP\n        extensions must be installed (via the platform’s package manager)\n        and\n        activated in the PHP.ini configuration file. For example, the following\n        command installs the extensions on Debian/Ubuntu systems:\n      </p>\n      <pre><code class=\"hljs ini\"><span style=\"font-weight: 400;\">$ sudo apt-get install php8.3-mysql php8.3-curl php8.3-mbstring php8.3-xml php8.3-gd php8.3-zip -y</span><br></code></pre>\n      <p>\n        <span style=\"font-weight: 400;\">On some systems, these modules also have to be activated in the PHP.ini configuration file (systems such as Ubuntu automatically activate the extensions when they are installed). To do this, please add ‘<strong>extension={extension_name}</strong>’ to the end of the configuration file (make sure that they aren’t already activated in the PHP.ini).</span>\n      </p>\n      <p>\n        <span style=\"font-weight: 400;\">For example, with the filename ‘imagick.so’, the entry in the php.ini file will look like this:</span>\n      </p>\n      <pre><code class=\"hljs ini\"><span style=\"font-weight: 400;\">extension=imagick</span><br></code></pre>\n      <p>\n        On most systems you can find the PHP.ini under /etc/php/8.3, /etc/php\n        or /etc/php/8.3/apache2. You will also need to modify the PHP.ini\n        file\n        in the /etc/php/8.3/cli/ directory.\n      </p>\n      <p>\n        Most PHP extensions are usually integrated directly into PHP and\n        don’t\n        require an external module to be installed. However, if you see a\n        missing\n        dependency message in TestRail for one of these modules, you need\n        to\n        add it to your PHP installation as well (e.g. by installing a php8.3-curl\n        module).\n      </p>\n      <h2 id=\"h_01J0R7KC9TVERG0XZD00QKH1VM\">Ioncube installation</h2>\n      <p>\n        The last required PHP extension is the free ionCube PHP loader. You\n        can\n        download the relevant ionCube edition for your operating system from <a href=\"http://www.ioncube.com/loaders.php\" target=\"_blank\" rel=\"noopener noreferrer\">ionCube’s website</a>.\n        After downloading and extracting the files on your web server, place\n        the files in a directory of your choice, for example /opt/ioncube.\n      </p>\n      <p>\n        To activate ionCube, add the relevant ionCube loader extension to\n        your\n        PHP.ini. To do this, make sure to use the zend_extension or zend_extension_ts\n        configuration directives and specify the <em>full path</em> to\n        the extension:\n      </p>\n      <pre><code class=\"hljs apache\"><span class=\"hljs-attribute\">zend_extension</span>=/opt/ioncube/ioncube_loader_lin_<span class=\"hljs-number\">8</span>.<span class=\"hljs-number\">3</span>.so</code></pre>\n      <!--<p>\n    If you are using a different PHP version (e.g. PHP 7.4), please make sure\n    to specify the corresponding version of the ionCube loader. For example,\n    for PHP 7.4 you would need to load the ionCube loader as follows instead\n    (note the different version in the file name):\n  </p>\n  <pre><code class=\"hljs apache\"><span class=\"hljs-attribute\">zend_extension</span>=/opt/ioncube/ioncube_loader_lin_<span class=\"hljs-number\">7</span>.<span class=\"hljs-number\">4</span>.so</code></pre>\n  -->\n      <p>\n        If you are unsure which ionCube extension you need to activate for\n        your\n        server system, please copy the loader-wizard.php script to your web\n        server\n        directory and access it from your web browser and follow the installation\n        instructions. After installing the extensions, please restart your\n        web\n        server to load the newly installed extensions.\n      </p>\n      <p>\n        You can verify that the ionCube loader extension has been successfully\n        installed by running php -v. Please note though that the PHP\n        command\n        line interface might use a different configuration file than the\n        PHP\n        version that is used by your web server. Please make sure that ionCube\n        is activated in all relevant PHP.ini configuration files. The ionCube\n        loader extension is successfully installed if php -v outputs something\n        like this (note the ionCube PHP Loader line):\n      </p>\n      <pre><code class=\"shell hljs\">PHP 8.3.2-1ubuntu2.10 (cli) (built: Jan 16 2023 15:19:49) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.1.2, Copyright (c) Zend Technologies\n    with the ionCube PHP Loader v12.0.5, Copyright (c) 2002-2022, by ionCube Ltd.\n    with Zend OPcache v8.3.2-1ubuntu2.10, Copyright (c), by Zend Technologies</code></pre>\n      <!-- START note -->\n      <div class=\"callout callout--info\">\n        <h4 id=\"h_01J0R7KC9TB6FGNP9ZFWP7PWBC\" class=\"callout__title callout__icon\">\n          <em class=\"fas fa-info-circle\"> </em>\n        </h4>\n        <p>\n          <strong>SELinux note:</strong> If your system has SELinux enabled\n          (often on RedHat and similar Linux distributions), Apache, and/or\n          PHP might not be able to load ionCube or other files due to directory\n          restrictions. If you experience this problem, you can either\n          adjust\n          the SELinux configuration or disable SELinux, depending on your\n          requirements.\n        </p>\n      </div>\n      <!-- END note -->\n    </div>\n    <h2 id=\"h_01JZT80P8V94V807HF4NMKMC30\">Install Chrome Headless Shell Dependency</h2>\n    <ol>\n      <li>\n        <p>Open your preferred terminal application and run:</p>\n        <pre><code class=\"language-shell\">sudo apt update\nsudo apt install -y wget unzip libnss3 libatk1.0-0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libxkbcommon0 libasound2 libatk-bridge2.0-0 libxfixes3</code></pre>\n      </li>\n      <li>\n        <p>\n          Download Latest Chrome Headless Shell, and in your terminal,\n          run\n          the\n          following commands:\n        </p>\n        <pre><code class=\"language-auto\">cd /tmp\nLATEST_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE)\nWget https://storage.googleapis.com/chrome-for-testing-public/${LATEST_VERSION}/linux64/chrome-headless-shell-linux64.zip</code></pre>\n      </li>\n      <li>\n        <p>\n          Unzip and Move the Binary. You can now unzip the binary and move\n          it to\n          your preferred location. Keep note of the location where you\n          will\n          move\n          the binary, as you will need to add this path to the TestRail\n          configuration.\n        </p>\n        <pre><code class=\"language-auto\">unzip chrome-headless-shell-linux64.zip\nsudo mv chrome-headless-shell-linux64 /usr/bin/</code></pre>\n      </li>\n      <li>\n        <p>\n          Set Permissions. Make sure that the web user has sufficient permissions\n          to run the Chrome binary:\n        </p>\n        <pre><code class=\"language-auto\">sudo chown www-data:www-data /usr/bin/chrome-headless-shell-linux64 -R\nsudo chmod 775 /usr/bin/chrome-headless-shell-linux64 -R</code></pre>\n      </li>\n    </ol>\n  </div>","user_segment_ids":[]},{"id":46348615843476,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/46348615843476.json","html_url":"https://support.testrail.com/hc/en-us/articles/46348615843476-Smart-Archiving-for-Test-Runs-Plans","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":-1,"vote_count":7,"section_id":7076692244500,"created_at":"2026-02-16T13:04:36Z","updated_at":"2026-06-24T00:57:39Z","name":"Smart Archiving for Test Runs & Plans","title":"Smart Archiving for Test Runs & Plans","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-02-19T14:24:18Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p data-start=\"947\" data-end=\"1210\">TestRail 10.1 introduced<strong> smart closing and archiving, </strong>helping administrators <strong>manage large volumes of Test Runs and Plans</strong> by applying lifecycle rules based on on their status and age. These controls help reduce manual maintenance, improve performance, and keep projects organized as testing activity grows.</p><h2 id=\"h_01KHV4HZZY5FJQA20X6HZHPZ4R\">How smart archiving management works</h2><p data-start=\"935\" data-end=\"1010\">With smart archiving, TestRail applies the following rules:</p><ol class=\"list-colored\">\n<li class=\"wysiwyg-list-bold\" aria-level=\"1\" data-list-item-id=\"e08ec1f2feba34b465bfae383a0b632fb\">\n<strong>Automatic closing</strong><ul>\n<li data-start=\"1012\" data-end=\"1208\" data-list-item-id=\"eff591bee7091196a5944129919051dcd\">Test Runs and Plans are automatically closed after a configurable period of time based on their <strong data-start=\"1139\" data-end=\"1154\">create date</strong>.</li>\n<li data-start=\"1012\" data-end=\"1208\" data-list-item-id=\"e893dcea7735449236a3da7fc100235c6\">By default, items are closed after <strong data-start=\"1195\" data-end=\"1207\">180 days</strong>.</li>\n</ul>\n</li>\n<li class=\"wysiwyg-list-bold\" aria-level=\"1\" data-list-item-id=\"e7fb564684c696d7ba042c0462e39cd6b\">\n<strong>Automatic archiving</strong><ul>\n<li data-start=\"1210\" data-end=\"1400\" data-list-item-id=\"e7893c10555916a97d04ee99bc340ca62\">Closed Test Runs and Plans are automatically archived after a configurable timeframe following closure.</li>\n<li data-start=\"1210\" data-end=\"1400\" data-list-item-id=\"e25b31221131146c49d1437a5b9f4da81\">By default, items are archived after <strong data-start=\"1388\" data-end=\"1399\">90 days</strong>.</li>\n</ul>\n</li>\n</ol><p data-start=\"1402\" data-end=\"1498\">Lifecycle actions are applied automatically to eligible items that meet the configured criteria.</p><h3 id=\"h_01KHK7K9KCY1F38ACME9FCCDJM\">Archived status</h3><p data-start=\"1525\" data-end=\"1599\">Archived Test Runs and Plans represent the final stage of their lifecycle. Archived items:</p><ul class=\"list-bullet\">\n<li aria-level=\"1\" data-list-item-id=\"ef7cf5052435d14c1fb6799b76d6de43e\">Are<strong> locked and cannot be edited</strong>\n</li>\n<li aria-level=\"1\" data-list-item-id=\"eb36b7b9caeadafafc11bf2b5b5ae0341\">Are <strong>excluded from reports</strong> (Print Reports are still available)</li>\n<li aria-level=\"1\" data-list-item-id=\"eaba1e70f295a5aac20d788890e2796be\">Remain<strong> searchable and viewable</strong> for historical reference</li>\n<li aria-level=\"1\" data-list-item-id=\"e43f5b65892893fed0c438ab3901deb5a\">Can be reused using the <strong data-start=\"1764\" data-end=\"1774\">Re-run</strong> option to create new Test Runs or Plans</li>\n</ul><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 87.34%;\"><img style=\"aspect-ratio: 2586/1460;\" src=\"https://support.testrail.com/hc/article_attachments/46348593488660\" alt=\"Screenshot 2026-02-13 at 17.38.54.png\" width=\"2586\" height=\"1460\"><figcaption>Test Runs - Open, completed (closed) and archived</figcaption></figure><h2 id=\"01G824HYJ18E81WDQR8V4EPKFF\">Configuring automatic closing and archiving</h2><p>To configure lifecycle automation, navigate to <strong>Administration &gt; Site Settings &gt; User Interface. </strong>From there, you can:</p><ul class=\"list-bullet\">\n<li aria-level=\"1\" data-list-item-id=\"e67cd0b4ca21ba95d5303540916086e7a\">Set how long after the <strong data-start=\"2231\" data-end=\"2246\">create date</strong> Test Runs and Plans are automatically closed</li>\n<li aria-level=\"1\" data-list-item-id=\"e2ab4ccff6f2d4972f68d9ad0a30c17c8\">Define how long closed items remain active before being archived</li>\n</ul><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 87.34%;\"><img style=\"aspect-ratio: 1586/660;\" src=\"https://support.testrail.com/hc/article_attachments/46348593489428\" alt=\"Screenshot 2026-02-13 at 17.33.42.png\" width=\"1586\" height=\"660\"><figcaption>Site Settings &gt; User Interface &gt; Automatic Closing/Automatic Archiving</figcaption></figure><!-- START note --><div class=\"callout callout--info\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01K38YR0JBP46M1WM0FRA178AQ\"><em class=\"fas fa-info-circle\"> </em></h4>\n<p data-start=\"2755\" data-end=\"2826\">Lifecycle management is always active. These settings control the timing of automated actions.</p>\n</div><!-- END note --><h3 id=\"h_01KHK8SR1CQTSDKX0YD9FK15EG\">Best Practices</h3><ul>\n<li data-list-item-id=\"ec86b9cb0e5a3fdff9829ee90b9bcf40d\">Choose closing periods that align with how long runs typically remain active</li>\n<li data-list-item-id=\"ed06993c18b4574f9ed2ca87b7c2c7718\">Review reporting needs before adjusting archiving periods, as archived items are excluded from reports</li>\n<li data-list-item-id=\"e21afa8f086f3848ce086d5c06abbe8fd\">Use archiving to keep active project views focused and manageable</li>\n</ul>","user_segment_ids":[]},{"id":43587086897428,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/43587086897428.json","html_url":"https://support.testrail.com/hc/en-us/articles/43587086897428-Getting-started-with-Automate-Test-Cases-with-AI","author_id":30722137297812,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":3,"vote_count":3,"section_id":43586890371220,"created_at":"2025-11-21T14:11:12Z","updated_at":"2026-03-25T17:22:13Z","name":"Getting started with Automate Test Cases with AI","title":"Getting started with Automate Test Cases with AI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-03-20T11:03:25Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>Sembi IQ-powered AI automation in TestRail helps shorten the time it takes to write automation code.</p><p>Instead of starting from a blank file, you get a solid first draft generated from your manual test case and selected settings. Repetitive setup and boilerplate are handled for you, while clear inline comments explain what the code is doing and why.</p><p>The generated automation is meant to be reviewed, tested, and refined by a human. It gives you a faster starting point, not a finished solution, so you stay in control of how the automation works in your project.</p><p>The goal is to help you move faster with confidence, without taking ownership or judgment out of your hands.</p><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>ℹ️ </strong>The AI feature is available in <strong data-start=\"105\" data-end=\"128\">TestRail Cloud only</strong>.</div><div role=\"alert\" aria-label=\"Warning\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #e5a700; background: #fffbea; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Warning</div>\n  <div>\n    Misuse of AI (e.g. prompt injection or generating harmful content)\n    may\n    result in restricted access and is a violation of the\n    <a href=\"https://www.sembi.com/legal/gurock/#tab2\" style=\"color: #0969da; text-decoration: underline;\" target=\"_blank\" rel=\"noopener\">AI Terms of Use</a>\n    and\n    <a href=\"https://support.testrail.com/hc/en-us/articles/41088265893652-Responsible-AI-Use-Guide\" style=\"color: #0969da; text-decoration: underline;\" target=\"_blank\" rel=\"noopener\">Responsible AI Use Guide</a>.\n  </div>\n</div><h2 id=\"h_01KJA4P5NVDRHVYVYD8BJDQ4K9\"><strong>AI Hub overview</strong></h2><p>The AI Hub provides a central place to understand how AI features are being used across your TestRail instance.</p><p>From the <strong>AI Hub → Overview</strong> page, users with the relevant permissions can see:</p><ul>\n<li data-list-item-id=\"e1a040535e804249aee64fb3e5fb5dcc5\">\n<strong>Test cases generated with AI</strong><br>Displays the all-time number of test cases that have been created using AI-powered test case generation.</li>\n<li data-list-item-id=\"eccb7886484174de54b15f85ca3dcab39\">\n<strong>Test cases automated with AI</strong><br>Displays the all-time number of test cases where automation scripts were generated using AI.</li>\n</ul><p>These metrics give teams a quick, high-level view of how AI is being adopted across their instance and how it supports both manual and automated testing workflows.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630535474708\" width=\"624\" height=\"192\"></p><h2 id=\"h_01KJA4Q9CW1QGET30K8824J7A5\"><strong>Feature controls and permissions</strong></h2><p>Sembi IQ-powered AI Test Automation in TestRail is managed through multiple configuration levels. Based on their permissions, users can enable or disable the feature at the following levels:</p><ul>\n<li data-list-item-id=\"ee55015a1aa97d31b274a834bbe122b14\">\n<strong>Instance level</strong><br>Instance Admins can enable or disable AI automation for the entire TestRail instance. When disabled, the feature is not available to any user roles or projects.</li>\n<li data-list-item-id=\"e76a044dc1161c33e76b2b4ac82794693\">\n<strong>User role level</strong><br>Instance Admins can control which user roles are allowed to access AI automation. This determines who can generate, download, and attach AI-generated automation scripts.</li>\n<li data-list-item-id=\"e90379871dc3c5a5d6ab9a5c2cc4fd4e9\">\n<strong>Project level</strong><br>Project Admins can enable or disable AI automation for individual projects. This allows teams to limit AI usage to selected projects only.</li>\n</ul><h2 id=\"h_01KJA7C2SCY90YZTYZ3VS8KVGN\"><strong>Access points</strong></h2><div role=\"alert\" aria-label=\"Warning\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #e5a700; background: #fffbea; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">Important to know</div>\n  <div>\nIf your templates use custom Text type case fields for steps and expected results, complete the AI mapping in Customization  Edit Case Field so AI can correctly interpret and use them during automation script generation.  </div>\n</div><p>You can start generating automation from multiple places:</p><ul>\n<li data-list-item-id=\"e5949cfbebb5e8c63367568051ec5db12\">From an individual test case view</li>\n<li data-list-item-id=\"e5127c842e518123f5c5e1a79fe34e3a6\">From the test case table.</li>\n</ul><p>At this stage, automation can be generated for one test case at a time.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1382/792;\" src=\"https://support.testrail.com/hc/article_attachments/46630535472148\" alt=\"3.1 test-cases-overview.jpg\" width=\"1382\" height=\"792\"></figure><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1366/763;\" src=\"https://support.testrail.com/hc/article_attachments/46630522149396\" alt=\"3.2 test-case-view.jpg\" width=\"1366\" height=\"763\"></figure><h2 id=\"h_01KJA4Q9D3FXK6GG702H4YP032\"><strong>AI automation settings (user-level)</strong></h2><p><img src=\"https://support.testrail.com/hc/article_attachments/46630522150292\" width=\"624\" height=\"351\"></p><p>When opening the AI automation modal, users can configure in Settings:</p><p><strong>Supported languages</strong></p><ul>\n<li data-list-item-id=\"e4b34e398b88c171eb59b7dceb2084b41\">Java</li>\n<li data-list-item-id=\"e4a1055d966028e90b3f42df479bc20a1\">Python</li>\n</ul><p><strong>Supported frameworks</strong></p><ul>\n<li data-list-item-id=\"ecb4e8f64a78d4ed55d4ff97ae1001e3e\">Selenium</li>\n<li data-list-item-id=\"e35ebd65dd2062ba91e87c3cf79085530\">Playwright</li>\n</ul><p><span class=\"wysiwyg-font-size-medium\">Support for more languages and frameworks is coming soon!</span></p><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>ℹ️ Note:</strong> To view the framework versions used, please refer to the configuration file generated by the AI.</div><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1810/1252;\" src=\"https://support.testrail.com/hc/article_attachments/46630633228948\" alt=\"Screenshot 2026-02-25 at 10.22.21.png\" width=\"1810\" height=\"1252\"></figure><p><strong>BDD support</strong></p><ul>\n<li data-list-item-id=\"e1309164bca93f85f37cab92d69341dcc\">If the test case uses a BDD-style template, TestRail will generate:<ul>\n<li data-list-item-id=\"e8b4e093b0fc2661426f797e3370cfc01\">Cucumber for Java</li>\n<li data-list-item-id=\"e6956b95a674353b83c3cb1a847645f61\">Behave for Python</li>\n</ul>\n</li>\n<li data-list-item-id=\"eb2b2cf61531e77926bb0cd68b50c3f06\">This is automatically aligned with the selected language.</li>\n</ul><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>ℹ️ Note:</strong> For best results, it is recommended to keep one scenario per test case.</div><p><img src=\"https://support.testrail.com/hc/article_attachments/46630653858068\" width=\"624\" height=\"351\"></p><h2 id=\"h_01KJA78TGWDDCW7G60BRWRZJR4\"><strong>How the Sembi IQ uses test case context</strong></h2><div role=\"alert\" aria-label=\"Warning\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #e5a700; background: #fffbea; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Important</div>\n  <div>\n    When generating automation, only text-based information from the test case is sent to the AI to provide context. This includes the title, description, preconditions, steps, expected results, and any BDD scenarios. Structured metadata, attachments, and non-text fields are not used.\n  </div>\n</div><p> </p><p>For best results:</p><ul>\n<li data-list-item-id=\"e9bb671f0d863cdb51e24379656b94b42\">Make sure test steps are up to date and written clearly enough for an AI to translate them into automation actions.</li>\n<li data-list-item-id=\"ea78f0c9831574b26288a88db5a76b392\">Be explicit in preconditions, steps, expected results, and validations. What is clear to a human executing a test may be too ambiguous for automation.</li>\n<li data-list-item-id=\"e27840966c4e6409855f6c761fbb9b96d\">Use consistent terminology across steps and expected results to avoid ambiguity.</li>\n</ul><p>Writing test cases with clear actions and verifiable outcomes helps the AI generate more accurate automation and reduces the need for follow-up changes.</p><h3 id=\"h_01KJA58P917HHANWKDKF7Y6NYF\"> </h3><h2 id=\"h_01KJA78YX7930DQ5AMK58RRA94\"><strong>Providing additional context</strong></h2><p>You can improve results by uploading supporting files, such as:</p><ul>\n<li data-list-item-id=\"e9ddb8d47d5ec1a06251f0879e4e8e109\">Existing automation code from your project</li>\n<li data-list-item-id=\"e75f7942459b741a988d708cf26327d8b\">A list of selectors or page object references</li>\n<li data-list-item-id=\"e4426832a16595a0aaf7fae461b200520\">Framework configuration examples</li>\n<li data-list-item-id=\"ec338e326dbe34b1cabdec4c3dd2f3481\">And include any other relevant files that could provide additional context to the AI and improve the quality of its output.</li>\n</ul><p>You can also prompt the Sembi IQ AI directly with instructions, for example:</p><ul>\n<li data-list-item-id=\"ed5ec6f0fa67da4066faec01f566bd071\">Preferred locator strategies</li>\n<li data-list-item-id=\"e2cfbfb4429d867f6da8de20a21590d05\">Naming conventions</li>\n<li data-list-item-id=\"e313bdd39895313bc03d3f21f4866c001\">Project-specific patterns</li>\n<li data-list-item-id=\"ee69fe8c77d5f82c3f1795ac50d8dcced\">And include any additional instructions that may provide further context or clearer direction to the AI.</li>\n</ul><p>This helps the AI adapt to your real-world setup rather than generate generic code. </p><p> </p><div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n<strong>ℹ️ Supported formats:</strong> TXT, MD, XML, YAML, HTML, RTF, PDF, DOC, DOCX, CSV, JSON, and common code files (Python, Java, JavaScript, TypeScript, C/C++, PHP, Ruby, Go, Rust, SQL, Shell).</div><p> </p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630683654932\" width=\"624\" height=\"351\"></p><h2 id=\"h_01KJA5EMPTVJ7V56EHR435T4SP\"><strong>Providing additional context with files</strong></h2><p>You can upload files to give the AI more context before generating automation. This is optional, but it can significantly improve the quality and relevance of the generated script.</p><p>Providing real project context helps the AI align with your existing structure, naming conventions, and implementation patterns.</p><h4 id=\"h_01KJA5EMPVBZPG50ZTTT7GEB0H\"><strong>Examples of useful files to upload</strong></h4><p><strong>1. Existing automation code</strong><br>Upload files from your current automation project, such as:</p><ul>\n<li data-list-item-id=\"ed2e4f260a55c7be84822afe0f1594788\">Page Object classes</li>\n<li data-list-item-id=\"e0cdf5fa38bf8fd384ef40019a2ccd29a\">Base test classes</li>\n<li data-list-item-id=\"ed8cc62a948562ea66cd8c5907694b9eb\">Utility or helper methods</li>\n<li data-list-item-id=\"ea6d41ea8f1a4ba5d161def3742e5f553\">Example test files</li>\n</ul><p>This helps the Sembi IQ AI:</p><ul>\n<li data-list-item-id=\"e77ab688ad4a5173b732cb616e97ecf69\">Follow your project structure</li>\n<li data-list-item-id=\"ee7f672460d8cd9646bd5b602379c9ab0\">Reuse naming conventions</li>\n<li data-list-item-id=\"e1c9181e7359b7b1c936c70209e604e56\">Align with your architectural patterns</li>\n</ul><p><strong>2. Selectors or element references</strong><br>If your team maintains:</p><ul>\n<li data-list-item-id=\"e8f07d4ee7e2e72385c36b5931444355f\">A selectors file</li>\n<li data-list-item-id=\"ec7e2b9703f65174d3a0cfa4186b07475\">A UI map</li>\n<li data-list-item-id=\"efcf380980edccc95424e66c87e87e3de\">A centralised locator repository</li>\n</ul><p>Uploading these files helps the AI use the correct element identifiers instead of generating generic ones.</p><p><strong>3. Framework configuration examples</strong><br>You may upload:</p><ul>\n<li data-list-item-id=\"e666097440ae820d47aaed42fb01b6ae3\">Example test setup files</li>\n<li data-list-item-id=\"e7562ef213ff7ba05d49b84b072917819\">Framework configuration snippets</li>\n<li data-list-item-id=\"ec03e66d29b01080fc1dc98f16a178b57\">Test runner configuration files</li>\n</ul><p>This provides additional clarity about how your automation is structured and executed.</p><p><strong>4. Coding standards or conventions</strong><br>If your team follows specific patterns, such as:</p><ul>\n<li data-list-item-id=\"e7a9c64ba9607d548276bdf98811ac3cf\">Custom assertion wrappers</li>\n<li data-list-item-id=\"e3ee8047f7001f762b9e2d36bd620b232\">Specific naming conventions</li>\n<li data-list-item-id=\"efa6adfd9b88e548ad61cde1657546cf0\">Particular wait strategies</li>\n</ul><p>Including sample files helps the AI align with those standards. If no files are uploaded, the AI will generate automation based solely on the test case content and selected settings.</p><h2 id=\"h_01KJA5EMQ566N7MX1RFCF1QZ0G\"><strong>Understanding the generated output</strong></h2><p>Sembi IQ's AI response includes:</p><ul>\n<li data-list-item-id=\"e7d3f105398994eb15f6906bd5b6ff776\">A clear explanation of what was generated and why</li>\n<li data-list-item-id=\"ed908e6527004a1e8f7a9740c489a7f4d\">Helpful inline comments that explain the purpose of each part of the code</li>\n<li data-list-item-id=\"e363b46c7d07b7f2f08296146f98a4c5d\">A logical structure that maps back to the steps defined in the test case</li>\n</ul><p>The quality of the generated automation depends on the quality of the input provided. The AI relies on the test case details, additional context, and user instructions to produce meaningful results.</p><p>For best outcomes:</p><ul>\n<li data-list-item-id=\"ec72e2d8d9625fd613802212435f80af0\">Review the generated code before using it</li>\n<li data-list-item-id=\"e5fad5594ec085a68682d2c39b3f537f4\">Test the automation in your environment to ensure it behaves as expected</li>\n<li data-list-item-id=\"e1face5ef168425acc4d3e27ec3358818\">Refine or extend the code where necessary to match your application and framework setup</li>\n</ul><div role=\"alert\" aria-label=\"Warning\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #e5a700; background: #fffbea; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Warning</div>\n  <div>\n    AI helps accelerate automation, but human review and validation remain essential.\n  </div>\n</div><p> </p><h2 id=\"h_01KJA5EMQ8DSF3Z35W33ZRSGPA\"><strong>Understanding AI explanations and code annotations</strong></h2><p>Automation generation is not limited to producing code. The AI also explains what it did and highlights where your attention may be required.</p><p>In the chat response, the Sembi IQ:</p><ul>\n<li data-list-item-id=\"edbed0bff86441c93763b2d928847e45a\">Describes the structure of the generated files</li>\n<li data-list-item-id=\"ef097f563c0c708f799b35f78d55300d9\">Explains how test steps were translated into automation methods</li>\n<li data-list-item-id=\"ee0e667b841038efcfd6e69a88e4d1363\">Clearly points out placeholders that require user input, such as base URLs, credentials, or element identifiers</li>\n<li data-list-item-id=\"e4069f7515e3d07a90df8ead7e97cceaa\">Highlights areas that may need adjustment before execution</li>\n</ul><p>For example, if login credentials or environment-specific values were not provided, the AI will insert placeholders and explicitly call them out in the chat. This helps you quickly identify what needs to be configured before running the script.</p><p>Inside the generated code, inline comments reinforce this guidance. Placeholders are clearly marked and annotated, making it easy to see which values must be replaced and which sections may require project-specific refinement.</p><p>This combination of explanation and annotation makes the output transparent and easier to review.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630659395988\" width=\"624\" height=\"333\"></p><h2 id=\"h_01KJA5HNZADDKY29TYZJT96HRT\"> </h2><h2 id=\"h_01KJA7C0M02C7CHY83X9GE8KYK\"><strong>Quickly locating logic related to specific test steps</strong></h2><p>Sembi IQ's AI structures the generated code to reflect your test case steps and expected results.</p><p>Inline comments within the code:</p><ul>\n<li data-list-item-id=\"eaed03f93c4ad2377ea1a7240bbd65e46\">Indicate which part of the test case a method or assertion corresponds to</li>\n<li data-list-item-id=\"e6ed65a901e9041abca083222ec75d06a\">Clearly label navigation steps, actions, and validations</li>\n<li data-list-item-id=\"eff79123b72de6d547b8b79f136b6e136\">Separate logical sections of the automation flow</li>\n</ul><p>This makes it easy to:</p><ul>\n<li data-list-item-id=\"e98c940a06f0732ed7882cec9ee7bd98d\">Locate the code that implements a particular step</li>\n<li data-list-item-id=\"eaf437c704e4433357fc2d3cefd52b43c\">Adjust a specific assertion tied to an expected result</li>\n<li data-list-item-id=\"e5efee3e1879029620214737cf7a1344f\">Understand how the test case maps to executable automation</li>\n</ul><p>Instead of scanning through a large script to understand what it does, you can quickly identify relevant sections and make targeted updates.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630798310548\" width=\"624\" height=\"132\"></p><h2 id=\"h_01KJA5HNZECPN4GMM37A53J2YM\"> </h2><h2 id=\"h_01KJA7BYCCXB9NZP7X3ZDT7QJ1\"><strong>AI guidance in the chat</strong></h2><p>In addition to generating automation code, the Sembi IQ AI chat provides helpful guidance alongside the script.</p><p>The chat response:</p><ul>\n<li data-list-item-id=\"ec1cdd4c4f6e7a387244ddfa4202e384c\">Explains what the AI generated and how it maps to the test case steps</li>\n<li data-list-item-id=\"ea2c72b22ecf3aa73fa9c83a9c021e25d\">Highlights key decisions made during generation, such as selectors, waits, or assertions</li>\n<li data-list-item-id=\"e859c42fe831ea01f9482711b0fabb3ca\">Provides recommendations for next steps, for example:<ul>\n<li data-list-item-id=\"eff0ccd9ea87a73185807a169ba720b8d\">Where the script may need adjustment for your application</li>\n<li data-list-item-id=\"e3c28950120598cc436c6a5533b3c8716\">What to review or configure before running the test</li>\n<li data-list-item-id=\"e7cdd015c60883652698fc77e67bb50c8\">How to extend or improve the automation structure</li>\n</ul>\n</li>\n</ul><p>This makes it easier to understand, review, and refine the generated automation, especially when adapting it to an existing project or framework setup.</p><p>The chat is intended to support iteration. You can continue prompting the AI to clarify, adjust, or improve parts of the script as you work through testing and refinement.</p><p> </p><div style=\"margin: 24px 0; padding: 24px; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc;\">\n  <div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #111827;\">\n    <p style=\"margin: 0 0 8px; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280;\">\n      TestRail Academy\n    </p>\n\n    <h3 style=\"margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; color: #111827;\" id=\"h_01KKGRB5B6Y1XZWSZCEMX90B0N\">\n      Learn how to use Automate with AI\n    </h3>\n\n    <p style=\"margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: #374151;\">\n      Explore the TestRail Academy course to learn how to generate automation scripts with AI, understand the workflow, and get the best results from the feature.\n    </p>\n\n    <a href=\"https://academy.testrail.com/plus/courses/165/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block; padding: 12px 20px; font-size: 15px; font-weight: 600; color: #ffffff; background: #2563eb; text-decoration: none; border-radius: 8px;\">\n      Open Academy Course\n    </a>\n  </div>\n</div><p> </p><h2 id=\"h_01KJA7BW2MV95G0FPYB6TVYF7W\"><strong>Using and storing the generated automation</strong></h2><p>Once automation is generated, you can:</p><ul>\n<li data-list-item-id=\"e3656bad51b6ba08435608dbeabbb9f5a\">\n<strong>Copy and paste or download the script</strong> and use it in an existing automation project, or as a starting point for a new one</li>\n<li data-list-item-id=\"e5f796f6770dcdf98e4141b72e753b479\">\n<strong>Attach the generated automation to the test case</strong> to keep manual and automated testing linked</li>\n<li data-list-item-id=\"e98c55305d1115ced56d1d00c60a1af42\">\n<strong>Update the attached automation using AI</strong> if the test case context changes, such as updated steps or expected behaviour</li>\n</ul><p>This keeps manual test cases and their associated automation connected in one place.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630744305812\" width=\"624\" height=\"351\"></p><h2 id=\"h_01KJA5HNZM26RA40N8A6725QBT\"> </h2><h2 id=\"h_01KJA7BT3EHTGHYG1WNGG0Y7E9\"><strong>Updating automation scripts with AI</strong></h2><p>Automation scripts generated and attached to a test case can be updated using AI as the test case evolves.</p><p>When a test case is modified, users can:</p><ul>\n<li data-list-item-id=\"ea1cce4aa948b64db3b7b8223aa147175\">Reopen the attached AI-generated automation script</li>\n<li data-list-item-id=\"e34a65496252235eefacfca447c64702d\">Use AI to update or regenerate the script based on the latest test case content</li>\n<li data-list-item-id=\"e981641de2464ce1d3ac82c9953729f30\">Refine the automation to reflect new steps, validations, or changes in behaviour</li>\n</ul><p>This helps keep manual test cases and their associated automation in sync over time, without having to start from scratch.</p><p>As with initial generation, users should review and test updated automation scripts to ensure they behave as expected in their environment.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630798311828\" width=\"624\" height=\"351\"></p><h2 id=\"h_01KJA5HNZQJ7T74SS3F83J37D6\"> </h2><h2 id=\"h_01KJA7BQP7HNTHQFEFAP4Z7AX3\"><strong>Filtering test cases by AI status</strong></h2><p>The test case table includes new filters:</p><ul>\n<li class=\"wysiwyg-list-bold\" data-list-item-id=\"e159330d55748199c3849acf1ccda29a4\"><strong>AI Generated</strong></li>\n<li class=\"wysiwyg-list-bold\" data-list-item-id=\"e2b121a12113e75678bdc829b7aa00848\"><strong>AI Automated</strong></li>\n</ul><p>This makes it easy to:</p><ul>\n<li data-list-item-id=\"ee1522d2aa0ba5d7bbb6891da26b3605c\">Track automation coverage</li>\n<li data-list-item-id=\"edaeb53a00f271c6028fd2525fe7a79df\">Identify which test cases already have AI-generated scripts</li>\n<li data-list-item-id=\"e11fa1f1b7c4ffb814b8b4c73d611973d\">Plan further automation work</li>\n</ul><p><img src=\"https://support.testrail.com/hc/article_attachments/46630659397140\" width=\"624\" height=\"357\"></p><h2 id=\"h_01KJA5HNZVS5AHW2M3S9DERXJR\"><strong>Traceability</strong></h2><p>All automation script generation is fully traceable:</p><ul>\n<li data-list-item-id=\"e1d5998b080378809c90a9d194a55984d\">Changes appear in test case version history</li>\n<li data-list-item-id=\"ecde50f7f5d445ded5e1c365796634b39\">Events are recorded in Audit Logs</li>\n</ul><p>This provides transparency, accountability, and confidence for teams operating in regulated environments.</p><p><img src=\"https://support.testrail.com/hc/article_attachments/46630798313108\" width=\"624\" height=\"351\"></p><div role=\"alert\" aria-label=\"Attention\" style=\"border: 1px solid #d0d7de; border-left: 6px solid #fb8500; background: #fff7ed; padding: 12px 14px; border-radius: 8px; margin: 16px 0; font-family: inherit;\">\n  <div style=\"font-weight: 600; margin-bottom: 6px;\">⚠️ Attention</div>\n  <div>\n    <p style=\"margin: 0 0 8px 0;\">\n      This script includes code generated using LLM. Because this code is produced by an automated system, please note the following:\n    </p>\n    <ul style=\"margin: 0; padding-left: 20px;\">\n      <li style=\"margin-bottom: 6px;\">\n        <strong>No Official Support.</strong> We do not provide technical support, troubleshooting, or bug fixes for code generated by AI.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Review Required.</strong> You must manually audit and test all output before use. Automated systems may produce errors, security flaws, or outdated syntax.\n      </li>\n      <li style=\"margin-bottom: 6px;\">\n        <strong>Environmental Context.</strong> Generated steps may be incomplete or incorrect due to missing context. This includes unmentioned browser requirements, missing dependencies, or specific environment configurations.\n      </li>\n      <li>\n        <strong>User Responsibility.</strong> You are solely responsible for the performance, security, and maintenance of any generated code you choose to implement.\n      </li>\n    </ul>\n  </div>\n</div>","user_segment_ids":[]},{"id":43275062048660,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/43275062048660.json","html_url":"https://support.testrail.com/hc/en-us/articles/43275062048660-Installation-of-9-4-1-through-10-4-1-on-Docker","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":-1,"vote_count":1,"section_id":43274889885460,"created_at":"2025-11-12T18:16:21Z","updated_at":"2026-06-09T20:08:37Z","name":"Installation of 9.4.1 through 10.4.1 on Docker","title":"Installation of 9.4.1 through 10.4.1 on Docker","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-09T20:08:37Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>TestRail can be installed via Docker containers, making it much easier to get up and running with TestRail. This includes all dependencies and files needed for TestRail keeping installation time to a <strong>minimum</strong>.</p><div class=\"callout callout--success\">\n<h4 class=\"callout__title\" id=\"01G7Y9220DCHF3Q6BJ41M5WW27\"><a href=\"https://github.com/gurock/testrail-docker/archive/master.zip\" target=\"_self\"><em class=\"fas fa-download\"> </em> TestRail docker repository</a></h4>\n<p>TestRail docker zip package</p>\n<p>You can also clone everything from the <a href=\"https://github.com/gurock/testrail-docker\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail Docker Github Repo</a></p>\n</div><h2 id=\"Requirements\">Requirements</h2><p>These requirements apply to any TestRail version from 9.4.1 through 10.4.1.</p><ul class=\"list-bullet\">\n<li class=\"level1\" data-list-item-id=\"e7c7087b79161bdd77cf6abad04c5b8ce\">\n<a class=\"urlextern\" href=\"https://docs.docker.com/install/linux/docker-ce/ubuntu/\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"https://docs.docker.com/install/linux/docker-ce/ubuntu/\">Install Docker</a> + <a class=\"urlextern\" href=\"https://docs.docker.com/compose/install/\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"https://docs.docker.com/compose/install/\">Docker-compose</a> (on Linux, using <code class=\"inline-code\">pip</code> is recommended)</li>\n<li class=\"level1\" data-list-item-id=\"ef30fa4839a9ff8f1a891b16f3d1335e8\"><div class=\"li\">Some basic understanding of docker <em>(e.g knowing what containers, images, detached mode, … are)</em> → See the official <a href=\"https://docs.docker.com/get-started\" target=\"_blank\" rel=\"noopener noreferrer\">Docker “Get Started” documentation</a>\n</div></li>\n<li class=\"level1\" data-list-item-id=\"ec7ad7d3b4ed2ae3a0f95c8a1e07ce378\"><div class=\"li\">Optional: If you’re using the <code class=\"inline-code\">quickstart.sh</code> script, also install <code class=\"inline-code\">sudo</code> and <code class=\"inline-code\">ip</code> (usually pre-installed on most systems)</div></li>\n</ul><div class=\"lt-article__body\">\n  <div style=\"background-color: #e8f4fd; border-left: 4px solid #0077cc; border-radius: 4px; padding: 12px 16px;\">\n    <p>\n      <strong>ℹ️ Important Note:</strong>\n    </p>\n    <p>\n      Starting with TestRail 9.5.1 Server, <strong data-start=\"2152\" data-end=\"2182\">Cassandra is officially deprecated and enforcement is in place.</strong>\n    </p>\n    <ul>\n      <li>\n        <p data-start=\"2189\" data-end=\"2228\">\n          Admins must first run the <strong data-start=\"2434\" data-end=\"2465\">Cassandra deprecation script</strong> in <strong data-start=\"2434\" data-end=\"2465\">version 9.4.1</strong> before\n          upgrading to more recent versions.\n        </p>\n      </li>\n      <li>\n        <p data-start=\"2189\" data-end=\"2228\">\n          If the script has not been executed, the upgrade to more recent\n          versions\n          will\n          be blocked and a  <strong data-start=\"2152\" data-end=\"2182\">warning message will be displayed</strong> \n          during the upgrade process.\n        </p>\n        <p>\n          <strong>👉 </strong>Please check our\n          <a href=\"https://support.testrail.com/hc/en-us/sections/39794668286484-Cassandra-Deprecation\">Cassandra Deprecation</a>\n          documentation.\n        </p>\n      </li>\n    </ul>\n  </div>\n  <h2 id=\"Quickstartwithscript\">Quick start with script</h2>\n  <p>Follow these steps:</p>\n  <ol class=\"list-colored\">\n    <li>\n      Run <code class=\"inline-code\">quickstart.sh</code>\n    </li>\n    <li>\n      Type in two passwords – one for the “normal” database user and one\n      for\n      root\n    </li>\n    <li>Wait a few moments – TestRail will be downloaded and set up</li>\n  </ol>\n  <p>\n    TestRail should be accessible via the following URL: http://localhost:8000\n  </p>\n  <p>\n    Finish the installation through the web UI (use the values printed by\n    installer\n    at the end).\n  </p>\n  <p>\n    Once inside the installation wizard,\n    <strong>you must paste the following path for Chrome Headless Shell:</strong>\n  </p>\n  <ul>\n    <li>\n      <code class=\"inline-code\">/usr/bin/chrome-headless-shell-linux64/chrome-headless-shell</code>\n    </li>\n  </ul>\n  <h3 id=\"h_01KNHVDWWVVT1BN7SSQBXH33A8\">\n    Update Jira token configuration (Required for versions below 10.1.4)\n  </h3>\n  <p>\n    If you are upgrading from a version earlier than <strong>10.1.4</strong>,\n    you must update the Jira token configuration file as part of this process.\n  </p>\n  <ol>\n    <li>Download the update files <a href=\"https://tr-19413.s3.us-east-1.amazonaws.com/patches.zip\">here</a>.</li>\n    <li>\n      Update the files:\n      <ol>\n        <li>\n          Locate the TestRail Server container name, for example\n          <code class=\"inline-code\">testrail-docker-srv</code>\n        </li>\n        <li>\n          Run the command below to copy the new\n          <code class=\"inline-code\">consts.php</code>\n          file into the container.\n          <pre><code>docker cp patches/testrail-&lt;version&gt;/testrail/app/config/consts.php testrail-docker-srv:/var/www/testrail/app/config</code></pre>\n        </li>\n        <li>\n          Set the correct file ownership.\n          <pre><code>docker exec -it testrail-docker-srv \\\nchown www-data:www-data /var/www/testrail/app/config/consts.php</code></pre>\n        </li>\n      </ol>\n    </li>\n  </ol>\n  <h2 id=\"RunningTestRailusingdockercompose\">Running TestRail using docker-compose</h2>\n  <p>\n    The compose file is configured via environment variables – it’s suggested\n    to\n    use a .env file. More about a .env file is available on the\n    <a href=\"https://docs.docker.com/compose/env-file/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker env files documentation</a>. \n  </p>\n  <ol class=\"list-colored\">\n    <li>\n      First, create a .env file with at least the mandatory variables for:\n      <ul class=\"list-bullet\">\n        <li>DB_USER</li>\n        <li>DB_NAME</li>\n        <li>DB_PWD</li>\n        <li>DB_ROOT_PWD</li>\n      </ul>\n    </li>\n    <li>\n      Next, run <code class=\"inline-code\">docker-compose up</code>\n      (it\n      will\n      take a few minutes the very first time).\n    </li>\n    <li>TestRail should be up! Access it via: http://localhost:8000</li>\n    <li>\n      Re-enter the values you specified in the .env file when the TestRail\n      installer\n      asks for the database settings.\n    </li>\n    <li>\n      To remove the instance, press <strong>Ctrl+C</strong> and\n      then\n      run <code class=\"inline-code\">docker-compose down</code>.\n    </li>\n  </ol>\n  <h2 id=\"Environmentvariables\">Environment variables</h2>\n  <p>\n    It’s suggested to create a local .env file, to specify user- or machine-specific\n    variables (for more information, see the <a href=\"https://docs.docker.com/compose/env-file/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker env files documentation</a>).\n    The syntax is simple: e.g. ‘HTTP_PORT=8000’\n  </p>\n  <p>\n    Environment variables can also be set directly in the shell with the\n    same\n    syntax\n    and then using <code class=\"inline-code\">docker-compose</code>.\n  </p>\n  <ul class=\"list-bullet\">\n    <li>DB_PORT</li>\n    <li>HTTP_PORT</li>\n    <li>HTTPS_PORT</li>\n    <li>DB_URL (e.g. http://internal.yourcompany.com/5.7.sql)</li>\n  </ul>\n  <h2 id=\"PrepopulateddatabasesandTestRailsconfigphp\">Pre-populated databases and TestRail’s config.php</h2>\n  <p>\n    Via the <code class=\"inline-code\">DB_URL variable</code>, it’s also\n    possible\n    to provide a SQL-dump to be downloaded by the container, so TestRail\n    is already\n    pre-configured. For proper functionality, the <code class=\"inline-code\">config.php</code> file\n    needs to be provided. Simply copy it into the <code class=\"inline-code\">_config</code> folder.\n    Ensure that the values in the <code class=\"inline-code\">config.php</code> file\n    match the database settings for user and password, which are specified\n    in\n    the\n    compose file for the db.\n  </p>\n  <h2 class=\"sectionedit4\" id=\"UsingComposefiles\">Using Compose files</h2>\n  <h3 class=\"sectionedit4\" id=\"01G7Y85D36HN74DP547B9YPXRY\">General usage</h3>\n  <pre><code class=\"language-auto shell\">docker-compose up\ndocker-compose down</code></pre>\n  <p>\n    The argument <code class=\"inline-code\">up</code> starts the\n    container;\n    while <code class=\"inline-code\">down</code> stops everything.\n    The <code class=\"inline-code\">docker-compose</code> CLI\n    reference can be found <a href=\"https://docs.docker.com/compose/reference/\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.\n  </p>\n  <h3 id=\"01G7Y85D363BDRQ998CCFAVYZP\">Additional useful options:</h3>\n  <figure style=\"width: 100%;\" class=\"wysiwyg-table wysiwyg-table-align-left\">\n    <table style=\"border-collapse: collapse;\" class=\"table--hover\">\n      <thead>\n        <tr>\n          <th style=\"width: 20.4286%;\">Option</th>\n          <th style=\"width: 79.4286%;\">Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td style=\"width: 20.4286%;\">\n            <code class=\"inline-code\">-v</code> (remove named\n            volumes)\n          </td>\n          <td style=\"width: 79.4286%;\">\n             This is important to remove temporary volumes after\n            shutdown\n            and is recommended to be used. If the volumes should\n            not\n            be purged,\n            don’t use this parameter. However, be aware that this\n            might\n            still\n            cause some side effects.\n          </td>\n        </tr>\n        <tr>\n          <td style=\"width: 20.4286%;\">\n            <code class=\"inline-code\">-f</code> (file)\n          </td>\n          <td style=\"width: 79.4286%;\">\n            Can be used to specify a different compose file (by default <strong>docker-compose.yml</strong> is\n            used)\n          </td>\n        </tr>\n        <tr>\n          <td style=\"width: 20.4286%;\">\n            <code class=\"inline-code\">-p</code> (project)\n          </td>\n          <td style=\"width: 79.4286%;\">\n            Required if multiple TestRail instances should be started.\n            Otherwise, <code class=\"inline-code\">docker-compose</code> will\n            interact with an already running container.\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </figure>\n  <p>\n    The name of the folder docker-compose is started in (in this case, ‘internal-docker’)\n    is used as a project name and is prepended to all spawned containers.\n  </p>\n  <p>\n    <strong>Recommendation: </strong>Use <code class=\"inline-code\">docker-compose down -v</code>,\n    as it removes named and anonymous volumes!\n  </p>\n  <h2 id=\"Generalremarksonthecomposefiles\">General remarks on the compose files</h2>\n  <ul class=\"list-bullet\">\n    <li>All compose files rely on additional volumes:</li>\n    <li>\n      <code class=\"inline-code\">testrail_root</code> contains the\n      installation\n      and gets mounted to <code class=\"inline-code\">/var/www/testrail</code>\n    </li>\n    <li>\n      <code class=\"inline-code\">testrail_opt</code> contains uploaded\n      files\n      etc. and gets mounted to <code class=\"inline-code\">/opt/testrail</code>\n    </li>\n    <li>\n      <code class=\"inline-code\">testrail_db</code> contains the database\n      and\n      gets mounted to <code class=\"inline-code\">/var/lib/mysql.</code>\n    </li>\n    <li>\n      <code class=\"inline-code\">testrail_config</code> contains the\n      config.php\n      file, which configures TestRail and is mounted to <code class=\"inline-code\">/var/www/testrail/config</code>\n    </li>\n  </ul>\n  <p>\n    Containers are connected though a <code class=\"inline-code\">testrail</code> bridged\n    network. Start-order is important – php needs to be first, followed by\n    webserver\n    and DB.\n  </p>\n  <h1 id=\"h_01J0R7EMZ4K8HABYMN0ESMGF1Y\">Migrating &amp; Upgrading TestRail</h1>\n  <h2 id=\"RunningTestRailwithinDockercontainers\">Running TestRail within Docker containers</h2>\n  <p>Please have a look at the Readme in the Github repo.</p>\n  <p>\n    TestRail uses <a href=\"https://docs.docker.com/compose/\" target=\"_blank\" rel=\"noopener noreferrer\">docker-compose</a> to\n    run the individual services necessary and link the containers together.\n  </p>\n  <p>\n    To start/stop TestRail, these two commands do the job. Execute them in\n    the\n    root\n    folder of the repo:\n  </p>\n  <pre><code class=\"language-auto shell\">docker-compose up\ndocker-compose down</code></pre>\n  <p>\n    To start the containers in detached mode, just add a -d parameter: <code class=\"inline-code\">docker-compose up -d</code>\n  </p>\n  <p>\n    The docker-compose files contain a number of variables with pre-assigned\n    default\n    values. To assign custom values for these variables, either create a\n    .env\n    file\n    (as described on the\n    <a href=\"https://docs.docker.com/compose/env-file/\" target=\"_blank\" rel=\"noopener noreferrer\">docker env files documentation</a> –\n    it’s a simple text file with a VAR=VALUE syntax).\n  </p>\n  <p>\n    Otherwise, it’s also possible to provide the env-variables via command\n    line\n    like\n    export <code class=\"inline-code\">HTTP_PORT=8008 &amp;&amp; docker-compose up -d.</code>\n  </p>\n  <p>\n    The site\n    <a href=\"https://linuxhint.com/bash-environment-variables/\" target=\"_blank\" rel=\"noopener noreferrer\">linuxhint.com</a> provides\n    a good overview of how to use env-variables in bash.\n  </p>\n  <h2 id=\"MigratingfromanexistingTestRailServerinstallationtocontainers\">\n    Migrating from an existing TestRail Server installation to containers\n  </h2>\n  <h3 id=\"01G6TNGBP8BCCQ086JTVQE0DHY\">Using a database within containers</h3>\n  <p>\n    If you’ve run a dedicated DB just for TestRail, it makes sense to also\n    run\n    the\n    DB in a container. Follow these steps to upgrade:\n  </p>\n  <ol class=\"list-colored\">\n    <li>\n      Check the privileges of the mysql user before migrating. If a user\n      was\n      created\n      with ‘@localhost’ (restricting access to “from localhost only”),\n      you\n      need\n      to create a new user with sufficient right to allow remote connections:\n      <ul class=\"list-bullet\">\n        <li>\n          Access the DB with <code class=\"inline-code\">mysql -p</code> and\n          list all users + host: <code class=\"inline-code\">SELECT user, host FROM mysql.user;</code>\n        </li>\n        <li>\n          If the TestRail user has ‘localhost’ or some IP in the ‘host’\n          column\n          (and not ‘%’), a new user needs to be created – CREATE\n          USER\n          ‘testraildocker’@’%’ IDENTIFIED BY ‘newpassword’; – &gt;<code class=\"inline-code\">GRANT ALL ON testrail.* TO 'testraildocker'@'%';</code><br>\n          <em>(The ‘%’ allows remote connections from any IP. If you know your docker subnet – usually 172.16.255.255 – use the respective internal docker subnet instead of ‘%’ for security hardening.)</em>\n        </li>\n      </ul>\n    </li>\n    <li>\n      Copy the whole content of <code class=\"inline-code\">/var/lib/mysql</code> to\n      the <code class=\"inline-code\">_mysql</code> folder and\n      the <code class=\"inline-code\">config.php</code> file\n      to <code class=\"inline-code\">_config</code>.\n    </li>\n    <li>\n      If you want to keep attachments, reports, logs, and audit-logs, create\n      the\n      folders <code class=\"inline-code\">logs, audit, reports, attachments</code> in\n      the <code class=\"inline-code\">_opt</code> folder and copy\n      the\n      content\n      from the old location to the newly created folders.\n    </li>\n    <li>\n      <p>\n        Edit the <code class=\"inline-code\">config.php</code> file\n        and\n        change the ‘DB_HOSTNAME’ to <code class=\"inline-code\">db:3306</code>.\n        Also, change the LOG_PATH and the AUDIT_PATH to:\n      </p>\n      <pre><code class=\"language-auto php\">define('LOG_PATH', '/opt/testrail/logs/');\ndefine('AUDIT_PATH', '/opt/testrail/audit/');</code></pre>\n    </li>\n    <li>\n      If you’d like to use a specific port to access TestRail, create a\n      .env\n      file\n      (more here) and specify the port via\n      <code class=\"inline-code\">HTTP_PORT=&lt;portNumber&gt;</code>\n    </li>\n    <li>\n      Run <code class=\"inline-code\">docker-compose up -d</code>\n    </li>\n  </ol>\n  <p>\n    <span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\">Also change the paths for </span><strong style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\">attachments</strong><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\"> and </span><strong style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\">reports</strong><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\"> under </span><strong style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\">TestRail &gt; Administration &gt; Site Settings</strong><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\"> to: </span><code style=\"font-size: 1.1em;\" class=\"inline-code\">/opt/testrail/attachments</code><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 1.1em;\"> and </span><code style=\"font-size: 1.1em;\" class=\"inline-code\">/opt/testrail/reports</code>\n  </p>\n  <h2 class=\"sectionedit4\" id=\"Usinganexternaldatabase\">Using an external database</h2>\n  <p class=\"sectionedit4\">\n    If you’re using an<strong> external</strong> database server,\n    leave\n    the DB server as it is and follow these steps:\n  </p>\n  <ol class=\"list-colored\">\n    <li>\n      Copy the <code class=\"inline-code\">config.php</code> file\n      to <code class=\"inline-code\">_config</code>.\n    </li>\n    <li>\n      If you want to keep attachments, reports, logs, and audit logs, create\n      the\n      folders <code class=\"inline-code\">logs</code>, <code class=\"inline-code\">audit</code>, <code class=\"inline-code\">reports</code>,\n      and <code class=\"inline-code\">attachments</code> in the <code class=\"inline-code\">_opt folder</code>,\n      and copy the content from the old location to the newly created folders.\n    </li>\n    <li>\n      <p>\n        Edit the LOG_PATH and the AUDIT_PATH in the config.php file to:\n      </p>\n      <pre><code class=\"language-auto php\">define('LOG_PATH', '/opt/testrail/logs/');\ndefine('AUDIT_PATH', '/opt/testrail/audit/');</code></pre>\n    </li>\n    <li>\n      If you’d like to use a specific port to access TestRail, create a\n      .env\n      file\n      (more here) and specify the port via HTTP_PORT=&lt;portNumber&gt;\n    </li>\n    <li>\n      Run <code class=\"inline-code\">docker-compose up -d</code>\n    </li>\n  </ol>\n  <div class=\"callout callout--warning\">\n    <p>\n      Also change the paths for <strong>attachments</strong> and <strong>reports</strong> under <strong>TestRail&gt;Administration&gt;Site Settings</strong> to: <code class=\"inline-code\">/opt/testrail/attachments</code> and <code class=\"inline-code\">/opt/testrail/reports</code>\n    </p>\n  </div>\n  <h2 id=\"01G7Y80YTCGZ8CZ8VVJD1TW1HA\">Upgrading TestRail if you are already using containers</h2>\n  <h3 id=\"01G6TNGBP8YFF1KC6FEZ68Z5R3\">Option 1: Quick ‘n’ dirty</h3>\n  <p>\n    Simply use the upgrade script: <code class=\"inline-code\">upgradeTestRail.sh</code><br>\n    This will upgrade TestRail if you stayed with the default configuration\n    created\n    by the quickstart script. Then you will need to follow these steps:\n  </p>\n  <ol class=\"list-colored\">\n    <li style=\"box-sizing: border-box; margin-bottom: calc(var(--line-height-computed) / 2);\">\n      Locate the Apache docker container by running\n      <code class=\"inline-code\">docker ps</code>\n    </li>\n    <li style=\"box-sizing: border-box; margin-bottom: calc(var(--line-height-computed) / 2);\">\n      Copy <code class=\"inline-code\">CONTAINER ID</code> for\n      <code class=\"inline-code\">testrail/apache</code>image\n    </li>\n    <li>\n      Run\n      <code class=\"inline-code\">docker exec -it &lt;container_id&gt;</code> bash\n      to enter docker container\n    </li>\n    <li>\n      Navigate to <code class=\"inline-code\">/var/www/testrail</code> directory\n    </li>\n    <li>\n      Run <code class=\"inline-code\">php run.php update</code>\n    </li>\n  </ol>\n  <p>\n    If you’re using custom locations for the DB-files, etc. use option 2,\n    below.\n  </p>\n  <h3 id=\"01G6TNGBP8WG4F659DJ6Z2J0A5\">Option 2: Doing the upgrade step-by-step</h3>\n  <p>\n    To upgrade TestRail from an older to a newer version (e.g. 6.0.0 to 6.0.1),\n    perform\n    the following steps:\n  </p>\n  <ol class=\"list-colored\">\n    <li>\n      Shut down the containers: <code class=\"inline-code\">docker-compose down -v</code>\n    </li>\n    <li>\n      (Optional) If you’ve specified a dedicated TestRail version in e.g.\n      a <code class=\"inline-code\">.env</code> file\n      – set the version you want to upgrade to.\n    </li>\n    <li>\n      Pull the images: <code class=\"inline-code\">docker-compose pull</code>\n    </li>\n    <li>Recommended: Create backups (see below)</li>\n    <li>\n      Start TestRail <code class=\"inline-code\">docker-compose up -d</code>\n    </li>\n    <li>\n      Locate the Apache docker container by running\n      <code class=\"inline-code\">docker ps</code>\n    </li>\n    <li>\n      Copy <code class=\"inline-code\">CONTAINER ID</code> for\n      <code class=\"inline-code\">testrail/apache</code> image\n    </li>\n    <li>\n      Run\n      <code class=\"inline-code\">docker exec -it &lt;container_id&gt;</code> bash\n      to enter docker container\n    </li>\n    <li>\n      Navigate to <code class=\"inline-code\">/var/www/testrail</code> directory\n    </li>\n    <li>\n      Run <code class=\"inline-code\">php run.php update</code>\n    </li>\n  </ol>\n  <div class=\"callout callout--warning\">\n    <h4 class=\"callout__title\" id=\"01G7Y7YN2GTG4Q8CYV8MMS6KH0\">Important</h4>\n    <p>\n      Create a backup of the folders containing the database and the folder\n      which\n      contains the logs, reports, attachments, and audits. By default,\n      these\n      folders\n      are <code class=\"inline-code\">_mysql</code> and <code class=\"inline-code\">_opt</code> in\n      the local directory. Also create a copy of the <code class=\"inline-code\">config.php</code> files\n      located in <code class=\"inline-code\">_config</code>.\n    </p>\n  </div>\n  <p>\n    You can also do a “safe” upgrade by copying these three folders to a\n    new\n    location\n    and then running <code class=\"inline-code\">docker-compose</code>.\n  </p>\n  <h2 id=\"Advancedtopics\">Advanced topics</h2>\n  <h3 id=\"01G6TNGBP8460J9HQ9MGT8GGP4\">Apache vs. nginx and MySQL vs. MariaDB</h3>\n  <p>\n    TestRail currently officially supports Apache + MySQL. Feel free to give\n    nginx\n    and mariadb a try – however, please note that this is not officially\n    supported.\n    For the case you find any issues with these two systems, please let us\n    know,\n    so we can get closer to a potential nginx/mariadb support in future.\n  </p>\n  <h3 id=\"01G6TNGBP80HJ3ZWHVA1NZAHS6\">Creating backups</h3>\n  <p>\n    All containers are stateless, so they can safely be removed. Relevant\n    data\n    is\n    stored in local volumes: by default in <code class=\"inline-code\">_config</code>, <code class=\"inline-code\">_mysql</code>,\n    and <code class=\"inline-code\">_opt</code>. Just create a backup\n    of these\n    folders.\n  </p>\n  <h3 id=\"01G6TNGBP9JSH7BFQXW41S9FVN\">Environment variables</h3>\n  <ul class=\"list-bullet\">\n    <li>TESTRAIL_VERSION</li>\n    <li>OPT_PATH</li>\n    <li>CONFIG_PATH</li>\n    <li>MYSQL_PATH</li>\n    <li>HTTP_PORT</li>\n    <li>DB_PORT</li>\n    <li>DB_URL</li>\n    <li>DB_USER</li>\n    <li>DB_PWD</li>\n    <li>DB_NAME</li>\n    <li>DB_ROOT_PWD</li>\n    <li>TR_DEFAULT_TASK_EXECUTION</li>\n  </ul>\n  <h3 id=\"01G6TNGBP99TBTV0CGW5YWDKSH\">Building the images yourself</h3>\n  <p>\n    It’s also possible to build the Docker images by yourself. All Dockerfiles\n    can\n    be found in <a href=\"https://github.com/gurock/testrail-docker/tree/master/Dockerfiles\" target=\"_blank\" rel=\"noopener noreferrer\">this folder</a>.\n    Build instructions are in the respective subfolders.\n  </p>\n  <p> </p>\n</div>","user_segment_ids":[]},{"id":43274236349076,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/43274236349076.json","html_url":"https://support.testrail.com/hc/en-us/articles/43274236349076-Installation-Requirements-9-4-1-to-10-4-1","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":43228968454676,"created_at":"2025-11-12T18:00:19Z","updated_at":"2026-06-09T20:08:05Z","name":"Installation Requirements 9.4.1 to 10.4.1","title":"Installation Requirements 9.4.1 to 10.4.1","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-06-09T20:08:05Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<div class=\"callout\">TestRail 10.4.1 is now available for all Server customers. Customers who wish to upgrade to TestRail 10.4.1 can <a href=\"https://secure.testrail.com/portal\">download the installation files from the TestRail Billing Portal</a>.</div><p class=\"sectionedit1\">TestRail Server is a web application that can be installed directly on your web or application server. It uses a database (SQL Server or MySQL) to store the application data. Please see below for the exact server requirements and supported versions. <strong>These requirements apply to all TestRail Server releases from</strong> <strong data-start=\"1444\" data-end=\"1467\">9.4.1 through 10.4.1</strong>.</p><h2 id=\"h_01J0R52DD0XTQSA6GTZ27SZB4T\">Windows Server Requirements</h2><ul class=\"list-bullet\">\n<li class=\"level1\" data-list-item-id=\"e2ef7151425359289e5ee84b870bedf19\"><div class=\"li\">\n<em>Operating System: </em>Windows Server 2016, 2019, or 2022</div></li>\n<li class=\"level1\" data-list-item-id=\"e6b9dd487058b189502462f3976313857\"><div class=\"li\">\n<em>Database</em>: <span style=\"color: #202020;\">MS SQL Server (Version 2019 or 2022 supported). </span>MySQL is not supported in a Windows environment.</div></li>\n<li class=\"level1\" data-list-item-id=\"ec6d38868e0552328bac823cedd1ffd4b\"><div class=\"li\">\n<em>Web server</em>: IIS with FastCGI / PHP integration</div></li>\n<li class=\"level1 ck-list-marker-italic\" data-list-item-id=\"e32a7525994b49286cc3debc034277412\">\n<div class=\"li\"><em>PHP version:</em></div>\n<ul>\n<li data-list-item-id=\"ebd76d8f1acd29e540985e57e91a7f39e\"><div class=\"li\">8.1 for TestRail 9.4.1-&gt;9.8.1 (with curl, fileinfo, gd, imagick, mbstring, openssl, and sqlsrv_81_nts_x64)</div></li>\n<li class=\"level1\" data-list-item-id=\"e889619b3bfe3774e30c8763be3f38cb1\"><div class=\"li\">8.3 for TestRail 10.0.1 onwards (recommended)</div></li>\n</ul>\n</li>\n<li class=\"level1\" data-list-item-id=\"eb7707eec43383c01e032df5e5308ec4d\"><div class=\"li\"><a href=\"https://support.testrail.com/hc/en-us/articles/43424296402324-Preparing-your-Windows-server-for-the-installation\" target=\"_blank\" rel=\"noopener noreferrer\">ionCube PHP Loader extension</a></div></li>\n</ul><p>For more information about installing TestRail Server in a Windows server environment, read Preparing your Windows server for the installation: <a href=\"https://support.testrail.com/hc/en-us/articles/43424296402324-Preparing-your-Windows-server-for-the-installation-versions-9-4-1-to-9-8-1\">9.4.1 to 9.8.1</a>, <a href=\"https://support.testrail.com/hc/en-us/articles/46410927637908-Preparing-your-Windows-server-for-the-installation-versions-10-0-1-onwards\">10.0.1 onwards</a> or <a href=\"https://support.testrail.com/hc/en-us/articles/43275062048660-Installation-of-9-4-1-trough-9-7-1-on-Docker\">Installation on Docker: Overview</a>. </p><h2 id=\"h_01J0R52DD0A95QY1M1RYWYXCNW\">Unix/Linux Server Requirements</h2><ul class=\"list-bullet\">\n<li class=\"level1\" data-list-item-id=\"e3d4b117d012c1215db83f04e9ed87674\"><div class=\"li\">\n<em>Operating System</em>: We test TestRail with various Linux distributions, but any standard Unix-based server operating system with Apache, MySQL and PHP support will work. We recommend Ubuntu Server LTS versions.</div></li>\n<li class=\"level1\" data-list-item-id=\"e436849efe822865632cb8a2c3616fbf6\"><div class=\"li\">\n<em>Database</em>: MySQL (5.5, 5.7, 8.0, 8.1, 8.4.5) or MariaDB 10.1 or later</div></li>\n<li class=\"level1\" data-list-item-id=\"e27511641924ae266f2b9b7a2a16027b3\"><div class=\"li\">\n<em>Web server</em>: Apache with mod_php or equivalent</div></li>\n<li class=\"level1 ck-list-marker-italic\" data-list-item-id=\"ea281e0743c7c4eac7df259d5b9385004\">\n<div class=\"li\"><em>PHP version:</em></div>\n<ul>\n<li class=\"level1\" data-list-item-id=\"ec9e0bb4cf3a4a57e43d778408b9e3bc9\"><div class=\"li\">8.1 for TestRail 9.4.1-&gt;9.8.1 (with curl, fileinfo, gd, imagick, mbstring, openssl, and mysql extensions)</div></li>\n<li class=\"level1\" data-list-item-id=\"e24ff69049e541df6132d93e6bb496563\"><div class=\"li\">8.3 for TestRail 10.0.1 onwards (with curl, fileinfo, gd, imagick, mbstring, openssl, and mysql extensions)</div></li>\n</ul>\n</li>\n<li class=\"level1\" data-list-item-id=\"e936463e6b4d6c5a5fc68fea3a12ad906\"><div class=\"li\"><a href=\"https://support.testrail.com/hc/en-us/articles/39190248185876-Preparing-your-Unix-Linux-server-for-installation-9-3-1-1020\" target=\"_blank\" rel=\"noopener noreferrer\">ionCube PHP Loader extension</a></div></li>\n</ul><p>For more information about installing TestRail Server in a Unix or Linux server environment, read Preparing your Unix/Linux server for the installation:  <a href=\"https://support.testrail.com/hc/en-us/articles/43354856415124-Preparing-your-Unix-Linux-server-for-installation-versions-9-4-1-to-9-8-1\">9.4.1 to 9.8.1</a>, <a href=\"https://support.testrail.com/hc/en-us/articles/46410277480980-Preparing-your-Unix-Linux-server-for-installation-versions-10-0-1-onwards\">10.0.1 onwards</a> or <a href=\"https://support.testrail.com/hc/en-us/articles/43275062048660-Installation-of-9-4-1-trough-9-7-1-on-Docker\">Installation on Docker: Overview</a>.</p><h2 id=\"h_01J0R52DD1G5STJ5VFNFAEVG9G\">Web browsers</h2><ul class=\"list-bullet\">\n<li class=\"level1\" data-list-item-id=\"ee7770c4ac771d68cd90f23f69a681366\"><div class=\"li\">Microsoft Edge (recent versions)</div></li>\n<li class=\"level1\" data-list-item-id=\"e19e8aba2b888bd6049657df75d599272\"><div class=\"li\">Firefox (recent versions)</div></li>\n<li class=\"level1\" data-list-item-id=\"efdae9a53e80f0ec11ea2c0f90404ebad\"><div class=\"li\">Chrome, Safari, Webkit (recent versions)</div></li>\n</ul><h2 id=\"Hardwarerequirements\">Hardware requirements</h2><p>We recommend adhering to the following list of requirements as a minimum starting point for your TestRail Server installation:</p><ul class=\"list-bullet\">\n<li class=\"level1\" data-list-item-id=\"eaebbdf991f6a105168e13d29bb0fc7b0\"><div class=\"li\">CPU &amp; Cores: Quad-core CPU</div></li>\n<li class=\"level1\" data-list-item-id=\"eb6abd6363f8544639bf0a9f16b6f2d11\"><div class=\"li\">Memory: 16GB+ (Linux) or 16GB+ (Windows Server)</div></li>\n<li class=\"level1\" data-list-item-id=\"e41bddc83ed3a26cee123fa434d43f648\"><div class=\"li\">Disk/IO performance: server-grade disk/IO subsystem recommended</div></li>\n<li class=\"level1\" data-list-item-id=\"ecb29cffd4088437c8359bd1c23af3720\"><div class=\"li\">Disk space: 200MB+ per user, in addition to system space. (e.g. 20-40GB+ for overall machine)</div></li>\n<li class=\"level1\" data-list-item-id=\"ede8152c850b630de144020b5f08a3a4b\"><div class=\"li\">Virtualization supported: Yes, with server-grade VM product.</div></li>\n</ul><p>Check out our <a href=\"https://www.gurock.com/testrail/docs/admin/server/optimizing\" target=\"_blank\" rel=\"noopener noreferrer\">optimization tips</a> for large installations.</p><p>\n    <!-- START note -->\n  </p><div class=\"callout callout--info\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01J0R52DD16XX8QM5RPGK2F4XC\"><em class=\"fas fa-info-circle\"> </em></h4>\n<p>If you’re looking for information on upgrading TestRail, <span style=\"color: #000000;\">please check out the guides to upgrade TestRail</span> on <a href=\"https://support.testrail.com/hc/en-us/articles/43274872929940-Upgrading-TestRail-from-8-0-4-through-9-7-1-in-Windows\">Windows</a> and <a href=\"https://support.testrail.com/hc/en-us/articles/43424171680916-Installing-TestRail-Unix-Linux\">Unix/Linux</a> environments.</p>\n</div>","user_segment_ids":[]},{"id":42270088365460,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/42270088365460.json","html_url":"https://support.testrail.com/hc/en-us/articles/42270088365460-Integrate-with-Aha-Develop","author_id":30878352880660,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":7169027410708,"created_at":"2025-10-16T10:24:44Z","updated_at":"2026-01-21T21:03:41Z","name":"Integrate with Aha! Develop","title":"Integrate with Aha! Develop","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-01-21T21:03:38Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>The <a href=\"https://www.aha.io/develop/overview\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Aha! Develop</strong></a><strong> </strong>integration connects testing and development workflows seamlessly, bringing real-time QA insights directly into the Aha! workspace. </p><p><a href=\"https://www.aha.io/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Aha!</strong></a> is a leading product development platform that helps teams plan, prioritize, and deliver exceptional software. Its Aha! Develop module is built for engineering teams, providing a connected space to manage sprints, track progress, and stay aligned with overall product strategy.</p><p>By integrating Aha! Develop with TestRail, development teams gain direct visibility into testing activity - including linked test runs, results, and reruns - without leaving Aha!. This alignment keeps QA and development efforts synchronized and efficient.</p><h2 id=\"h_01K7PCE7RX9J8TVRQN7XFB28FP\">Overview</h2><p>When QA and development take place in separate tools, collaboration can slow down. Developers may not immediately know whether a feature has passed testing, if it is blocked, or why it failed - while testers continue updating results in TestRail and sharing updates manually.</p><p>The TestRail integration for <a href=\"https://www.aha.io/develop/overview\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Aha! Develop</strong></a> closes this gap by connecting both workflows. It adds a dedicated <strong>Test tab</strong> inside Aha! features, requirements, and sprints, enabling links to TestRail test cases, test runs, or individual tests. Once linked, results are updated in real time, giving all team members a shared view of testing progress.</p><h3 id=\"h_01K7PCE7RXWWVKGC40MZ1DXY76\">Key Benefits</h3><ul>\n<li data-list-item-id=\"ec31ab2b546189c8049223685c4986c13\">\n<strong>Aligned workflows:</strong> QA and development share a unified view of testing status without switching tools.</li>\n<li data-list-item-id=\"edf6f384b4fface44499f69c2fd1c6004\">\n<strong>Faster feedback loops:</strong> Test statuses and failure reasons are visible directly in Aha!.</li>\n<li data-list-item-id=\"e8220ab4090aa8c92427577522bb9d831\">\n<strong>Reduced manual effort:</strong> Eliminates the need to copy or duplicate updates across systems.</li>\n<li data-list-item-id=\"ec224c252c218de9082e10b48a7e21afd\">\n<strong>Improved visibility:</strong> Team leads and stakeholders can track development and testing progress side by side.</li>\n</ul><hr><h2 id=\"h_01K7PCE7RXKNXVJ52NP4F8RTPE\">How the integration works</h2><p>The TestRail integration for Aha! Develop connects both systems through the <a href=\"https://support.aha.io/aha-develop/support-articles/extensions/extension-library~7444668577278675123#:~:text=Integration%20with%20TestRail.%20Link%20features%20and%20sprints%20in%20Aha!%20Develop%20to%20test%20cases%20and%20runs%2C%20view%20the%20latest%20test%20status%2C%20and%20remotely%20create%20test%20cases%20from%20Aha!%20Develop.\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Aha! Extension Library</strong></a>.<br>Once installed, it enables a <strong>Test tab</strong> within Aha! Develop where TestRail test activities can be linked and monitored.</p><h3 id=\"h_01K7PCE7RXKXYFA6BJSAX6FJ0X\">From Aha! Develop, teams can:</h3><ul>\n<li data-list-item-id=\"e0ff7de3a858a8b51b93aec01deafaf67\">\n<strong>Link</strong> existing test runs, test cases, or individual tests from a TestRail instance.</li>\n<li data-list-item-id=\"e7bf30d8b49b52a6e07601bcf3dd4c8f3\">\n<strong>Create</strong> new test cases directly from a feature or requirement record in Aha!.</li>\n<li data-list-item-id=\"e7d51886e329e833ed1c8ddb4592980ff\">\n<strong>View</strong> real-time test statuses and short summaries, including reasons for Blocked or Failed tests.</li>\n<li data-list-item-id=\"e85ed97adfc84c76753e43d1379e064ba\">\n<strong>Trigger reruns</strong> of linked tests without leaving Aha!.</li>\n</ul><p>All updates in TestRail are automatically reflected in Aha!, ensuring continuous synchronization between QA and development teams.</p><hr><h2 id=\"h_01K7PCE7RXZM1Y38N8V0C3FG9T\">Installation and configuration</h2><p>To set up the integration, follow these steps:</p><h3 id=\"h_01K7PCE7RXA4MR7NE3NRDZ54HD\">1. Install the TestRail extension</h3><ol>\n<li data-list-item-id=\"e40b0cf4e0d80db4e0f192807ae42fbe6\">In Aha! Develop, open <strong>Settings → Account → Extensions</strong>.</li>\n<li data-list-item-id=\"e5fa8e5554c818b460c0844b0665afdbd\">Access the <strong>Extension Library</strong> and search for <strong>TestRail</strong>.</li>\n<li data-list-item-id=\"e7ce6a2d8c224c522bcf7bbaa545dbe22\">\n<p>Select <strong>Install</strong>.</p>\n<blockquote><p><em>Administrator permissions with customization rights in Aha! are required to complete this step.</em></p></blockquote>\n</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1595/1000;\" src=\"https://support.testrail.com/hc/article_attachments/45283240579988\" alt=\"Configure-extensions-Aha--01-14-2026_12_33_PM.png\" width=\"1595\" height=\"1000\"></figure><h3 id=\"h_01K7PCE7RXY9MM9CNHYGX4WDRY\">2. Connect Aha! Develop to TestRail</h3><ol>\n<li data-list-item-id=\"e48a4c0b55437a3c12004774c33f3fd84\">After installation, open the TestRail extension settings.</li>\n<li data-list-item-id=\"edb88d3aece6263462a9b935f93ca4c15\">Enter the <strong>TestRail domain</strong>, <strong>username</strong>, and <strong>API token</strong>.<ul><li data-list-item-id=\"e72283521ed04951e8b2594d76c99c1cc\">API tokens can be generated in TestRail under <strong>My Settings → API Keys</strong>.</li></ul>\n</li>\n<li data-start=\"3610\" data-end=\"3654\" data-list-item-id=\"e578be3a70c416f09d1fc95c3649d9ea4\"><p data-start=\"3613\" data-end=\"3654\">Select <strong data-start=\"3620\" data-end=\"3631\">Connect</strong> to establish the link.</p></li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1356/992;\" src=\"https://support.testrail.com/hc/article_attachments/45283240581140\" alt=\"TestRail-Aha--01-14-2026_12_35_PM.png\" width=\"1356\" height=\"992\"></figure><h3 id=\"h_01K7PC0ZBR8PQ6WEFBYZ4C20TW\" data-start=\"3656\" data-end=\"3704\">3. Enable the extension for individual users</h3><p data-start=\"3705\" data-end=\"3822\">Each user in Aha! Develop must enable the TestRail extension from their <strong data-start=\"3777\" data-end=\"3798\">personal settings</strong> before linking records.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1777/521;\" src=\"https://support.testrail.com/hc/article_attachments/45283317832980\" alt=\"Configure-extensions-Aha--01-14-2026_12_36_PM.png\" width=\"1777\" height=\"521\"></figure><hr><h2 id=\"h_01K7PC1CJN4HH8FNQ5WWHE0RJ5\" data-start=\"3829\" data-end=\"3853\">Using the Integration</h2><p data-start=\"3855\" data-end=\"3945\">Once configured, the <strong data-start=\"3876\" data-end=\"3888\">Test tab</strong> appears within Aha! features, requirements, and sprints.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 2235/602;\" src=\"https://support.testrail.com/hc/article_attachments/45283361851924\" alt=\"Screenshot 2026-01-14 123853.png\" width=\"2235\" height=\"602\"></figure><p data-start=\"3947\" data-end=\"3972\">From this tab, teams can:</p><ul data-start=\"3973\" data-end=\"4290\">\n<li data-start=\"3973\" data-end=\"4041\" data-list-item-id=\"e5311b75a609bac1d1d1216232948bc57\"><p data-start=\"3975\" data-end=\"4041\"><strong data-start=\"3975\" data-end=\"3992\">Link existing</strong> test runs, test cases, or tests from TestRail.</p></li>\n<li data-start=\"4042\" data-end=\"4110\" data-list-item-id=\"eb30f7a8a457c4a8b2316e8eb837332c6\"><p data-start=\"4044\" data-end=\"4110\"><strong data-start=\"4044\" data-end=\"4058\">Create new</strong> test cases directly in TestRail from within Aha!.</p></li>\n<li data-start=\"4111\" data-end=\"4208\" data-list-item-id=\"e792c07742937c6f1076cd91fc271317e\"><p data-start=\"4113\" data-end=\"4208\"><strong data-start=\"4113\" data-end=\"4124\">Monitor</strong> real-time test statuses and review short explanations for failed or blocked runs.</p></li>\n<li data-start=\"4209\" data-end=\"4290\" data-list-item-id=\"e0681d7f2bdf73d0edf939400550dcb90\"><p data-start=\"4211\" data-end=\"4290\"><strong data-start=\"4211\" data-end=\"4234\">Trigger test reruns</strong> directly from Aha! Develop to confirm fixes or updates.</p></li>\n</ul><p data-start=\"4292\" data-end=\"4416\">All information is kept up to date automatically as QA progresses in TestRail, providing a unified and transparent workflow.</p><h3 id=\"h_01K7PC1JN1VZB22GEVMPS48EZK\">Example workflow</h3><ol data-start=\"4444\" data-end=\"4858\">\n<li data-start=\"4444\" data-end=\"4494\" data-list-item-id=\"e60181fb26e580fa58eba665d5eac9166\"><p data-start=\"4447\" data-end=\"4494\">QA creates or updates test cases in TestRail.</p></li>\n<li data-start=\"4495\" data-end=\"4589\" data-list-item-id=\"e38cfa1807131631290980591d595c4a7\"><p data-start=\"4498\" data-end=\"4589\">Developers link Aha! features or requirements to the related test cases via the Test tab.</p></li>\n<li data-start=\"4590\" data-end=\"4697\" data-list-item-id=\"e74b6f7c0e97fdb2772bab0f6863f5488\"><p data-start=\"4593\" data-end=\"4697\">As test runs are executed in TestRail, the live status (Passed, Failed, Blocked) is displayed in Aha!.</p></li>\n<li data-start=\"4698\" data-end=\"4776\" data-list-item-id=\"ea91cae741950db883d8ccd56944b1619\"><p data-start=\"4701\" data-end=\"4776\">Developers can trigger reruns or review failure details directly in Aha!.</p></li>\n<li data-start=\"4777\" data-end=\"4858\" data-list-item-id=\"ee4a80b3577210a8b81a77e3b972e0e46\"><p data-start=\"4780\" data-end=\"4858\">Teams can track sprint and testing progress together, without switching tools.</p></li>\n</ol><p data-start=\"5415\" data-end=\"5711\">The <strong data-start=\"5419\" data-end=\"5458\">TestRail + Aha! Develop integration</strong> strengthens collaboration between QA and development teams, providing real-time visibility without tool switching or manual updates. Developers and testers remain in their preferred environments, while progress stays synchronized across both platforms.</p><p data-start=\"5713\" data-end=\"5869\">To get started, visit the <strong data-start=\"5739\" data-end=\"5773\">Aha! Develop Extension Library</strong> to install the TestRail extension and bring QA insights directly into the development workflow.</p><hr><h2 id=\"h_01K7PC1YX6TDR8FW36MQE6EPJN\" data-start=\"4865\" data-end=\"4883\">Troubleshooting</h2><p data-start=\"4885\" data-end=\"4914\">If issues occur during setup:</p><ul data-start=\"4915\" data-end=\"5190\">\n<li data-start=\"4915\" data-end=\"4999\" data-list-item-id=\"e13b1f68a38116282c2e94cc7f662787b\"><p data-start=\"4917\" data-end=\"4999\">Confirm that the TestRail domain, username, and API token are entered correctly.</p></li>\n<li data-start=\"5000\" data-end=\"5091\" data-list-item-id=\"edce0684779c349b3eaa427cb2fb6417f\"><p data-start=\"5002\" data-end=\"5091\">Verify that the TestRail API is enabled under <strong data-start=\"5048\" data-end=\"5088\">Administration → Site Settings → API</strong>.</p></li>\n<li data-start=\"5092\" data-end=\"5190\" data-list-item-id=\"e2148a3b7971b7b3bf68542c7ecb2daf9\"><p data-start=\"5094\" data-end=\"5190\">Ensure that the Aha! user account has sufficient permissions to install and manage extensions.</p></li>\n</ul><h2 id=\"h_01K36DNJY216H781TAHB34XGR3\">Learn more</h2><ul>\n<li data-list-item-id=\"eb61a0c8afa3497aac5fbc6a350fd2817\"><a href=\"https://support.aha.io/aha-develop/integrations/testrail/testrail-extension~7490666434488095539\" target=\"_blank\" rel=\"noopener noreferrer\">Aha! Develop TestRail Integration (official guide)</a></li>\n<li data-list-item-id=\"eb10fdffbbb786b91f39206f497734926\"><a href=\"https://support.testrail.com/hc/en-us/sections/7077006180116-Getting-started-with-TestRail-API\" target=\"_new\" rel=\"noopener\">TestRail API Documentation</a></li>\n</ul><p data-start=\"1417\" data-end=\"1767\"> </p><p data-start=\"1417\" data-end=\"1767\"> </p>","user_segment_ids":[]},{"id":42168888518164,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/42168888518164.json","html_url":"https://support.testrail.com/hc/en-us/articles/42168888518164-testRigor-Integration-in-TestRail","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":0,"section_id":42168310560788,"created_at":"2025-10-14T10:24:33Z","updated_at":"2025-12-16T18:29:47Z","name":"testRigor Integration in TestRail","title":"testRigor Integration in TestRail","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-10-14T10:28:13Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>This guide explains how to enable testRigor features directly inside TestRail using a custom UI script. Once configured, you can access testRigor options from within your TestRail interface to automate test suites, cases, and runs using AI-powered execution, without leaving TestRail.</p><p>With this integration, you can:</p><ul>\n<li data-list-item-id=\"ef9e53d7eae8cd5869ad1be95e0a7558a\">Link test suites in TestRail to new/existing testRigor suites</li>\n<li data-list-item-id=\"e3e5b6519a1ed74f7ce7e042a208d55c1\">Link test cases in TestRail to new/existing testRigor cases</li>\n<li data-list-item-id=\"e335d6c92affa96c2b273489a2a29f0fc\">Start testRigor automated tests from within TestRail</li>\n</ul><h2 id=\"h_01K36DMZ3ER765R35V8G2H3JAP\">Requirements</h2><p>Before enabling the integration, make sure you have:</p><ul>\n<li data-list-item-id=\"ed42a296c384db76e3e83fafe394e2d22\">A TestRail instance</li>\n<li data-list-item-id=\"e93fc6993720fc9944445b202b5f3ab04\">A testRigor account</li>\n<li data-list-item-id=\"e4fb36babb13745765ef2ee5875f6968a\">API access enabled in TestRail.</li>\n<li data-list-item-id=\"e9fc5b2f45b32ced7b4a8f859f4a0b0ca\">The following two testRigor URLs added to the CSP list:<ul>\n<li data-list-item-id=\"eced11d151622a86be06d8ca7892fc907\"><a href=\"https://app.testrigor.com/\">https://app.testrigor.com/</a></li>\n<li data-list-item-id=\"e367f3fd499e17a7fcca7ca2680c29629\">\n<a href=\"https://cdn.testrigor.com/\">https://cdn.testrigor.com/</a> </li>\n</ul>\n</li>\n<li data-list-item-id=\"e6198632e01f7224fc748029dc8cf88f3\">Project permissions in TestRail to create and edit test cases and runs.</li>\n</ul><h2 id=\"h_01K7H3E04QSMY604707Y1EH90N\">Configuration Steps</h2><ol>\n<li data-list-item-id=\"e3ea64f4b0eaa79d26a35c535037f5239\">Login to TestRail</li>\n<li data-list-item-id=\"eb229788ae6420d51a002d70b9bdc1445\">Go to Admin section<br><img src=\"https://support.testrail.com/hc/article_attachments/42168857075988\" width=\"624\" height=\"124\">\n</li>\n<li data-list-item-id=\"e55f2983e015c85e8a42efa15c401527d\">Navigate to Site Settings → API → Enable API (checkbox should be checked) <br><img src=\"https://support.testrail.com/hc/article_attachments/42168857082132\" width=\"624\" height=\"273\">\n</li>\n<li data-list-item-id=\"e1391f782d02388b88819768f89bd0ad1\">Click on “Save settings”</li>\n<li data-list-item-id=\"e18a1f52fc2dad083ec7f198d035be7e3\">Navigate to Site Settings → Security</li>\n<li data-list-item-id=\"e4b9acba36f9195256c76f1893d77b79d\">Enable the “CSP - Allow access TestRail to remote addresses\" checkbox</li>\n<li data-list-item-id=\"ed9d70a9f15e90f7f4793480c71f43c20\">Enter “<a><span class=\"wysiwyg-underline\">https://app.testrigor.com</span></a>” and \"<a><span class=\"wysiwyg-underline\">https://cdn.testrigor.com\"</span></a> into the CSP input.<br><img src=\"https://support.testrail.com/hc/article_attachments/42168857082516\" width=\"624\" height=\"923\">\n</li>\n<li data-list-item-id=\"ec8d55ba29e2e91a0b65ba6441d8901b8\">Click on “Save settings”</li>\n<li data-list-item-id=\"edf3222daca95bc287baf7a3808ca0371\">Navigate to Customizations → UI Scripts</li>\n<li data-list-item-id=\"e64044f23dde6db97a7f1eade7d3e25a7\">Click on “Add UI Script” and you will see the following<br><strong><img src=\"https://support.testrail.com/hc/article_attachments/42168888509716\" width=\"624\" height=\"289\"></strong>\n</li>\n<li data-list-item-id=\"e94d518748561f344ea809c313979f4e0\">\n<p>Replace the content of the text area with:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-json\">name: testRigor UI Integration\ndescription: Shows testRigor options to automate suites, cases and runs.\nauthor: testRigor\nversion: 1.0\nincludes: .\nexcludes: \n\n  js:\n    $(document).ready(\n      function() {  \n        var domain = \"https://cdn.testrigor.com\";\n        var mjs = document.createElement(\"script\");\n        mjs.type = \"text/javascript\";\n        mjs.src = domain + \"/testrail-ui-plugin.min.js\";\n        var mcss = document.createElement('link');\n        mcss.rel = \"stylesheet\";\n        mcss.type = \"text/css\";\n        mcss.href = domain + \"/testrail-ui-plugin.min.css\";\n        $(\"head\").append(mcss, mjs);\n      }\n    );</code></pre>\n</li>\n<li data-list-item-id=\"e48a38ff5bb9428e457322c6c4759850d\">Check the \"This UI script is active\" checkbox</li>\n<li data-list-item-id=\"eda55068c214705b8baea3b6b1cc8a9bc\">Click on “Add UI Script”</li>\n</ol><p><br> </p>","user_segment_ids":[]},{"id":42067251667476,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/42067251667476.json","html_url":"https://support.testrail.com/hc/en-us/articles/42067251667476-Integrating-Kiuwan-SAST-Scans-via-CLI","author_id":20567219603988,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":4,"vote_count":4,"section_id":42067143159956,"created_at":"2025-10-10T17:49:52Z","updated_at":"2026-05-18T14:26:44Z","name":"Integrating Kiuwan SAST Scans via CLI","title":"Integrating Kiuwan SAST Scans via CLI","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2026-05-18T14:26:44Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":["01K77KW3JQ2FZQK9HSV15PTQ2A"],"label_names":["security"],"body":"<figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 67.29%;\"><img style=\"aspect-ratio: 1000/224;\" src=\"https://support.testrail.com/hc/article_attachments/42078027600404\" alt=\"7225c9087d7f0af4ff8c5b40ca299adca95499e0.png\" width=\"1000\" height=\"224\"></figure><p>Modern software teams can no longer afford to treat security and quality as separate goals. The same discipline that ensures tests pass must also ensure code is safe. By integrating <a href=\"https://www.kiuwan.com/request-a-trial/?utm_source=testrail-support&amp;utm_medium=referral&amp;utm_content=integrating-kiuwan-sast-scans\" target=\"_blank\" rel=\"noopener noreferrer\">Kiuwan SAST</a> <strong data-start=\"547\" data-end=\"600\">(Static Application Security Testing)</strong> directly into <a href=\"https://www.testrail.com/\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail</a>, teams bring security findings into the same lifecycle as functional and regression tests, creating a unified view of application health. This approach, known as <strong data-start=\"790\" data-end=\"818\">Quality Through Security</strong>, empowers QA and <a href=\"https://www.kiuwan.com/blog/from-optional-to-essential-devsecops/\" target=\"_blank\" rel=\"noopener noreferrer\">DevSecOps </a>teams to detect, track, and remediate vulnerabilities as part of their everyday testing workflows. Instead of managing security reports in isolation, developers and testers can see which builds or test runs contain critical issues, measure improvement over time, and demonstrate “safe software sooner” across both quality and security metrics.</p><h2 id=\"h_01K78299JVJVBK7P36WVS2YKJC\" data-start=\"2016\" data-end=\"2032\">Prerequisites</h2><p data-start=\"2034\" data-end=\"2053\">Before integrating:</p><ol data-start=\"2055\" data-end=\"2390\">\n<li data-start=\"2055\" data-end=\"2134\" data-list-item-id=\"e33adc7491e5bf2cbd4ad2ec5e6eac329\"><p data-start=\"2058\" data-end=\"2134\">You must<a href=\"https://www.kiuwan.com/request-a-trial/?utm_source=testrail-support&amp;utm_medium=referral&amp;utm_content=integrating-kiuwan-sast-scans\" target=\"_blank\" rel=\"noopener noreferrer\"> have a valid Kiuwan account</a> and <a href=\"https://static.kiuwan.com/rest-api/kiuwan-rest-api.html\" target=\"_blank\" rel=\"noopener noreferrer\">API access</a> to fetch analysis data</p></li>\n<li data-start=\"2135\" data-end=\"2218\" data-list-item-id=\"e0227efd66e0541c37aa190d38725770f\"><p data-start=\"2138\" data-end=\"2218\">You should be able to<a href=\"https://support.kiuwan.com/hc/en-us/articles/37024520067729-Kiuwan-Local-Analyzer-CLI-Command-Line-Interface\" target=\"_blank\" rel=\"noopener noreferrer\"> run a Kiuwan scan</a> and export or retrieve results via API</p></li>\n<li data-start=\"2219\" data-end=\"2299\" data-list-item-id=\"e5bcd6be62e973a62dbf78fc41fe8f4ba\"><p data-start=\"2222\" data-end=\"2299\">Your TestRail instance must allow <a href=\"https://support.testrail.com/hc/en-us/articles/7077083596436-Introduction-to-the-TestRail-API\" target=\"_blank\" rel=\"noopener noreferrer\">API access </a></p></li>\n</ol><h2 id=\"h_01K782KRMD6P1PCTADH26DSSGA\" data-start=\"275\" data-end=\"328\">Integration Flow Overview (Using the TestRail CLI)</h2><figure class=\"wysiwyg-image wysiwyg-image-resized\" style=\"width: 46.66%;\"><img style=\"aspect-ratio: 7055/2851;\" src=\"https://support.testrail.com/hc/article_attachments/42078559033364\" alt=\"TestRail_CLI (Navy Logo).png\" width=\"7055\" height=\"2851\"></figure><ol data-start=\"330\" data-end=\"2221\">\n<li data-start=\"330\" data-end=\"558\" data-list-item-id=\"e4603dcdd11b13484a1019f0a374e8ad3\"><p data-start=\"333\" data-end=\"558\"><strong data-start=\"333\" data-end=\"361\">Run </strong><a href=\"https://support.kiuwan.com/hc/en-us/articles/36993952204561-Kiuwan-Analysis-Options\" target=\"_blank\" rel=\"noopener noreferrer\"><strong data-start=\"333\" data-end=\"361\">Kiuwan SAST analysis</strong></a><br>Include a Kiuwan scan as part of your CI or CD process. You can trigger it through the Kiuwan Local Analyzer or API so that each build or commit is automatically analyzed for vulnerabilities.</p></li>\n<li data-start=\"560\" data-end=\"817\" data-list-item-id=\"ea3e22daea59a3a0d5e2685df43823a99\"><p data-start=\"563\" data-end=\"817\"><strong data-start=\"563\" data-end=\"606\">Export analysis results in JUnit format</strong><br>Once the scan completes, <a href=\"https://static.kiuwan.com/rest-api/kiuwan-rest-api.html#ca-uid-92\" target=\"_blank\" rel=\"noopener noreferrer\">export the results from Kiuwan in <strong data-start=\"671\" data-end=\"684\">JUnit XML</strong> format using the deliveries API</a>. This makes it compatible with the <a href=\"https://support.testrail.com/hc/en-us/articles/7146548750868\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail CLI.</a> Kiuwan provides a <a href=\"https://static.kiuwan.com/rest-api/kiuwan-rest-api.html\" target=\"_blank\" rel=\"noopener noreferrer\">REST API endpoint</a> to generate this format directly.</p></li>\n<li data-start=\"819\" data-end=\"1168\" data-list-item-id=\"e82b88a4091a50675939806f4eea5873f\"><p data-start=\"822\" data-end=\"1023\"><strong data-start=\"822\" data-end=\"864\">Install and configure the TestRail CLI</strong><br>The TestRail CLI allows you to upload test results automatically from supported formats such as JUnit. See the <a href=\"https://support.testrail.com/hc/en-us/articles/7146548750868\">detailed documentation </a>on how to setup the TestRail CLI along with usage information.</p></li>\n<li data-start=\"819\" data-end=\"1168\" data-list-item-id=\"e0863de9e0373b35d3d465c1fec335b5f\">\n<p data-start=\"822\" data-end=\"1023\"><strong data-start=\"1173\" data-end=\"1224\">Upload Kiuwan results to TestRail using the CLI</strong><br>Use the <code data-start=\"1238\" data-end=\"1251\">parse_junit</code> command in the TestRail CLI to import the Kiuwan JUnit report into a new or existing TestRail test run. For example (GitHub Action):</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-bash\">pip install trcli\ntrcli -y \\\n  -h $TESTRAIL_URL \\\n  -u $TESTRAIL_USER \\\n  -p $TESTRAIL_PASS \\\n  parse_junit \\\n  --title \"Kiuwan SAST Results\" \\\n  --run-description \"Automated Kiuwan scan results for build ${{ github.run_id }}\" \\\n  -f kiuwan-audit.xml</code></pre>\n</li>\n<li data-list-item-id=\"e72524d9430680d364dab9cd8ef81a633\">\n<p data-start=\"822\" data-end=\"1023\"><strong data-start=\"1705\" data-end=\"1745\">Example GitHub Actions YAML Workflow</strong><br>The following example shows how to automate the <a href=\"https://support.kiuwan.com/hc/en-us/articles/39138875702929-Audit-JUnit-Export\" target=\"_blank\" rel=\"noopener noreferrer\">full Kiuwan to TestRail integration</a> in a GitHub Actions workflow. Inline comments explain each step:</p>\n<pre class=\"wysiwyg-code-block\"><code class=\"language-bash\">name: Kiuwan SAST to TestRail Integration\n\n# Run this workflow on push, pull requests, or manual trigger\non:\n  push:\n    branches:\n      - main\n  pull_request:\n  workflow_dispatch:\n\njobs:\n  sast_testrail_integration:\n    runs-on: ubuntu-latest\n\n    # Shared environment variables for the integration\n    env:\n      APP_NAME: \"Sample Application Name\"\n      SRC_PATH: \".\"\n      TESTRAIL_USER: your_testrail_username@example.com\n      TESTRAIL_URL: https://yourcompany.testrail.io/\n      PROJECT_NAME: Your TestRail Project Name\n\n    steps:\n      # Step 1: Checkout repository code\n      - name: Checkout code\n        uses: actions/checkout@v4\n\n      # Step 2: Setup Python (required for TestRail CLI)\n      - name: Setup Python\n        uses: actions/setup-python@v4.5.0\n        with:\n          python-version: '3.10'\n\n      # Step 3: Download Kiuwan Local Analyzer\n      - name: Download Kiuwan Local Analyzer\n        run: |\n          echo \"Downloading Kiuwan Local Analyzer...\"\n          curl -sSL \"https://www.kiuwan.com/pub/analyzer/KiuwanLocalAnalyzer.zip\" -o kla.zip\n          unzip -oq kla.zip -d kla\n\n      # Step 4: Run a Kiuwan SAST scan\n      - name: Run Kiuwan SAST Scan\n        env:\n          KIUWAN_USER: ${{ secrets.KIUWAN_USER }}\n          KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }}\n        run: |\n          cd kla/KiuwanLocalAnalyzer\n          chmod u+x bin/agent.sh\n          echo \"Running Kiuwan scan for $APP_NAME\"\n          ./bin/agent.sh \\\n            -s \"$SRC_PATH\" \\\n            -n \"$APP_NAME\" \\\n            -c \\\n            -wr \\\n            -as completeDelivery \\\n            --user \"$KIUWAN_USER\" \\\n            --pass \"$KIUWAN_PWD\"\n          echo \"Kiuwan scan completed.\"\n\n      # Step 5: Retrieve the last successful delivery code from the Kiuwan API\n      - name: Fetch Last SAST Scan Code\n        id: fetch_delivery\n        env:\n          KIUWAN_USER: ${{ secrets.KIUWAN_USER }}\n          KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }}\n          KIUWAN_API: \"https://api.kiuwan.com\"\n        run: |\n          echo \"Fetching last successful delivery code from Kiuwan API...\"\n          encoded_app=$(printf \"%s\" \"$APP_NAME\" | jq -sRr @uri)\n\n          response=$(curl -sSL --user \"$KIUWAN_USER:$KIUWAN_PWD\" \\\n            \"$KIUWAN_API/deliveries/last_analysis?application=$encoded_app\")\n\n          echo \"Raw API response:\"\n          echo \"$response\"\n\n          code=$(echo \"$response\" | jq -r '.lastSuccessfulDelivery.code // .analysisCode // empty')\n\n          if [ -z \"$code\" ] || [ \"$code\" = \"null\" ]; then\n            echo \"Unable to extract delivery code from response.\"\n            exit 1\n          fi\n\n          echo \"Last Successful Delivery Code: $code\"\n          echo \"delivery_code=$code\" &gt;&gt; $GITHUB_OUTPUT\n\n      # Step 6: Download the JUnit XML report from Kiuwan for that delivery\n      - name: Download JUnit XML Report\n        id: fetch_junit\n        env:\n          KIUWAN_USER: ${{ secrets.KIUWAN_USER }}\n          KIUWAN_PWD: ${{ secrets.KIUWAN_PWD }}\n          KIUWAN_API: \"https://api.kiuwan.com\"\n          DELIVERY_CODE: ${{ steps.fetch_delivery.outputs.delivery_code }}\n        run: |\n          echo \"Downloading JUnit XML for delivery code: $DELIVERY_CODE\"\n          curl -sSL --user \"$KIUWAN_USER:$KIUWAN_PWD\" \\\n            \"$KIUWAN_API/deliveries/junit?deliveryCode=$DELIVERY_CODE\" \\\n            -o kiuwan_sast.xml\n\n          if [ ! -s kiuwan_sast.xml ]; then\n            echo \"Failed to retrieve kiuwan_sast.xml\"\n            exit 1\n          fi\n\n          echo \"JUnit XML successfully saved as kiuwan_sast.xml\"\n\n      # Step 7: Upload the JUnit XML results to TestRail using the CLI\n      - name: Upload Results to TestRail\n        run: |\n          pip install trcli\n          trcli -y \\\n            -h ${{ env.TESTRAIL_URL }} \\\n            --project \"${{ env.PROJECT_NAME }}\" \\\n            -u ${{ env.TESTRAIL_USER }} \\\n            -p \"${{ secrets.TESTRAIL_PASSWORD }}\" \\\n            parse_junit \\\n            -f \"kiuwan_sast.xml\" \\\n            --title \"Kiuwan SAST Audit Checkpoint Tests\"\n</code></pre>\n</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1871/878;\" src=\"https://support.testrail.com/hc/article_attachments/42078829016724\" alt=\"image (2) (1).png\" width=\"1871\" height=\"878\"></figure><h2 id=\"h_01K783JM0M6DPNE15PPB05SX3B\" data-start=\"181\" data-end=\"204\">Additional Resources</h2><p data-start=\"206\" data-end=\"410\">For more information on <a href=\"https://www.kiuwan.com/request-a-trial/?utm_source=testrail-support&amp;utm_medium=referral&amp;utm_content=integrating-kiuwan-sast-scans\" target=\"_blank\" rel=\"noopener noreferrer\">Kiuwan</a>, including documentation on scan configuration, API usage, and exporting results, visit:<br><a data-start=\"332\" data-end=\"410\" target=\"_new\" rel=\"noopener\">https://www.kiuwan.com/documentation/</a><span aria-hidden=\"true\"><a data-start=\"332\" data-end=\"410\" target=\"_new\" rel=\"noopener\"></a></span></p><p data-start=\"412\" data-end=\"714\">For detailed guidance on using the <a href=\"https://support.testrail.com/hc/en-us/articles/7146548750868\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail CLI</a>, including command options, result parsing, and automation examples, see:<br><a data-start=\"540\" data-end=\"714\" target=\"_new\" rel=\"noopener\">https://support.testrail.com/hc/en-us/articles/17372097063501-TestRail-CLI-User-Guide</a></p>","user_segment_ids":[]},{"id":40500339139092,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/40500339139092.json","html_url":"https://support.testrail.com/hc/en-us/articles/40500339139092-Cleaning-Up-Old-Attachment-Files","author_id":12818215810836,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":6,"section_id":39794668286484,"created_at":"2025-08-22T10:30:26Z","updated_at":"2025-08-22T13:24:10Z","name":"Cleaning Up Old Attachment Files","title":"Cleaning Up Old Attachment Files","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-08-22T11:40:09Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>As part of Cassandra deprecation, the migration script copies and renames attachment files to the new naming convention, but it does not delete the old files. To help you complete the cleanup, we provide an additional script that allows you to safely remove these outdated files.</p><h2 id=\"Key Usage Information\">Key Usage Information</h2><h3 id=\"Prerequisites\">Prerequisites</h3><ul class=\"list-bullet\">\n<li class=\"level1\"><div class=\"li\">Ensure the Cassandra deprecation migration has been completed first.</div></li>\n<li class=\"level1\"><div class=\"li\">PHP command line interface is required.</div></li>\n<li class=\"level1\"><div class=\"li\">Read/write permissions are needed on both the attachments directory and the script directory.</div></li>\n</ul><h3 id=\"Recommended Approach\">Recommended Approach</h3><ul class=\"list-bullet\">\n<li class=\"level1\"><div class=\"li\">Back up your attachments directory before proceeding.</div></li>\n<li class=\"level1\">\n<div class=\"li\">Run in dry-run mode to preview what will be deleted:</div>\n<pre><code class=\"language-auto shell hljs\">php remove_cassandra_attachments.php /path/to/attachments --dry-run</code></pre>\n</li>\n<li class=\"level1\"><div class=\"li\">Review the generated file <code class=\"inline-code\">cassandra_files_to_delete.txt</code>, which lists the files that would be automatically deleted by the tool.</div></li>\n<li class=\"level1\">\n<div class=\"li\">Once confirmed, run the actual cleanup:</div>\n<pre><code class=\"language-auto shell hljs\">php remove_cassandra_attachments.php /path/to/attachments</code></pre>\n</li>\n</ul><h2 id=\"Quickstartwithscript\">Quick start with the script</h2><p>You can execute the following command to delete all old files (based on filename checks):</p><p><code class=\"inline-code\">php remove_cassandra_attachments.php /path/to/attachments</code></p><p>If you prefer to first inspect which files will be deleted, you can run the script in dry-run mode. This will generate a text file listing the files that would be removed:</p><p><code class=\"inline-code\">php remove_cassandra_attachments.php /path/to/attachments --dry-run</code> </p><div class=\"callout callout--success\">\n<h4 class=\"callout__title\" id=\"01G7Y9220DCHF3Q6BJ41M5WW27\"><a href=\"https://github.com/gurock/cassandra-cleanup\"><em class=\"fas fa-download\"><em> </em></em> Full script on Github</a></h4>\n<p>Get the latest version of the cleanup script on GitHub.</p>\n</div>","user_segment_ids":[]},{"id":40470518707220,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/40470518707220.json","html_url":"https://support.testrail.com/hc/en-us/articles/40470518707220-Integrate-with-testRigor","author_id":30878352880660,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":0,"vote_count":2,"section_id":42168310560788,"created_at":"2025-08-21T13:38:30Z","updated_at":"2025-10-14T10:02:42Z","name":"Integrate with testRigor","title":"Integrate with testRigor","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-09-14T19:57:28Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<figure style=\"width: 50%;\" class=\"wysiwyg-image wysiwyg-image-resized\"><img style=\"aspect-ratio: 1400/800;\" src=\"https://support.testrail.com/hc/article_attachments/40471197380884\" alt=\"0_DahutzMvxQdUI83B.png\" width=\"1400\" height=\"800\"></figure><p>This article explains how to set up and use the integration between <a href=\"https://testrigor.com/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>testRigor</strong></a> and <strong>TestRail</strong>. By connecting the two tools, you can automatically synchronize test results, create test runs in TestRail from testRigor executions, and streamline your testing workflows across both platforms.</p><p>With this integration, you can:</p><ul>\n<li>Link test cases in testRigor to existing cases in TestRail.</li>\n<li>Automatically create test runs in TestRail when executing tests in testRigor.</li>\n<li>Track pass/fail results in TestRail without additional manual effort.</li>\n<li>Optionally configure test plans and milestones for better reporting.</li>\n</ul><h2 id=\"h_01K36DMZ3ER765R35V8G2H3JAP\">Requirements</h2><p>Before enabling the integration, make sure you have:</p><ul>\n<li>A TestRail instance.</li>\n<li>A testRigor account with permissions to configure integrations.</li>\n<li>API access enabled in TestRail.</li>\n<li>A TestRail API key generated for your user instance.</li>\n<li>Project permissions in TestRail to create and edit test cases and runs.</li>\n</ul><h2 id=\"h_01K36DMZ3J8NVF2E40FACGWJYX\">How it works</h2><ul>\n<li>testRigor connects to TestRail via the <a href=\"https://support.testrail.com/hc/en-us/articles/7077039051284\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>TestRail API</strong></a>.</li>\n<li>When the integration is enabled, testRigor test cases can be linked to TestRail test cases.</li>\n<li>Each execution (or full rerun) in testRigor will generate a corresponding <a href=\"https://support.testrail.com/hc/en-us/articles/7076838639892\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Test Run</strong></a> in TestRail.</li>\n<li>Test results are reported automatically, keeping both tools synchronized.</li>\n</ul><p>This means teams can design and execute tests in testRigor while maintaining a single source of truth for reporting in TestRail.</p><hr><h2 id=\"h_01K36DMZ3MF7EERQYQKXQVXB3G\">Configuration steps</h2><h3 id=\"h_01K36DMZ3M8S9Q7J2XJB0R4YVQ\">1. Enable the integration in testRigor</h3><ol>\n<li>In testRigor, go to <strong>Settings &gt; Integrations</strong>.</li>\n<li>Find the TestRail integration and toggle it <strong>On</strong>.</li>\n<li>A configuration form will appear.</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1689/902;\" src=\"https://support.testrail.com/hc/article_attachments/40502884910356\" alt=\"Screenshot 2025-08-22 132302.png\" width=\"1689\" height=\"902\"></figure><h3 id=\"h_01K36DMZ3Q0RE36RAVV0TGJWR1\">2. Generate an API Key in TestRail</h3><ol>\n<li>In TestRail, navigate to <strong>Administration &gt; Site Settings &gt; API</strong>.</li>\n<li>Ensure the API is enabled and save the setting.</li>\n<li>Go to <strong>My Settings &gt; API Keys</strong>.</li>\n<li>Click <strong>Add Key</strong>, give it a label, and generate a new key.</li>\n<li>Copy the key - it will only be displayed once.</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1532/562;\" src=\"https://support.testrail.com/hc/article_attachments/40502882019348\" alt=\"Screenshot 2025-08-22 132503.png\" width=\"1532\" height=\"562\"></figure><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1907/487;\" src=\"https://support.testrail.com/hc/article_attachments/40502882021140\" alt=\"Screenshot 2025-08-22 132553.png\" width=\"1907\" height=\"487\"></figure><h3 id=\"h_01K36DMZ3VG8QES4WQ8QAHX5DD\">3. Collect project information</h3><p>You’ll need the following from TestRail:</p><ul>\n<li>\n<strong>Project ID</strong> - visible in the project’s URL (e.g., <code class=\"inline-code\">index.php?/projects/overview/1</code> &gt; ID = <code class=\"inline-code\">1</code>).</li>\n<li>(Optional) <strong>Plan ID</strong> and <strong>Milestone ID</strong> if you want to link test runs directly to specific plans or milestones.</li>\n</ul><figure style=\"width: 50%;\" class=\"wysiwyg-image wysiwyg-image-resized\"><img style=\"aspect-ratio: 747/331;\" src=\"https://support.testrail.com/hc/article_attachments/40502884914196\" alt=\"Screenshot 2025-08-22 132756.png\" width=\"747\" height=\"331\"></figure><h3 id=\"h_01K36DMZ3X04C35MVKPS4CZ4RQ\">4. Configure integration settings in testRigor</h3><ol>\n<li>Return to testRigor’s TestRail integration settings.</li>\n<li>Enter the following:<ul>\n<li><strong>TestRail Project ID</strong></li>\n<li><strong>API Key</strong></li>\n<li>(Optional) Test Plan ID and Milestone ID</li>\n</ul>\n</li>\n<li>Save your configuration.</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1693/902;\" src=\"https://support.testrail.com/hc/article_attachments/40502884914964\" alt=\"Screenshot 2025-08-22 133003.png\" width=\"1693\" height=\"902\"></figure><h3 id=\"h_01K36DMZ40S2NPCYHXABD4JE2W\">5. Configure run behaviour (Optional)</h3><p>testRigor allows you to define how test runs are handled after execution:</p><ul>\n<li>\n<strong>Close Run if Successful</strong> (default) - Closes the TestRail run only if 100% of tests pass.</li>\n<li>\n<strong>Always Close Run</strong> - Closes the run regardless of results.</li>\n<li>\n<strong>Do Not Close Run</strong> - Leaves the run open for further updates.</li>\n</ul><p>Choose the option that best fits your team’s workflow.</p><h3 id=\"h_01K36DMZ43J6F1KXBW4SF8J4YB\">6. Use the integration in CI/CD pipelines (Optional)</h3><p>If you run tests as part of CI/CD:</p><ul>\n<li>Enable the integration in testRigor.</li>\n<li>Go to the <strong>CI/CD</strong> tab in testRigor’s integration settings.</li>\n<li>Configure pipeline-specific parameters (e.g., linking results from automated builds to TestRail).</li>\n</ul><p><span class=\"wysiwyg-underline\">This ensures that every automated test execution is also logged in TestRail.</span></p><hr><h2 id=\"h_01K3935K7ZWZFNMAP5NCYRF8AT\">Linking testRigor Test Cases with TestRail</h2><p>Once the TestRail integration is enabled in testRigor, each testRigor test case can be linked to its corresponding TestRail test case. This ensures that when a test is executed in testRigor, the result is automatically reported back to TestRail.</p><h3 id=\"h_01K3935K80769ECGQ84KTX0NE3\">How Linking Works</h3><ul>\n<li>Each testRigor case stores a reference to the <strong>TestRail Case ID</strong> (e.g., <code class=\"inline-code\">C1234</code>).</li>\n<li>During execution, testRigor uses this ID to update the correct case in TestRail via API.</li>\n<li>If a case is not linked, testRigor cannot report results back to TestRail.</li>\n</ul><h3 id=\"h_01K3935K83W86GBSC4MVD2RN4E\">Ways to Link Cases</h3><ol>\n<li>\n<strong>Automatic Linking via Import</strong><ul>\n<li>If you import test cases from TestRail into testRigor (see section <em>Import TestRail Test Cases for Execution</em>), the link is created automatically.</li>\n<li>Each imported case retains its TestRail ID, so test results flow back without any extra setup.</li>\n</ul>\n</li>\n<li>\n<strong>Manual Linking</strong><ul>\n<li>Open a test case in testRigor.</li>\n<li>Edit the test case and enter the TestRail Case ID in the <strong>External ID / TestRail Case ID</strong> field.</li>\n<li>Save the test case.</li>\n<li>Next time you run the test, results will be reported to that specific TestRail case.</li>\n</ul>\n</li>\n</ol><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1667/1002;\" src=\"https://support.testrail.com/hc/article_attachments/40507368919316\" alt=\"Screenshot 2025-08-22 155139.png\" width=\"1667\" height=\"1002\"></figure><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1688/805;\" src=\"https://support.testrail.com/hc/article_attachments/40507368921748\" alt=\"Screenshot 2025-08-22 155213.png\" width=\"1688\" height=\"805\"></figure><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1684/832;\" src=\"https://support.testrail.com/hc/article_attachments/40507361108756\" alt=\"Screenshot 2025-08-22 155232.png\" width=\"1684\" height=\"832\"></figure><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1683/796;\" src=\"https://support.testrail.com/hc/article_attachments/40507361110036\" alt=\"Screenshot 2025-08-22 155326.png\" width=\"1683\" height=\"796\"></figure><h3 id=\"h_01K3935K8B8J4Q0DV9SD5EME59\">Best Practices</h3><ul>\n<li>Always ensure that <strong>every automated test in testRigor is linked to a TestRail case</strong> if you want traceability.</li>\n<li>If your team is migrating manual tests - start by <strong>importing from TestRail</strong> to establish links automatically.</li>\n<li>If your team is writing new tests in testRigor - manually assign TestRail Case IDs as you go.</li>\n</ul><hr><h2 id=\"h_01K36FM402HBAVNK37W58AHXGQ\">Import TestRail Test Cases Into testRigor</h2><p>Once the integration between TestRail and testRigor is configured, you can easily import manual test cases from TestRail into testRigor for execution.</p><ol>\n<li>Navigate in testRigor to the <strong>Test Cases</strong> section within your test suite.</li>\n<li>Click the <strong>Import Test Cases from TestRail</strong> button or tab. A modal dialog will appear.</li>\n<li><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1897/498;\" src=\"https://support.testrail.com/hc/article_attachments/40508229172372\" alt=\"Screenshot 2025-08-22 161402.png\" width=\"1897\" height=\"498\"></figure></li>\n<li>Choose one of the import options:<ul>\n<li>\n<strong>Import All Test Cases</strong> - brings in all TestRail cases along with their steps.</li>\n<li>\n<strong>Import Selected Test Cases</strong> - lets you choose specific cases to bring in.</li>\n<li><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1401/435;\" src=\"https://support.testrail.com/hc/article_attachments/40508229175060\" alt=\"Screenshot 2025-08-22 161423.png\" width=\"1401\" height=\"435\"></figure></li>\n</ul>\n</li>\n<li>Configure the additional options:<ul>\n<li>\n<strong>Link imported tests with test case management system</strong> – ensures imported cases stay connected and results are reported back to TestRail automatically.</li>\n<li>\n<strong>Override already linked tests</strong> - replaces existing testRigor scripts with the latest version from TestRail at import time (use cautiously if cases are stable).</li>\n</ul>\n</li>\n<li>Click <strong>Import</strong> to start.</li>\n<li>After import, test cases appear with <strong>“Not Executed”</strong> status and are ready for execution. Any steps not recognized as commands are automatically converted into <strong>AI-based reusable rules</strong>, simplifying conversion and reuse.</li>\n<li>To execute: click <strong>Rerun</strong> in Test Suite Details - or if the suite already contains cases, use <strong>Select Multiple</strong>, choose the imported cases, and click <strong>Run</strong>. testRigor’s AI will then process and execute the manual test steps.</li>\n<li>After execution, results sync back to TestRail, preserving test case linkage and status updates.</li>\n</ol><p>This new capability allows you to <strong>seamlessly convert your manual TestRail cases into automated workflows</strong> in testRigor, while keeping everything synchronized and traceable in TestRail.</p><hr><h2 id=\"h_01K36DNJXWR32NTVMHT2VKXPNG\">Troubleshooting</h2><ul>\n<li>\n<strong>Authentication fails</strong> - Double-check that the API key is correct and not expired.</li>\n<li>\n<strong>Project ID not recognized</strong> - Verify the number matches the TestRail project URL.</li>\n<li>\n<strong>Runs not closing as expected</strong> - Review your “Close Run” setting in testRigor’s integration options.</li>\n<li>\n<strong>CI/CD sync issues</strong> - Confirm integration is enabled under both the <strong>Integrations</strong> and <strong>CI/CD</strong> tabs in testRigor.</li>\n</ul><p>If issues persist, consult the <a href=\"https://testrigor.com/how-to-articles/testrail-integration/\" target=\"_new\" rel=\"noopener\">testRigor TestRail integration guide</a> or contact support.</p><h2 id=\"h_01K36DNJY216H781TAHB34XGR3\">Learn more</h2><ul>\n<li><a href=\"https://testrigor.com/how-to-articles/testrail-integration/\" target=\"_new\" rel=\"noopener\">testRigor TestRail Integration (official guide)</a></li>\n<li><a href=\"https://support.testrail.com/hc/en-us/sections/7077006180116-Getting-started-with-TestRail-API\" target=\"_new\" rel=\"noopener\">TestRail API Documentation</a></li>\n</ul><p> </p>","user_segment_ids":[]},{"id":40000509459604,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/40000509459604.json","html_url":"https://support.testrail.com/hc/en-us/articles/40000509459604-Summary-of-Enterprise-Features","author_id":30878352880660,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":-1,"vote_count":5,"section_id":7076652585364,"created_at":"2025-08-06T09:18:04Z","updated_at":"2025-09-05T13:55:22Z","name":"Summary of Enterprise Features","title":"Summary of Enterprise Features","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-09-05T13:48:55Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>TestRail Enterprise is designed for organizations that need advanced scalability, security, and administrative controls beyond what’s available in the Professional edition.</p><figure class=\"wysiwyg-media\"><div data-oembed-url=\"https://youtu.be/bidRg_rvS8Q?feature=shared\"><iframe style=\"width: 100%; aspect-ratio: 16 / 9;\" src=\"//www.youtube-nocookie.com/embed/bidRg_rvS8Q?feature=shared\" frameborder=\"0\" allowfullscreen=\"\" allow=\"encrypted-media\"></iframe></div></figure><p><br>This guide brings together the most important Enterprise‑exclusive features in one place, so both technical and non‑technical readers can quickly understand their value and use.</p><h2 id=\"h_01K1ZBWRTXQXNFYV3J6JVJZRV3\">1. Trust, Security &amp; Compliance</h2><h3 id=\"h_01K1ZBWRTXX39HYTAA7R5G6HYF\"><a href=\"https://support.testrail.com/hc/en-us/articles/7649434769812\" target=\"_blank\" rel=\"noopener noreferrer\">Single Sign‑On (SSO)</a></h3><p><strong>What it is:</strong> Allows users to log in using their existing corporate credentials through SAML 2.0, OAuth, or OpenID Connect. Integration with corporate identity providers such as Okta, Azure AD, or Google using <strong>SAML 2.0</strong>, <strong>OAuth 2.0</strong>, or <strong>OpenID Connect</strong> protocols for authentication</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Eliminates the need for separate TestRail passwords.<ul class=\"list-bullet\"><li>Users authenticate with their existing corporate credentials - no new passwords to remember or manage.</li></ul>\n</li>\n<li>Reduces the risk of weak or reused passwords.<ul class=\"list-bullet\"><li>Enforces corporate password and security policies consistently across applications.</li></ul>\n</li>\n<li>Simplifies user provisioning and de‑provisioning when staff join or leave.<ul class=\"list-bullet\"><li>Administrators streamline account creation and termination via the identity provider—no manual syncing needed</li></ul>\n</li>\n</ul><h3 id=\"h_01K1ZBWRTZW7RWPARSP3D3VCBP\"><a href=\"https://support.testrail.com/hc/en-us/articles/7619613118484\" target=\"_blank\" rel=\"noopener noreferrer\">Audit Logging</a></h3><p><strong>What it is:</strong> Tracks every create, update, and delete action across your TestRail projects. A detailed activity trail recording all create, update, and delete actions across projects, including filtering and export capabilities.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Provides a complete activity trail for compliance audits.<ul class=\"list-bullet\"><li>Ensures visibility into every change - who did what and when - for audit and compliance purposes.</li></ul>\n</li>\n<li>Helps identify and resolve unauthorized changes.<ul class=\"list-bullet\"><li>Enables detection of unauthorized activity, reconstructs events post‑incident, and supports regulatory requirements</li></ul>\n</li>\n<li>Gives project managers transparency into who changed what and when.<ul class=\"list-bullet\"><li>Helps administrators proactively spot errors or misuse.</li></ul>\n</li>\n</ul><h2 id=\"h_01K1ZBWRV1CNZN4ZP0VNXF79F0\">2. Enterprise‑Scale Test Management</h2><h3 id=\"h_01K1ZBWRV220146YF5V73V63CH\"><a href=\"https://support.testrail.com/hc/en-us/articles/7768851133716\" target=\"_blank\" rel=\"noopener noreferrer\">Test Parameterization &amp; Data Sets</a></h3><p><strong>What it is:</strong> Lets you define variables (parameters) and reusable sets of data, so the same test case can run under different conditions without duplication.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Prevents duplicate test cases for similar scenarios.<ul class=\"list-bullet\"><li>Speeds up test creation by reusing existing structures.</li></ul>\n</li>\n<li>Makes updates easier - change the data in one place, and it applies everywhere.<ul class=\"list-bullet\"><li>Reduces maintenance - update data in one place instead of editing multiple cases.</li></ul>\n</li>\n<li>Saves time when testing across multiple configurations.<ul class=\"list-bullet\"><li>Supports testing across different configurations, environments, or inputs.</li></ul>\n</li>\n</ul><h3 id=\"h_01K1ZBWRV3XQDDEV7GMCSKYQF7\"><a href=\"https://support.testrail.com/hc/en-us/articles/7768433966996\" target=\"_blank\" rel=\"noopener noreferrer\">Test Case Versioning</a></h3><p><strong>What it is:</strong> Automatically tracks every change to a test case and allows you to view, compare, and restore past versions. Maintaining a record of all changes to a test case, allows you to compare or restore past versions.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Protects against accidental loss of important test details.</li>\n<li>Helps track how test cases evolve over time.<ul class=\"list-bullet\"><li>Enables side‑by‑side comparisons to understand changes over time.</li></ul>\n</li>\n<li>Supports regulated industries where change history is required.<ul class=\"list-bullet\"><li>Meets regulatory requirements in industries where change history is mandatory.</li></ul>\n</li>\n</ul><figure class=\"wysiwyg-media\"><div data-oembed-url=\"https://youtu.be/GYRDuzfKyv8?feature=shared\"><iframe style=\"width: 100%; aspect-ratio: 16 / 9;\" src=\"//www.youtube-nocookie.com/embed/GYRDuzfKyv8?feature=shared\" frameborder=\"0\" allowfullscreen=\"\" allow=\"encrypted-media\"></iframe></div></figure><p> </p><h3 id=\"h_01K1ZBWRV5PNDEARMWBT49V9ZA\"><a href=\"https://support.testrail.com/hc/en-us/articles/7766980011028\" target=\"_blank\" rel=\"noopener noreferrer\">Review &amp; Approval Workflows</a></h3><p><strong>What it is:</strong> Adds defined stages - Draft, Review, and Approved - before a test case is ready for execution.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Guarantee quality by having a second set of eyes review each test.<ul class=\"list-bullet\"><li>Ensures only reviewed and complete cases enter test runs.</li></ul>\n</li>\n<li>Prevents unverified or incomplete cases from entering test runs.<ul class=\"list-bullet\"><li>Improve quality control and reduces the risk of missed defects.</li></ul>\n</li>\n<li>Supports formal approval processes for compliance.<ul class=\"list-bullet\"><li>Assist compliance with processes that require documented approvals.</li></ul>\n</li>\n</ul><figure class=\"wysiwyg-media\"><div data-oembed-url=\"https://youtu.be/IWDv18ef_nA?feature=shared\"><iframe style=\"width: 100%; aspect-ratio: 16 / 9;\" src=\"//www.youtube-nocookie.com/embed/IWDv18ef_nA?feature=shared\" frameborder=\"0\" allowfullscreen=\"\" allow=\"encrypted-media\"></iframe></div></figure><h2 id=\"h_01K1ZBWRV7Y5P2QNXCGXHYVV3H\">3. Administration at Scale</h2><h3 id=\"h_01K1ZBWRV78FSZVVBNE3X2P98S\"><a href=\"https://support.testrail.com/hc/en-us/articles/7766616883348\" target=\"_blank\" rel=\"noopener noreferrer\">Project‑Level Administration</a></h3><p><strong>What it is:</strong> Allows assigning admin privileges per project instead of across the entire TestRail instance.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Improves security by limiting the scope of admin powers.<ul class=\"list-bullet\"><li>Limits access to only what’s needed.</li></ul>\n</li>\n<li>Makes it easier to delegate administrative tasks without risking global changes.</li>\n<li>Reduces the risk of accidental global changes.<ul class=\"list-bullet\"><li>Helps large organizations manage separate teams and projects securely.</li></ul>\n</li>\n</ul><figure class=\"wysiwyg-media\"><div data-oembed-url=\"https://youtu.be/Yu1HUvmq-l0?feature=shared\"><iframe style=\"width: 100%; aspect-ratio: 16 / 9;\" src=\"//www.youtube-nocookie.com/embed/Yu1HUvmq-l0?feature=shared\" frameborder=\"0\" allowfullscreen=\"\" allow=\"encrypted-media\"></iframe></div></figure><p> </p><h3 id=\"h_01K1ZBWRVBC87RAFCSB94R5RX8\"><a href=\"https://support.testrail.com/hc/en-us/articles/7764722657684\" target=\"_blank\" rel=\"noopener noreferrer\">Custom Email Notifications</a></h3><p><strong>What it is:</strong> Lets you adjust the content and recipients of system emails, allowing the tailoring of content, triggers, and recipients of system email notifications.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Ensures stakeholders get relevant updates without unnecessary noise.<ul class=\"list-bullet\"><li>Keeps communications relevant to each stakeholder.</li></ul>\n</li>\n<li>Can be tailored to different projects and roles.<ul class=\"list-bullet\"><li>Reduces email clutter by sending only necessary updates.</li></ul>\n</li>\n<li>Improves communication efficiency.<ul class=\"list-bullet\"><li>Enhance responsiveness by delivering targeted information.</li></ul>\n</li>\n</ul><h3 id=\"h_01K1ZBWRVDETNFB98P9J95RNJN\"><span style=\"color: #0072CE;\">Enhanced API Performance</span></h3><p><strong>What it is:</strong> Optimized API endpoints with higher rate limits and faster response times for large data requests.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Supports automation at scale without slowing down workflows.<ul class=\"list-bullet\"><li>Handles high‑volume automation and integrations without performance issues.</li></ul>\n</li>\n<li>Operate high‑volume requests from CI/CD systems and integrations.<ul class=\"list-bullet\"><li>Keeps CI/CD pipelines running smoothly even with thousands of test cases.</li></ul>\n</li>\n<li>Enables advanced reporting without timeouts.<ul class=\"list-bullet\"><li>Supports complex reporting and data migration tasks.</li></ul>\n</li>\n</ul><h3 id=\"h_01K2511WDPWBMX15ASZ77GD698\"><a href=\"https://support.testrail.com/hc/en-us/articles/7614836775956-Data-Storage-and-Management#HowtoIncreaseYourStorageorRemoveData:~:text=Upgrade%20to%20Enterprise\" target=\"_blank\" rel=\"noopener noreferrer\">Enforced Storage Limits</a></h3><p data-start=\"297\" data-end=\"506\"><strong data-start=\"297\" data-end=\"312\">What it is:</strong> TestRail Cloud now includes defined storage limits for all plans. Enterprise customers have <strong data-start=\"405\" data-end=\"435\">500 GB of included storage monthly</strong>. Usage beyond this limit is billed separately.</p><p data-start=\"297\" data-end=\"506\"><strong data-start=\"485\" data-end=\"504\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"507\" data-end=\"570\"><p data-start=\"509\" data-end=\"570\">Encourages better storage hygiene and management practices.</p></li>\n<li data-start=\"571\" data-end=\"636\"><p data-start=\"573\" data-end=\"636\">Gives teams visibility into their usage and growth over time.</p></li>\n<li data-start=\"637\" data-end=\"747\"><p data-start=\"639\" data-end=\"747\">Extra time is provided: billing for overages will begin ~30 days after the initial release to allow cleanup.</p></li>\n</ul><h3 id=\"h_01K252GAY0VWRK67ZJPRKKSSXT\" data-section-id=\"169i7iz\" data-start=\"754\" data-end=\"788\"><span style=\"color: #0072CE;\">Bulk Attachment Deletion</span></h3><p data-start=\"789\" data-end=\"946\"><strong data-start=\"789\" data-end=\"804\">What it is:</strong> A new built-in feature that lets administrators select and delete large sets of file attachments with a single click.</p><p data-start=\"789\" data-end=\"946\"><strong data-start=\"925\" data-end=\"944\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"947\" data-end=\"1022\"><p data-start=\"949\" data-end=\"1022\">Makes it easier to clean up outdated, unnecessary, or duplicated files.</p></li>\n<li data-start=\"1023\" data-end=\"1080\"><p data-start=\"1025\" data-end=\"1080\">Helps teams stay within their included storage limit.</p></li>\n<li data-start=\"1081\" data-end=\"1157\"><p data-start=\"1083\" data-end=\"1157\">Storage usage updates immediately, so you can monitor impact in real-time.</p></li>\n</ul><h2 id=\"h_01K1ZBWRVF8P2QTVKFKN0W555X\">4. Disaster Recovery &amp; Backups</h2><h3 id=\"h_01K1ZBWRVFKEPS5HWWJR6FNEBB\"><a href=\"https://support.testrail.com/hc/en-us/articles/7649101787796\" target=\"_blank\" rel=\"noopener noreferrer\">Configurable Backup Window</a></h3><p><strong>What it is:</strong> Lets administrators choose the daily cloud backup time.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Avoids backups running during peak usage.</li>\n<li>Minimizes potential performance impact on active users.</li>\n</ul><h3 id=\"h_01K1ZBWRVGERP5620SQZ5Q8HZP\"><a href=\"https://support.testrail.com/hc/en-us/articles/7649101787796\" target=\"_blank\" rel=\"noopener noreferrer\">On‑Demand Restoration</a></h3><p><strong>What it is:</strong> Allows administrators to restore the most recent backup immediately.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Reduces downtime after a critical error or data loss/corruption.</li>\n<li>Quickly restores the system to a safe, known state.</li>\n</ul><h3 id=\"h_01K1ZBWRVH4BAED9ZHWP545AYT\">\n<span style=\"color: #0072CE;\">Server‑Side Audit Logs</span> (if self‑hosted)</h3><p><strong>What it is:</strong> Stores audit logs in an external location when running a self‑hosted (on-premise) TestRail instance.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Keeps a record even if the main instance is unavailable.<ul class=\"list-bullet\"><li><p data-start=\"3427\" data-end=\"3494\">Preserves change history even if the main application is offline.</p></li></ul>\n</li>\n<li>Helps meet internal or regulatory audit requirements.<ul class=\"list-bullet\"><li data-start=\"3495\" data-end=\"3570\"><p data-start=\"3497\" data-end=\"3570\">Meets internal and external audit requirements for secure record keeping.</p></li></ul>\n</li>\n</ul><h2 id=\"h_01K1ZBWRVJ150Z2Z4401VKT1Y1\">5. Support &amp; Onboarding</h2><p><strong>What it is:</strong> Priority Enterprise support with faster SLAs, access to experienced engineers, and guided onboarding.</p><p><strong>Why it matters:</strong></p><ul class=\"list-bullet\">\n<li>Keeps teams productive by resolving issues quickly.<ul class=\"list-bullet\"><li><p data-start=\"3753\" data-end=\"3825\">Ensures technical issues are resolved rapidly to keep projects moving.</p></li></ul>\n</li>\n<li>Ensures a smooth setup and adoption process.<ul class=\"list-bullet\"><li><p data-start=\"3828\" data-end=\"3882\">Provides expert guidance during setup and migration.</p></li></ul>\n</li>\n<li>Grants access to TestRail experts for best‑practice guidance.<ul class=\"list-bullet\"><li data-start=\"3883\" data-end=\"3943\"><p data-start=\"3885\" data-end=\"3943\">Reduces learning curves so teams become productive faster.</p></li></ul>\n</li>\n<li data-start=\"3883\" data-end=\"3943\"><p data-start=\"3885\" data-end=\"3943\">Dedicated email to Support (if you need more info, reach out your CSM).</p></li>\n</ul><h2 id=\"h_01K1ZBWRVK5EZYMF4EG940PN9M\">6. Stakeholder Visibility &amp; Reporting</h2><h3 id=\"h_01K1ZBWRVMSC0EMQX95Z7YFRXZ\"><a href=\"https://support.testrail.com/hc/en-us/sections/34885154480660-Cross-Project-Reports\" target=\"_blank\" rel=\"noopener noreferrer\">Cross‑Project Reports</a></h3><p data-start=\"4028\" data-end=\"4138\"><strong data-start=\"4028\" data-end=\"4043\">What it is:</strong> Combines results from multiple projects into a single, unified report.</p><p data-start=\"4028\" data-end=\"4138\"><strong data-start=\"4117\" data-end=\"4136\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"4139\" data-end=\"4206\"><p data-start=\"4141\" data-end=\"4206\">Gives management a high‑level view of overall testing progress.</p></li>\n<li data-start=\"4207\" data-end=\"4267\"><p data-start=\"4209\" data-end=\"4267\">Eliminates manual data gathering across different teams.</p></li>\n<li data-start=\"4268\" data-end=\"4330\"><p data-start=\"4270\" data-end=\"4330\">Supports decision‑making with complete, up‑to‑date insights.</p></li>\n</ul><h3 id=\"h_01K1ZBWRVMDCN8GATQ08PWDQCQ\"><span style=\"color: #0072CE;\">Visual Reporting Templates</span></h3><p data-start=\"4374\" data-end=\"4483\"><strong data-start=\"4374\" data-end=\"4389\">What it is:</strong> Pre‑built templates for charts, trend graphs, and summary dashboards.</p><p data-start=\"4374\" data-end=\"4483\"><strong data-start=\"4462\" data-end=\"4481\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"4484\" data-end=\"4553\"><p data-start=\"4486\" data-end=\"4553\">Makes it easy to present testing data to non‑technical audiences.</p></li>\n<li data-start=\"4554\" data-end=\"4602\"><p data-start=\"4556\" data-end=\"4602\">Saves time building executive‑level reports.</p></li>\n<li data-start=\"4603\" data-end=\"4663\"><p data-start=\"4605\" data-end=\"4663\">Improves understanding of trends and progress at a glance.</p></li>\n</ul><h2 id=\"h_01K1ZBWRVPW504EF1C11YW9ERZ\">7. Integrations &amp; Customization</h2><p data-start=\"4710\" data-end=\"4906\"><strong data-start=\"4710\" data-end=\"4725\">What it is:</strong> Connections to CI/CD tools, issue trackers, and automation frameworks, with Enterprise‑<strong>exclusive </strong>API enhancements for larger and more complex data handling.</p><p data-start=\"4710\" data-end=\"4906\"><strong data-start=\"4885\" data-end=\"4904\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"4907\" data-end=\"4970\"><p data-start=\"4909\" data-end=\"4970\">Automates test result uploads, bug tracking, and reporting.</p></li>\n<li data-start=\"4971\" data-end=\"5033\"><p data-start=\"4973\" data-end=\"5033\">Supports large datasets without slowing down integrations.</p></li>\n<li data-start=\"5034\" data-end=\"5089\"><p data-start=\"5036\" data-end=\"5089\">Adapts to unique workflows with flexible API options.</p></li>\n</ul><h2 id=\"h_01K1ZBWRVQ085A45A05VTK8WZK\">8. Deployment Options</h2><h3 id=\"h_01K1ZBWRVQ5A4W5M00SR2RSW1K\"><span style=\"color: #0072CE;\">Enterprise Cloud</span></h3><p data-start=\"5153\" data-end=\"5282\"><strong data-start=\"5153\" data-end=\"5168\">What it is:</strong> Fully managed, hosted by TestRail, with backups, updates, and monitoring handled for you.</p><p data-start=\"5153\" data-end=\"5282\"><strong data-start=\"5261\" data-end=\"5280\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"5283\" data-end=\"5336\"><p data-start=\"5285\" data-end=\"5336\">Removes the need for internal server maintenance.</p></li>\n<li data-start=\"5337\" data-end=\"5403\"><p data-start=\"5339\" data-end=\"5403\">Always runs the latest version with enterprise‑grade security.</p></li>\n<li data-start=\"5404\" data-end=\"5465\"><p data-start=\"5406\" data-end=\"5465\">Allows teams to focus on testing instead of infrastructure.</p></li>\n</ul><h3 id=\"h_01K1ZBWRVRQBN5MRXPHWRJ5VPK\"><a href=\"https://support.testrail.com/hc/en-us/articles/7104258426772\" target=\"_blank\" rel=\"noopener noreferrer\">Self‑Hosted (Server)</a></h3><p data-start=\"5503\" data-end=\"5595\"><strong data-start=\"5503\" data-end=\"5518\">What it is:</strong> Installed and maintained on your own infrastructure.</p><p data-start=\"5503\" data-end=\"5595\"><strong data-start=\"5574\" data-end=\"5593\">Why it matters:</strong></p><ul class=\"list-bullet\">\n<li data-start=\"5596\" data-end=\"5655\"><p data-start=\"5598\" data-end=\"5655\">Full control over data residency and security policies.</p></li>\n<li data-start=\"5656\" data-end=\"5710\"><p data-start=\"5658\" data-end=\"5710\">Ability to integrate deeply with internal systems.</p></li>\n<li data-start=\"5711\" data-end=\"5771\"><p data-start=\"5713\" data-end=\"5771\">Customizable to meet specific organizational requirements.</p></li>\n</ul><h2 id=\"h_01K1ZBWRVT2VM5N1ZPSDH35972\">Getting started</h2><p>To start using Enterprise features:</p><ol class=\"list-colored\">\n<li>Visit the <a href=\"https://support.testrail.com/hc/en-us/sections/7076652585364-Enterprise-guide\" target=\"_blank\" rel=\"noopener noreferrer\">Enterprise Guide section</a>.</li>\n<li>Read the detailed guides for each feature: SSO, audit logging, versioning, review workflows, parameterization, backups, and more.</li>\n<li>Watch our administration and feature tour webinars on the <a href=\"https://support.testrail.com/hc/en-us\" target=\"_blank\" rel=\"noopener noreferrer\">TestRail Resources page</a>.</li>\n<li>Visit out Pricing Plan to learn the differences between <a href=\"https://www.testrail.com/pricing/\" target=\"_blank\" rel=\"noopener noreferrer\">Enterprise</a> and Professional.</li>\n</ol><div class=\"callout callout--info\">\n<h4 class=\"callout__title callout__icon\" id=\"h_01K4D26506F8NTVDSQ98GABQ4T\"><em class=\"fas fa-info-circle\"><em> </em></em></h4>\n<p>🎓 <strong>Level up your knowledge with </strong><span style=\"color: #0072CE;\"><strong>TestRail Academy</strong></span><strong>!</strong><br>Explore free, self-paced courses to get the most out of TestRail.</p>\n<p>👉 Start now our course <a style=\"color: #0072CE;\" href=\"https://academy.testrail.com/plus/catalog/courses/137\" target=\"_blank\" rel=\"noopener noreferrer\"><strong><span class=\"wysiwyg-underline\">Advanced Testing with TestRail Enterprise</span></strong></a></p>\n<p><a href=\"https://academy.testrail.com/plus/catalog/courses/137\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://support.testrail.com/hc/article_attachments/40002212348564\" alt=\"1679917783_TestRail_Academy_Course_Banner_Image.png\" width=\"1170\" height=\"449\"></a></p>\n</div>","user_segment_ids":[]},{"id":39810987825556,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/39810987825556.json","html_url":"https://support.testrail.com/hc/en-us/articles/39810987825556-Managing-Instance-Security","author_id":6916166854292,"comments_disabled":true,"draft":false,"promoted":false,"position":0,"vote_sum":-1,"vote_count":1,"section_id":7102839378196,"created_at":"2025-07-30T20:38:03Z","updated_at":"2025-08-05T14:20:30Z","name":"Managing Instance Security","title":"Managing Instance Security","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-08-05T14:20:30Z","user_segment_id":null,"permission_group_id":6972358691476,"content_tag_ids":[],"label_names":[],"body":"<p>Inside your project, navigate to <strong>Admin &gt; Site Settings &gt; Security</strong>.</p><p>Here administrators can configure security related features to control access, protect user accounts, and safeguard data.</p><figure class=\"wysiwyg-image\"><img style=\"aspect-ratio: 1418/1195;\" src=\"https://support.testrail.com/hc/article_attachments/39811571941908\" alt=\"security 1.png\" width=\"1418\" height=\"1195\"></figure><h2 id=\"h_01K1EC5QCB7FGWHE3HXDVN6D92\">Password Policy</h2><p>This setting enforces a certain required password complexity the project demands to improve account security (not used for existing passwords or passwords automatically generated by TestRail). Click the dropdown and select between password complexity options that have the following criteria:</p><ul class=\"list-bullet\">\n<li>From 8 to 12 characters long</li>\n<li>Contain both uppercase and lowercase letters</li>\n<li>Include numbers or special characters </li>\n</ul><h2 id=\"h_01K1EC5QCEY931CWNVX43FKFMK\">Disable Forgot Password Functionality</h2><p>This setting disables the ability to reset the password using the “Forgot Password” email feature. This is useful for systems using external authentication providers, and also when an organization wants to limit the possibility of email-based password resets for added security.</p><h2 id=\"h_01K1EC5QCFEHQYJR5NETVR4YXH\">Disable Invite User Functionality</h2><p>Enabling this lets TestRail not send invite emails when a user is added through the Invite User feature. So, this email lets users set their password when user accounts are managed manually or through a central identity provider.</p><p>Also, this can be done manually when organizations want to handle initial communication and onboarding themselves.</p><h2 id=\"h_01K1EC5QCG75S5MBNGGDKEF8MQ\">Enable Multi-Factor Authentication (MFA)</h2><p>This option lets TestRail users set up MFA using an authenticator app for an additional layer of login security in any new session.</p><p> When enabled:</p><ul class=\"list-bullet\">\n<li>Users can configure MFA in their account settings.<br>MFA is not enforced globally inside a project unless an admin sets it individually per user account.</li>\n<li>It does not apply to SSO logins, as those rely on external identity providers. </li>\n</ul><h2 id=\"h_01K1EC5QCH887QZKDMFC171KH7\">Allow Access to TestRail from the Following IPs Only</h2><p>You can restrict TestRail access by allowing only specific IP addresses or networks. A type of allow-list or “whitelist” is implemented this way, adding another layer of cybersecurity. Each IP or network must be entered on a separate line:</p><ul class=\"list-bullet\">\n<li>Simple IP: 192.168.1.1</li>\n<li>Or entire networks: 192.168.1.0/24</li>\n</ul><p>With this access control, you can prevent unauthorized access from unknown or public networks.</p><p>By clicking <strong>Add my IP address</strong>, it automatically adds the administrator’s current IP being used for convenience.</p><h2 id=\"h_01K1EC5QCKYVG8PP3QHBSSMDAY\">CSP – Allow Access TestRail to Remote Addresses</h2><p>CSP is a security mechanism that allows and limits the remote addresses TestRail can communicate with, to protect from certain types of attacks.</p><p>Admins can specify approved remote URLs (one per line) that TestRail is permitted to connect to, for example: https://api.example.com/get/</p><p>You can use this option whenever you are integrating TestRail with external systems, and ensuring TestRail only sends data to approved, secure destinations.</p><p><br>After you finish editing your security settings, click <strong>Save settings </strong>at the bottom.  </p>","user_segment_ids":[]},{"id":39796248401812,"url":"https://gurock.zendesk.com/api/v2/help_center/en-us/articles/39796248401812.json","html_url":"https://support.testrail.com/hc/en-us/articles/39796248401812-TestRail-Server-Cassandra-Data-Migration-to-MySQL-for-Linux","author_id":12818215810836,"comments_disabled":false,"draft":false,"promoted":false,"position":0,"vote_sum":-4,"vote_count":10,"section_id":39794668286484,"created_at":"2025-07-30T14:18:30Z","updated_at":"2026-05-20T01:49:01Z","name":"TestRail Server Cassandra Data Migration to MySQL for Linux","title":"TestRail Server Cassandra Data Migration to MySQL for Linux","source_locale":"en-us","locale":"en-us","outdated":false,"outdated_locales":[],"edited_at":"2025-08-07T20:03:46Z","user_segment_id":null,"permission_group_id":3142991,"content_tag_ids":[],"label_names":[],"body":"<p>Starting with TestRail Server 9.4, attachment storage will transition from Cassandra to Microsoft SQL Server or MySQL. The 9.4 update includes a supported migration script that allows you to copy your existing attachments from Cassandra to MS SQL Server or MySQL. Your original Cassandra data will remain intact. </p><div class=\"callout\">\n<p><strong>Note:</strong> If you're already using TestRail 8.1, you won't need to follow the steps below. However, you will need to manually edit config.php to remove any Cassandra-related details. Additionally, please verify that TestRail is operating in SQL-only mode by checking the settings table:</p>\n<ul>\n<li>primary_attachment_db should be set to \"sql\"</li>\n<li>attachments_to_both_dbs should be set to \"0\"</li>\n</ul>\n</div><p>You may run the migration at your own pace. However, starting with the following release (TestRail 9.5), completion of the migration will be required to upgrade. Customers who have not completed the migration will be unable to install TestRail 9.5 and all future updates until the migration is complete.</p><p>If you prefer not to migrate, you may continue using your current version. Please note that TestRail Server support covers the past two years of active releases, so remaining current ensures continued access to support and security updates.</p><p>If you would like to proceed, here are step-by-step instructions:</p><!-- START ordered list with colored numbers -->\n<ol class=\"list-colored\">\n  <li>\n    Open your shell (e.g., Terminal, PowerShell)  and navigate to the\n    deprecation_script folder.\n  </li>\n  <li>\n    Run the following command to verify that Composer is installed and running\n    properly: \n    <pre><code class=\"shell hljs\"><span class=\"bash\">composer -V</span></code></pre>\n    <p>\n      If Composer isn’t running, please refer to the <a href=\"https://getcomposer.org/\">project’s documentation</a> for instructions on how to install it.\n    </p>\n  </li>\n  <li>\n    Install the necessary dependencies with the following command:\n    <pre><code class=\"shell hljs\"><span class=\"bash\">composer update</span></code></pre>\n  </li>\n  <li>\n    Verify the connection to the MySQL database:\n    <pre><code class=\"shell hljs\"><span class=\"bash\">mysql -h <host> -u testrail -p</host></span></code></pre>\n  </li>\n  <li>\n    (Optional) Do a dry-run to verify that the Migration Script is working:\n    <pre><code class=\"shell hljs\"><span class=\"bash\">php TestRailSqlToCassandraMigration.php -d2 -r -m\"driver=mysql;host=<host>;port=<port>;database=<database>;user=<user>;password=<password>\" -s\"host=<host>;port=9042;keyspace=<keyspace>;user=<user>;password=<password>\" -v2 -b --attachments=\"<attachments location=\"location\">\"</attachments></password></user></keyspace></host></password></user></database></port></host></span></code></pre>\n  </li>\n  <li>\n    Make sure to fill config.ini file with the credentials to connect to\n    database (if your password(s) include special characters, make sure to\n    place them inside double quotes)\n    <ol class=\"list-colored\">\n      <li>\n         In config.ini file `driver = mysql`\n          </li>\n    </ol>\n  </li>\n  <li>\n    If all the previous steps completed successfully, run the Deprecation\n    Script with with the following command:\n    <pre><code class=\"shell hljs\"><span class=\"bash\">php TestRailCassandraDeprecation.php</span></code></pre>\n  </li>\n  <li>\n    Alternatively, you can also add the --force-deprecation flag to force\n    the deprecation process to run even in the event that errors are encountered\n    when migrating the attachments:\n    <pre><code class=\"shell hljs\"><span class=\"bash\">php TestRailCassandraDeprecation.php --force-deprecation</span></code></pre>\n  </li>\n</ol>\n<!-- END ordered list with colored numbers -->","user_segment_ids":[]}],"sort_by":"position","sort_order":"asc"}