<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>TestRelic - Docs Blog</title>
        <link>https://docs.testrelic.ai/blog</link>
        <description>TestRelic - Docs Blog</description>
        <lastBuildDate>Tue, 02 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Own your LLM evals: capture DeepEval runs in TestRelic]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[testrelic-deepeval captures your DeepEval LLM-evaluation results and uploads them to your own TestRelic org instead of Confident AI. Track Eval Stability over time, view evals in the same Run Detail and Session Workspace as your tests, and never block CI with an offline queue.]]></description>
            <content:encoded><![CDATA[<p>If you evaluate LLM output with <a href="https://github.com/confident-ai/deepeval" target="_blank" rel="noopener noreferrer" class="">DeepEval</a>, your eval results are some of the most valuable test data you have — and until now they lived in a separate tool from the rest of your tests. <strong>testrelic-deepeval</strong> changes that: it captures your DeepEval runs and uploads them to <em>your</em> TestRelic org, so evals sit next to your browser, API, and mobile tests with the same history, AI Insights, and dashboards.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-problem-with-eval-data-in-a-silo">The problem with eval data in a silo<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#the-problem-with-eval-data-in-a-silo" class="hash-link" aria-label="Direct link to The problem with eval data in a silo" title="Direct link to The problem with eval data in a silo" translate="no">​</a></h2>
<p>DeepEval is great at running evaluations. But by default its results go to Confident AI — a different platform from where your QA and engineering teams already track quality. That split means two dashboards, two notions of "is this passing," and no shared history between your functional tests and your eval suite.</p>
<p>We kept hearing the same ask: <em>just put the evals where the rest of our tests are.</em> So we built a bridge.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-it-works">How it works<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#how-it-works" class="hash-link" aria-label="Direct link to How it works" title="Direct link to How it works" translate="no">​</a></h2>
<p><code>testrelic-deepeval</code> reads DeepEval's in-memory <code>TestRun</code> and uploads it to TestRelic's native evals API. No monkey-patching, no HTTP redirect — it just reads the state DeepEval already produced. There are two ways to use it.</p>
<p><strong>As a pytest plugin (zero code changes):</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">pip </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> testrelic-deepeval</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">testrelic login</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">deepeval </span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">test</span><span class="token plain"> run tests/</span><br></span></code></pre></div></div>
<p>The plugin captures the run at session finish and uploads it. If no credentials are present it quietly no-ops, and it never fails your tests — upload errors are swallowed.</p>
<p><strong>As a programmatic wrapper:</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">evals.py</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> deepeval</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">test_case </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> LLMTestCase</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> deepeval</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">metrics </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> AnswerRelevancyMetric</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> testrelic </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> evaluate</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">results </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> evaluate</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    test_cases</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">LLMTestCase</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token builtin" style="color:rgb(130, 170, 255)">input</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">"Hi"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> actual_output</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">"Hello"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    metrics</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">AnswerRelevancyMetric</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">threshold</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token number" style="color:rgb(247, 140, 108)">0.7</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic"># results is whatever deepeval.evaluate() returns; upload is automatic</span><br></span></code></pre></div></div>
<p>The <code>evaluate()</code> wrapper is a drop-in for <code>deepeval.evaluate()</code> — run your eval the way you already do, and the upload happens for you. Full command reference is on the <strong><a class="" href="https://docs.testrelic.ai/python/deepeval/cli">CLI Reference</a></strong> page.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-eval-workspace">The eval workspace<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#the-eval-workspace" class="hash-link" aria-label="Direct link to The eval workspace" title="Direct link to The eval workspace" translate="no">​</a></h2>
<p>Once a run uploads, it appears in the new <strong><a class="" href="https://docs.testrelic.ai/cloud-platform/evaluations">LLM Evaluations</a></strong> workspace. Eval runs render through the <em>same</em> Run Detail and Session Workspace as your functional tests — there's no bespoke eval-only UI to learn. Each repository gets an <strong>Evaluations</strong> tab next to Test Cases and Test Runs, and you can opt eval rows into the global Test Runs feed.</p>
<p>The metric we think you'll watch most is <strong>Eval Stability</strong> — how consistently your eval cases pass across runs over time. A metric that flips between pass and fail run-to-run is telling you something about either your prompt or your judge, and stability surfaces it the same way flakiness surfaces an unreliable test.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="evals-that-never-block-ci">Evals that never block CI<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#evals-that-never-block-ci" class="hash-link" aria-label="Direct link to Evals that never block CI" title="Direct link to Evals that never block CI" translate="no">​</a></h2>
<p>LLM evals call out to model providers, and provider hiccups shouldn't fail your pipeline's reporting. <code>testrelic-deepeval</code> writes failed uploads to a local offline queue (<code>~/.testrelic/queue/</code>) and replays them on demand:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">testrelic drain</span><br></span></code></pre></div></div>
<p>It also auto-detects CI context — branch, commit, and CI URL — so every eval run is anchored to the change that produced it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migrating-from-confident-ai">Migrating from Confident AI<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#migrating-from-confident-ai" class="hash-link" aria-label="Direct link to Migrating from Confident AI" title="Direct link to Migrating from Confident AI" translate="no">​</a></h2>
<p>Already sending evals to Confident AI? The package ships a helper that prints the migration steps:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">testrelic migrate-from-confident</span><br></span></code></pre></div></div>
<p>In most cases it's just installing the package, running <code>testrelic login</code>, and pointing your existing <code>deepeval test run</code> at TestRelic — your eval code doesn't change.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get started<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#get-started" class="hash-link" aria-label="Direct link to Get started" title="Direct link to Get started" translate="no">​</a></h2>
<p>Install <code>testrelic-deepeval</code>, run <code>testrelic login</code>, and run your existing eval suite. The results show up in your <strong><a class="" href="https://docs.testrelic.ai/cloud-platform/evaluations">LLM Evaluations</a></strong> workspace immediately. This pairs with the broader <strong><a class="" href="https://docs.testrelic.ai/blog/testrelic-for-python">Python SDK launch</a></strong> — evals are one of four Python packages we shipped today.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/python/deepeval/intro">TestRelic for DeepEval</a> — overview</li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/deepeval/installation">Get Started with DeepEval</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/deepeval/cli">DeepEval CLI Reference</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/evaluations">LLM Evaluations workspace</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/repositories">Repositories — Evaluations tab</a></li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Do I have to stop using Confident AI?</summary><div><div class="collapsibleContent_i85q"><p>No — <code>testrelic-deepeval</code> reads DeepEval's in-memory results, so it works alongside whatever else you have configured. Most teams point evals at TestRelic to unify with their other tests.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: What Python version do I need?</summary><div><div class="collapsibleContent_i85q"><p>Python 3.10 or newer (tested on 3.9–3.12). DeepEval itself installs via the optional extra: <code>pip install "testrelic-deepeval[deepeval]"</code>.</p></div></div></details>]]></content:encoded>
            <category>deepeval</category>
            <category>llm</category>
            <category>evals</category>
            <category>ai</category>
            <category>python</category>
            <category>announcement</category>
        </item>
        <item>
            <title><![CDATA[TestRelic now speaks Python: pytest, Playwright, DeepEval, and Appium analytics]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-for-python</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-for-python</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[TestRelic ships four pytest-native Python packages — testrelic-pytest, testrelic-playwright, testrelic-deepeval, and testrelic-appium — that capture rich test analytics and stream them to the same cloud workspace as the JavaScript SDKs. Zero-config installs, automatic HTTP API detection, and full feature parity with the Node reporters.]]></description>
            <content:encoded><![CDATA[<p>Today TestRelic speaks Python. We're shipping four pytest-native packages — <strong>testrelic-pytest</strong>, <strong>testrelic-playwright</strong>, <strong>testrelic-deepeval</strong>, and <strong>testrelic-appium</strong> — that capture the same rich test analytics our JavaScript reporters do, and stream them to the same cloud workspace. Each one installs from PyPI, activates through pytest's plugin system with no <code>conftest.py</code> wiring, and starts uploading on your next <code>pytest</code> run.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-python-and-why-now">Why Python, and why now<a href="https://docs.testrelic.ai/blog/testrelic-for-python#why-python-and-why-now" class="hash-link" aria-label="Direct link to Why Python, and why now" title="Direct link to Why Python, and why now" translate="no">​</a></h2>
<p>Half the test suites we get asked about are Python. API teams live in <code>pytest</code> + <code>httpx</code>. Browser teams have moved to <code>pytest-playwright</code>. The LLM teams run <code>deepeval</code>. Mobile teams drive Appium from the Python client. Until now, all of them had to choose between rich local reports and TestRelic's cloud — because the cloud only understood our Node SDKs.</p>
<p>So we ported the whole thing. Not a thin shim — a field-for-field port of the analytics model, so a Python run opens the exact same Session Workspace, AI Insights, and history views as a JavaScript run. Pick the package that matches your stack and you're done. The new <strong><a class="" href="https://docs.testrelic.ai/python/overview">Python SDK</a></strong> section of the docs walks through each one.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="pytest-zero-config-analytics-for-any-suite">pytest: zero-config analytics for any suite<a href="https://docs.testrelic.ai/blog/testrelic-for-python#pytest-zero-config-analytics-for-any-suite" class="hash-link" aria-label="Direct link to pytest: zero-config analytics for any suite" title="Direct link to pytest: zero-config analytics for any suite" translate="no">​</a></h2>
<p><code>testrelic-pytest</code> is the generic reporter. It works with <em>any</em> pytest project — unit, integration, or API — and the headline is that it needs no configuration at all:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">pip </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> testrelic-pytest</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(214, 222, 235)">TESTRELIC_API_KEY</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain">tr_live_</span><span class="token punctuation" style="color:rgb(199, 146, 234)">..</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">pytest</span><br></span></code></pre></div></div>
<p>That's the whole setup. The plugin auto-registers, captures every test's outcome, markers, captured output, and CI/git metadata, and uploads the run.</p>
<p>The part we're most excited about: <strong>automatic HTTP API detection</strong>. If a test makes <code>httpx</code> or <code>requests</code> calls, TestRelic classifies it as a <code>rest</code> API test and opens it in the <strong>API Session Workspace</strong> instead of the web view — capturing request and response headers and bodies, with sensitive headers masked. Real <code>assert</code> statements are recorded too, with the source expression and the evaluated values, so a failing check reads like this in the Assertions tab:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">response.status_code == 201</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">→ 200 == 201   (failed)</span><br></span></code></pre></div></div>
<p>No fixtures, no decorators. Plain pytest tests just become observable. There's more in <strong><a class="" href="https://docs.testrelic.ai/python/pytest/api-capture">HTTP API Auto-Capture</a></strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="playwright-ported-to-python">Playwright, ported to Python<a href="https://docs.testrelic.ai/blog/testrelic-for-python#playwright-ported-to-python" class="hash-link" aria-label="Direct link to Playwright, ported to Python" title="Direct link to Playwright, ported to Python" translate="no">​</a></h2>
<p><code>testrelic-playwright</code> is a full port of <code>@testrelic/playwright-analytics</code> (schema 1.3.0 — field-for-field parity). It's a pytest plugin for <code>pytest-playwright</code> that captures navigation timelines, network stats, action steps, console logs, <code>expect()</code> assertions, screenshots, and video — then renders a single-file interactive HTML report and uploads to the cloud.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">pip </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> pytest-playwright testrelic-playwright</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">playwright </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">pytest</span><br></span></code></pre></div></div>
<p>Output lands in <code>test-results/analytics-timeline.json</code> and <code>.html</code>. For large suites it streams to disk automatically (configurable via <code>reportMode</code> and <code>streamingThreshold</code>), and the bundled <code>testrelic-playwright serve</code> command hosts the report locally. BrowserStack and LambdaTest runs are detected automatically. Full reference: <strong><a class="" href="https://docs.testrelic.ai/python/playwright/configuration">Configuration</a></strong> and <strong><a class="" href="https://docs.testrelic.ai/python/playwright/installation">Get Started</a></strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="llm-evaluations-with-deepeval">LLM evaluations with DeepEval<a href="https://docs.testrelic.ai/blog/testrelic-for-python#llm-evaluations-with-deepeval" class="hash-link" aria-label="Direct link to LLM evaluations with DeepEval" title="Direct link to LLM evaluations with DeepEval" translate="no">​</a></h2>
<p><code>testrelic-deepeval</code> captures <a href="https://github.com/confident-ai/deepeval" target="_blank" rel="noopener noreferrer" class="">DeepEval</a> evaluation results and uploads them to <em>your</em> TestRelic org instead of Confident AI. The pytest plugin captures DeepEval's in-memory run at session finish — no code changes — and there's a drop-in <code>evaluate()</code> wrapper for programmatic runs:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">pip </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> testrelic-deepeval</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">testrelic login</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">deepeval </span><span class="token builtin class-name" style="color:rgb(255, 203, 139)">test</span><span class="token plain"> run tests/</span><br></span></code></pre></div></div>
<p>Eval runs land in the new <strong><a class="" href="https://docs.testrelic.ai/cloud-platform/evaluations">LLM Evaluations</a></strong> workspace, render through the same Run Detail and Session Workspace as everything else, and track an <strong>Eval Stability</strong> metric over time. We wrote a whole post on this — see <strong><a class="" href="https://docs.testrelic.ai/blog/testrelic-deepeval-llm-evals">Own your LLM evals</a></strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mobile-testing-with-appium">Mobile testing with Appium<a href="https://docs.testrelic.ai/blog/testrelic-for-python#mobile-testing-with-appium" class="hash-link" aria-label="Direct link to Mobile testing with Appium" title="Direct link to Mobile testing with Appium" translate="no">​</a></h2>
<p><code>testrelic-appium</code> (Beta) brings analytics to Appium + pytest. It auto-wraps any Appium <code>WebDriver</code> your test creates and records a full command timeline, Android logcat / iOS syslog, CDP network capture, screenshots, and video — with a named-assertion helper:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">tests/test_login.py</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> testrelic_appium </span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> assert_that</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">with</span><span class="token plain"> assert_that</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">"toHaveText"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> expected</span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token string" style="color:rgb(173, 219, 103)">"Welcome"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">assert</span><span class="token plain"> el</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token plain">text </span><span class="token operator" style="color:rgb(127, 219, 202)">==</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">"Welcome"</span><br></span></code></pre></div></div>
<p>Pure-Selenium tests are never touched. See <strong><a class="" href="https://docs.testrelic.ai/python/appium/installation">Get Started with Appium (Python)</a></strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="one-cloud-every-language">One cloud, every language<a href="https://docs.testrelic.ai/blog/testrelic-for-python#one-cloud-every-language" class="hash-link" aria-label="Direct link to One cloud, every language" title="Direct link to One cloud, every language" translate="no">​</a></h2>
<table><thead><tr><th>Package</th><th>Install</th><th>Tests it covers</th></tr></thead><tbody><tr><td><code>testrelic-pytest</code></td><td><code>pip install testrelic-pytest</code></td><td>Any pytest suite; auto-detects API tests</td></tr><tr><td><code>testrelic-playwright</code></td><td><code>pip install testrelic-playwright</code></td><td>Playwright Python browser + API tests</td></tr><tr><td><code>testrelic-deepeval</code></td><td><code>pip install testrelic-deepeval</code></td><td>DeepEval LLM evaluations</td></tr><tr><td><code>testrelic-appium</code></td><td><code>pip install testrelic-appium</code></td><td>Appium native mobile tests</td></tr></tbody></table>
<p>All four share the same conventions: set <code>TESTRELIC_API_KEY</code>, runs go to <code>https://platform.testrelic.ai</code>, failed uploads queue locally and replay with a <code>drain</code> command, and CI metadata is auto-detected. Once a run uploads it shows up in the <strong><a class="" href="https://docs.testrelic.ai/cloud-platform/dashboard-test-runs">Test Runs dashboard</a></strong> alongside your JavaScript runs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get started<a href="https://docs.testrelic.ai/blog/testrelic-for-python#get-started" class="hash-link" aria-label="Direct link to Get started" title="Direct link to Get started" translate="no">​</a></h2>
<p>Pick your package on the <strong><a class="" href="https://docs.testrelic.ai/python/overview">Python SDK overview</a></strong>, <code>pip install</code>, set your API key, and run your tests. If you're already a TestRelic user, your existing org, repos, and AI features work with Python runs immediately.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-for-python#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/python/overview">Python SDK overview</a> — choose your package</li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/pytest/api-capture">pytest — HTTP API Auto-Capture</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/playwright/installation">Playwright (Python) — Get Started</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/deepeval/installation">DeepEval — Get Started</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/python/appium/installation">Appium (Python) — Get Started</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform overview</a></li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Do I need to change my tests?</summary><div><div class="collapsibleContent_i85q"><p>No. All four packages are pytest plugins that activate on install. You set <code>TESTRELIC_API_KEY</code> and run <code>pytest</code> as usual.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Which Python versions are supported?</summary><div><div class="collapsibleContent_i85q"><p>pytest, Playwright, and Appium packages support Python 3.9+. DeepEval requires Python 3.10+ (and is tested on 3.9–3.12).</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Can Python and JavaScript runs live in the same org?</summary><div><div class="collapsibleContent_i85q"><p>Yes. They upload to the same workspace and appear together in the Test Runs feed, with framework badges to tell them apart.</p></div></div></details>]]></content:encoded>
            <category>python</category>
            <category>pytest</category>
            <category>playwright</category>
            <category>appium</category>
            <category>deepeval</category>
            <category>announcement</category>
            <category>sdk</category>
        </item>
        <item>
            <title><![CDATA[TestRelic MCP 3.1: Ask AI, marketplace, apps, artifacts, and cloud sessions]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-mcp-3-1</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-mcp-3-1</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[TestRelic MCP 3.1 adds five new capability sets — ai, marketplace, apps, artifacts, and sessions — a one-click Cursor Marketplace install that boots in mock mode, and a cleaner tr_* tool namespace with backward-compatible aliases.]]></description>
            <content:encoded><![CDATA[<p>The TestRelic MCP server started as a way to give AI coding assistants real testing context — projects, coverage, healing, impact analysis. With <strong>3.1</strong>, it grows into a full AI-workflow surface: five new capability sets, a one-click Cursor Marketplace install, and a cleaner tool namespace. It's published as <code>@testrelic/mcp</code> v3.1.2.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="five-new-capability-sets">Five new capability sets<a href="https://docs.testrelic.ai/blog/testrelic-mcp-3-1#five-new-capability-sets" class="hash-link" aria-label="Direct link to Five new capability sets" title="Direct link to Five new capability sets" translate="no">​</a></h2>
<p>MCP capabilities are opt-in via <code>--caps</code> (or the <code>TESTRELIC_MCP_CAPS</code> env var); <code>core</code> is always on. On top of the existing <code>coverage</code>, <code>creation</code>, <code>healing</code>, <code>impact</code>, <code>triage</code>, <code>signals</code>, and <code>devtools</code>, 3.1 adds five:</p>
<ul>
<li class=""><strong><code>ai</code></strong> — the Ask AI surface: tool catalog, a single-turn agent, conversation management, and artifact generators (dashboards, reports, test plans, presentations, navigation paths).</li>
<li class=""><strong><code>marketplace</code></strong> — first-class testing integrations (Jira, GitHub Actions, BrowserStack, LambdaTest, Sentry, Amplitude, Grafana Loki): catalog, connect / OAuth, and a unified <code>invoke</code>.</li>
<li class=""><strong><code>apps</code></strong> — a generic action runner for connected apps (Slack, Notion, Linear, HubSpot, Google Calendar, and more): list apps, list actions, connect, and a universal <code>execute</code>.</li>
<li class=""><strong><code>artifacts</code></strong> — list, get, export (PNG, PDF), and save-to-file for artifacts the Ask AI agent produces.</li>
<li class=""><strong><code>sessions</code></strong> — cloud test session workspaces (BrowserStack / LambdaTest): search, video, screenshots, logs, and a multi-pane workspace render.</li>
</ul>
<p>Mix and match them for the agent you're building. The full list is on the <strong><a class="" href="https://docs.testrelic.ai/mcp/capabilities">Capabilities</a></strong> page.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="one-click-install-in-cursor">One-click install in Cursor<a href="https://docs.testrelic.ai/blog/testrelic-mcp-3-1#one-click-install-in-cursor" class="hash-link" aria-label="Direct link to One-click install in Cursor" title="Direct link to One-click install in Cursor" translate="no">​</a></h2>
<p>The fastest way to try it is the Cursor Marketplace:</p>
<ol>
<li class="">Open Cursor and search <strong>Settings → Plugins</strong> for <code>testrelic-mcp</code>.</li>
<li class="">Click <strong>Install</strong>. Cursor wires up the MCP server automatically.</li>
<li class="">Open the agent and ask something like "list my TestRelic projects".</li>
</ol>
<p>The marketplace default boots in <strong>mock mode</strong> — no account, no token, no network calls — so you can explore every tool safely before connecting anything. When you're ready for real data, create a personal access token (<code>tr_mcp_*</code>) at <code>https://platform.testrelic.ai/settings/mcp-tokens</code>, run <code>npx @testrelic/mcp login</code>, and drop <code>--mock-mode</code>. The <strong><a class="" href="https://docs.testrelic.ai/mcp/quickstart">Quickstart</a></strong> has the details.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-cleaner-tool-namespace">A cleaner tool namespace<a href="https://docs.testrelic.ai/blog/testrelic-mcp-3-1#a-cleaner-tool-namespace" class="hash-link" aria-label="Direct link to A cleaner tool namespace" title="Direct link to A cleaner tool namespace" translate="no">​</a></h2>
<p>Every tool now uses a <code>tr_*</code> prefix — <code>tr_list_repos</code>, <code>tr_coverage_report</code>, <code>tr_heal_run</code>, <code>tr_analyze_diff</code>, and so on. The old <code>testrelic_*</code> names still work as <strong>deprecated aliases</strong>, so existing integrations don't break; new work should use <code>tr_*</code>. The full mapping is in the <strong><a class="" href="https://docs.testrelic.ai/mcp/tools-reference">Tools Reference</a></strong>.</p>
<p>We also corrected the default cloud URL to <code>platform.testrelic.ai</code> across the board, so a fresh install points at the right place with no configuration.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-started">Get started<a href="https://docs.testrelic.ai/blog/testrelic-mcp-3-1#get-started" class="hash-link" aria-label="Direct link to Get started" title="Direct link to Get started" translate="no">​</a></h2>
<p>If you use Cursor, install the plugin and start in mock mode — it's the lowest-friction way to see what the agent can do. For Claude Desktop, VS Code, or any other MCP client, the <strong><a class="" href="https://docs.testrelic.ai/mcp/overview">Overview</a></strong> covers local setup. This release is part of a broader day of launches — see the <strong><a class="" href="https://docs.testrelic.ai/blog/testrelic-for-python">Python SDK announcement</a></strong> for the rest.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-mcp-3-1#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/overview">TestRelic MCP overview</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/capabilities">Capabilities</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/tools-reference">Tools Reference</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/quickstart">Quickstart</a></li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Do my existing testrelic_* tool calls still work?</summary><div><div class="collapsibleContent_i85q"><p>Yes. The <code>testrelic_*</code> names are kept as deprecated aliases for backward compatibility. New tools and docs use the <code>tr_*</code> prefix.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Does the Cursor install touch my real data?</summary><div><div class="collapsibleContent_i85q"><p>No. The marketplace default runs in mock mode with no token and no network calls. You opt into real data by adding a <code>tr_mcp_*</code> token and removing <code>--mock-mode</code>.</p></div></div></details>]]></content:encoded>
            <category>mcp</category>
            <category>ai</category>
            <category>cursor</category>
            <category>announcement</category>
        </item>
        <item>
            <title><![CDATA[Ask AI comes to Microsoft Teams]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The TestRelic Microsoft Teams app brings Ask AI into Teams with full parity to the Slack app — run prompts in a channel, schedule QA digests, share artifacts back, and get failure alerts. Plus — share any AI artifact with a public or private link.]]></description>
            <content:encoded><![CDATA[<p>Last month we <a class="" href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch">brought Ask AI into Slack</a>. Today we're doing the same for <strong>Microsoft Teams</strong> — with full parity. Run an Ask AI prompt in a channel, schedule a weekly QA digest, share a dashboard back from the web app, and get a ping the moment a quality gate fails. And alongside it, we're shipping <strong>public and private share links</strong> for any AI artifact.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="parity-with-the-slack-app">Parity with the Slack app<a href="https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai#parity-with-the-slack-app" class="hash-link" aria-label="Direct link to Parity with the Slack app" title="Direct link to Parity with the Slack app" translate="no">​</a></h2>
<p>If you've used the TestRelic Slack app, you already know the Teams app. It talks to the same Ask AI runtime, produces the same artifacts, and shares the same memory and privacy posture. What you get in Teams:</p>
<ul>
<li class=""><strong>Ask AI in a channel</strong> — address the TestRelic bot with a prompt and the answer threads under your message, with charts and deep links.</li>
<li class=""><strong>Scheduled QA digests</strong> — any prompt can post on a schedule to a channel (a Monday flaky digest, a nightly regression alert that only posts on failure).</li>
<li class=""><strong>Share-back from the web app</strong> — push any Ask AI artifact to a Teams channel as a rich card or uploaded file.</li>
<li class=""><strong>Failure alerts on quality gates</strong> — a gate posts the moment it fails, with the failing case and an <strong>Open in TestRelic</strong> button.</li>
<li class=""><strong>Threaded follow-ups</strong> — replies continue the same Ask AI conversation, so context carries through.</li>
</ul>
<p>Conversations are unified across web, Slack, and Teams — a Teams-originated chat shows up in the Ask AI sidebar with a Teams badge. The app only acts on prompts addressed to it; it does not read general channel traffic.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-is-two-steps-this-part-differs-from-slack">Installing is two steps (this part differs from Slack)<a href="https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai#installing-is-two-steps-this-part-differs-from-slack" class="hash-link" aria-label="Direct link to Installing is two steps (this part differs from Slack)" title="Direct link to Installing is two steps (this part differs from Slack)" translate="no">​</a></h2>
<p>Teams is stricter than Slack about how bots reach a workspace, so installation has two parts — and it's worth being explicit about it:</p>
<ol>
<li class=""><strong>Connect in TestRelic</strong> — go to <strong>Settings → Integrations → Microsoft Teams → Connect</strong>. This uses Microsoft Entra ID (Azure AD) OAuth and binds your Teams <em>tenant</em> to your TestRelic org.</li>
<li class=""><strong>Add the Teams app package</strong> — the bot only <em>appears</em> in Teams once the app package is added: sideloaded by you, or uploaded by a Teams admin to your org's app catalog.</li>
</ol>
<p>If you Connect and the bot doesn't show up, step 2 hasn't happened yet — that's the most common support question and it's covered in the <strong><a class="" href="https://docs.testrelic.ai/integrations/ms-teams">Microsoft Teams integration guide</a></strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="share-any-ai-artifact-with-a-link">Share any AI artifact with a link<a href="https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai#share-any-ai-artifact-with-a-link" class="hash-link" aria-label="Direct link to Share any AI artifact with a link" title="Direct link to Share any AI artifact with a link" translate="no">​</a></h2>
<p>The other half of today's release works everywhere Ask AI does. Every artifact in the Ask AI panel — a dashboard, report, test plan, presentation, table, or chart — can now be shared with a <strong>public or private link</strong>:</p>
<ul>
<li class=""><strong>Public links</strong> render a read-only view of the artifact, filters and all, to anyone with the URL.</li>
<li class=""><strong>Private links</strong> require org sign-in.</li>
</ul>
<p>Shared artifacts collect in an artifact library you can browse and re-share. It's the fastest way to get a generated report in front of a stakeholder who doesn't live in TestRelic. Details on the <strong><a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a></strong> page.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="plan-notes">Plan notes<a href="https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai#plan-notes" class="hash-link" aria-label="Direct link to Plan notes" title="Direct link to Plan notes" translate="no">​</a></h2>
<p>The Teams app talks to Ask AI, which is part of the <strong>Growth</strong> plan (<a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a>). The integration installs on any plan; prompts on Starter orgs return an upgrade message.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-ms-teams-ask-ai#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/integrations/ms-teams">Microsoft Teams integration</a> — full reference + two-step install</li>
<li class=""><a class="" href="https://docs.testrelic.ai/integrations/slack">Slack integration</a> — the sibling app</li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> — runtime, artifacts, memory</li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a> — artifact types and share links</li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a></li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: I clicked Connect but the bot isn't in Teams. Why?</summary><div><div class="collapsibleContent_i85q"><p>OAuth Connect only links your tenant to TestRelic. The bot appears once the Teams app package is sideloaded or uploaded to your org's app catalog by a Teams admin. See the integration guide.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Does the Teams app read my channel messages?</summary><div><div class="collapsibleContent_i85q"><p>No. It only acts on prompts directly addressed to it — channel mentions, scheduled digests, and share-back. It does not ingest general channel traffic.</p></div></div></details>]]></content:encoded>
            <category>integrations</category>
            <category>ms-teams</category>
            <category>ai</category>
            <category>ask-ai</category>
            <category>announcement</category>
        </item>
        <item>
            <title><![CDATA[Introducing the TestRelic Slack App: /testrelic, scheduled QA digests, and share-back from Ask AI]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-slack-app-launch</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-slack-app-launch</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Launch announcement for the TestRelic Slack App — slash commands, scheduled QA digests, dashboard share-back, failure alerts, and threaded Ask AI follow-ups. Cross-links to the Slack integration page, Ask AI docs, and Plans & Billing.]]></description>
            <content:encoded><![CDATA[<p>Today we're launching the <strong>TestRelic Slack App</strong> — a way to bring Ask AI, scheduled QA digests, and dashboard share-back directly into the channels where your team already works. Type <code>/testrelic</code> in any channel to ask anything, schedule a weekly flaky digest to <code>#qa-leads</code>, or push any artifact from the web app to Slack in one click.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-a-slack-app">Why a Slack app<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#why-a-slack-app" class="hash-link" aria-label="Direct link to Why a Slack app" title="Direct link to Why a Slack app" translate="no">​</a></h2>
<p>Most teams already have a Slack channel where QA, engineering, and on-call meet. Until today, getting a test answer into that channel meant: open the web app, navigate, screenshot, paste. Three steps too many.</p>
<p>We watched our own team and a handful of design partners do this dozens of times a week. The right answer wasn't another dashboard — it was making Ask AI reachable from inside the conversation. So we built it.</p>
<p>The Slack App is the inverse of what we already shipped as <a class="" href="https://docs.testrelic.ai/ai/ask-ai#ask-ai-apps">Ask AI Apps</a>: Ask AI Apps let the AI <strong>call out</strong> to Slack/Jira/Gmail from the web composer. The Slack App lets you <strong>call in</strong> to Ask AI from Slack. Both work together; you can install both and they don't overlap.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-you-can-do-today">What you can do today<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#what-you-can-do-today" class="hash-link" aria-label="Direct link to What you can do today" title="Direct link to What you can do today" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testrelic-slash-commands"><code>/testrelic</code> slash commands<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#testrelic-slash-commands" class="hash-link" aria-label="Direct link to testrelic-slash-commands" title="Direct link to testrelic-slash-commands" translate="no">​</a></h3>
<p><code>/testrelic &lt;prompt&gt;</code> runs the prompt through the same Ask AI runtime as the web composer — same tool calls, same context, same artifact types. Responses thread under your message with charts and deep links:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Channel: #qa-leads</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic which tests broke after yesterday's deploy?</span><br></span></code></pre></div></div>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockTitle_OeMC">Channel: #checkout-team</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic show me the flakiest tests in the checkout suite over the last 7 days</span><br></span></code></pre></div></div>
<p>Threaded follow-ups continue the same Ask AI conversation, so context like <code>@repo</code> or <code>@test_run</code> set on the first prompt carries through. You can chain prompts the way you'd chain DM replies.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="scheduled-qa-digests">Scheduled QA digests<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#scheduled-qa-digests" class="hash-link" aria-label="Direct link to Scheduled QA digests" title="Direct link to Scheduled QA digests" translate="no">​</a></h3>
<p>Any Ask AI prompt can be scheduled as a recurring digest to a Slack channel. We use these internally:</p>
<ul>
<li class=""><strong>Weekly flaky digest</strong> to <code>#qa-leads</code> every Monday 9am — three stat tiles (pass rate, flaky %, MTTR) plus the top five offenders with retry counts.</li>
<li class=""><strong>Nightly regression alert</strong> to <code>#oncall</code> after the prod E2E run — only posts if something failed.</li>
<li class=""><strong>Monthly compliance evidence</strong> to a private channel — a generated PDF report uploaded as a Slack file for audit retention.</li>
</ul>
<p>Create one by running the prompt once, then clicking <strong>Share → Schedule to Slack</strong> on the artifact. Or skip the web app entirely:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic schedule a weekly flaky digest to this channel every Monday 9am</span><br></span></code></pre></div></div>
<p>Manage all schedules at <strong>Settings → Integrations → Slack → Schedules</strong>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="share-back-from-the-web-app">Share-back from the web app<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#share-back-from-the-web-app" class="hash-link" aria-label="Direct link to Share-back from the web app" title="Direct link to Share-back from the web app" translate="no">​</a></h3>
<p>Every artifact in the Ask AI panel has a <strong>Share → Slack</strong> action. Pick a channel, add a message, and the artifact posts as a rich Slack card with metric snapshots and a deep link. Presentations and reports upload as Slack files so they stay searchable.</p>
<p>The artifact types that round-trip cleanly today:</p>
<table><thead><tr><th>Artifact</th><th>Slack representation</th></tr></thead><tbody><tr><td><code>dashboard</code></td><td>Card with 3 stat tiles + sparkline + deep link</td></tr><tr><td><code>report</code></td><td>Markdown summary + uploaded PDF</td></tr><tr><td><code>test_plan</code></td><td>Numbered list + uploaded markdown file</td></tr><tr><td><code>presentation</code></td><td>Card with cover thumbnail + uploaded slide deck</td></tr><tr><td><code>data_table</code></td><td>Slack table block (up to 50 rows)</td></tr><tr><td><code>chart</code></td><td>Inline image preview + deep link</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="failure-alerts-on-quality-gates">Failure alerts on quality gates<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#failure-alerts-on-quality-gates" class="hash-link" aria-label="Direct link to Failure alerts on quality gates" title="Direct link to Failure alerts on quality gates" translate="no">​</a></h3>
<p>Connect a monitoring quality gate to a Slack channel and the gate posts the moment it fails — with the failing test case, the threshold that was crossed, and an <strong>Open in TestRelic</strong> button. Reply in the thread with <code>/testrelic was this a flake or a real regression?</code> and the AI inspects retry patterns and CI metadata before answering. We use this to triage on-call without leaving Slack.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sample-use-cases">Sample use cases<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#sample-use-cases" class="hash-link" aria-label="Direct link to Sample use cases" title="Direct link to Sample use cases" translate="no">​</a></h2>
<p>A few patterns from our design partners and our own team:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="daily-standup-helper">Daily standup helper<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#daily-standup-helper" class="hash-link" aria-label="Direct link to Daily standup helper" title="Direct link to Daily standup helper" translate="no">​</a></h3>
<p>Run during standup to anchor the conversation in real numbers:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic what's the test pass rate trend for the last 5 days,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">and any new flaky tests this morning?</span><br></span></code></pre></div></div>
<p>The card surfaces three stat tiles plus a list of overnight regressions, so engineers can divide work before the meeting ends.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sprint-review-one-liner">Sprint review one-liner<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#sprint-review-one-liner" class="hash-link" aria-label="Direct link to Sprint review one-liner" title="Direct link to Sprint review one-liner" translate="no">​</a></h3>
<p>The day before sprint review, a scheduled digest posts to <code>#engineering-leads</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic generate a 4-slide sprint review covering test coverage,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">flakiest tests, new regressions, and MTTR for the last 14 days</span><br></span></code></pre></div></div>
<p>The deck uploads as a Slack file. Stakeholders read it in Slack; engineers open the artifact in TestRelic for drill-down.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cross-team-coverage-check">Cross-team coverage check<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#cross-team-coverage-check" class="hash-link" aria-label="Direct link to Cross-team coverage check" title="Direct link to Cross-team coverage check" translate="no">​</a></h3>
<p>A PM in <code>#growth</code> asks a coverage question without leaving Slack:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic map critical test paths from the checkout journey to confirmation</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">and flag any P0 gaps for @repo:web-app</span><br></span></code></pre></div></div>
<p>The reply renders a navigation-path map and a coverage-gap table. PM and QA align in-channel; no dashboard handoff.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="compliance-evidence">Compliance evidence<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#compliance-evidence" class="hash-link" aria-label="Direct link to Compliance evidence" title="Direct link to Compliance evidence" translate="no">​</a></h3>
<p>A monthly digest posts to a private compliance channel:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token plain">/testrelic generate a monthly QA evidence report covering all P0 paths,</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">pass-rate trends, and unresolved escapes from the @prod environment</span><br></span></code></pre></div></div>
<p>Uploaded as a PDF, linked back to the underlying TestRelic runs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="plan-and-privacy-notes">Plan and privacy notes<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#plan-and-privacy-notes" class="hash-link" aria-label="Direct link to Plan and privacy notes" title="Direct link to Plan and privacy notes" translate="no">​</a></h2>
<p>The Slack App talks to Ask AI, which is part of the <strong>Growth</strong> plan (<a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a>). On Starter orgs, <code>/testrelic</code> responds with an upgrade prompt.</p>
<p>A few privacy details worth calling out:</p>
<ul>
<li class=""><strong>Conversations are unified.</strong> Slack-originated conversations show up in the Ask AI Chat Sidebar in the web app, tagged with a Slack badge. <a class="" href="https://docs.testrelic.ai/ai/ask-ai#memory">Memory</a> is scoped to your TestRelic user, so triggering <code>/testrelic</code> from Slack and continuing from the web app under the same account gives you continuous memory.</li>
<li class=""><strong>Channel messages are not ingested.</strong> The app only acts on prompts directly addressed to it (slash commands, scheduled digests, share-back). It does not read general channel traffic.</li>
<li class=""><strong>Same training policy as the rest of Ask AI.</strong> Prompts and responses are stored in your governed conversation history and are never used to train shared models.</li>
</ul>
<p>Full scope list, install steps, and troubleshooting live on the <a class="" href="https://docs.testrelic.ai/integrations/slack">Slack integration page</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing">Installing<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#installing" class="hash-link" aria-label="Direct link to Installing" title="Direct link to Installing" translate="no">​</a></h2>
<p>The fastest path:</p>
<ol>
<li class="">Open <strong>Settings → Integrations</strong> in the TestRelic web app.</li>
<li class="">Click <strong>Connect</strong> on the Slack card.</li>
<li class="">Pick the workspace and channel; the app installs in well under a minute.</li>
</ol>
<p>Or install directly from the <a href="https://platform.testrelic.ai/integrations/slack/install" target="_blank" rel="noopener noreferrer" class="">Slack App Directory</a>. The first slash command from any user prompts them to link their Slack identity to a TestRelic account — one-time, per user.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's next<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#whats-next" class="hash-link" aria-label="Direct link to What's next" title="Direct link to What's next" translate="no">​</a></h2>
<p>A few things on the near-term roadmap based on design-partner feedback:</p>
<ul>
<li class=""><strong><code>@slack-thread</code> context</strong> — attach a Slack thread as context to an Ask AI prompt, so the AI can pick up the conversation where the channel left off.</li>
<li class=""><strong>Per-channel default scopes</strong> — pin <code>@repo</code> or <code>@environment</code> to a channel so <code>/testrelic</code> prompts there inherit it automatically.</li>
<li class=""><strong>Workflow Builder steps</strong> — drop TestRelic actions into Slack Workflows for no-code triage flows.</li>
<li class=""><strong>Bidirectional Jira</strong> — file a Jira ticket from a Slack alert thread with one click, pre-filled with the failure context.</li>
</ul>
<p>If any of these are blocking for your team, ping us in <a href="https://testrelic.co/community" target="_blank" rel="noopener noreferrer" class="">our public Slack</a> — the design partners we work with shape what ships next.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-slack-app-launch#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/integrations/slack">Slack Integration</a> — full reference, scopes, troubleshooting</li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> — runtime, artifacts, memory, Ask AI Apps</li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a> — what each artifact type looks like</li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a> — Growth plan limits and AI token quotas</li>
<li class=""><a class="" href="https://docs.testrelic.ai/integrations/jira">Jira Integration</a> — for <code>/testrelic open a ticket</code> follow-ups</li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Which plan unlocks the Slack App?</summary><div><div class="collapsibleContent_i85q"><p>The Slack App talks to Ask AI, which is part of the <strong>Growth</strong> plan. The integration itself can be installed on any plan, but <code>/testrelic</code> prompts on Starter orgs return an upgrade message.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Does the app read general Slack channel traffic?</summary><div><div class="collapsibleContent_i85q"><p>No. The app only acts on prompts directly addressed to it (slash commands, scheduled digests, share-back). It does not ingest general channel messages.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Can I run /testrelic in a DM?</summary><div><div class="collapsibleContent_i85q"><p>Yes. DMs work like channels — same slash command, same threading behavior. DM history is private to the inviting user and is not visible to other org members in the Ask AI Chat Sidebar.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Where do I manage scheduled digests?</summary><div><div class="collapsibleContent_i85q"><p><strong>Settings → Integrations → Slack → Schedules</strong> in the web app. Pause, edit cadence, or change the destination channel inline.</p></div></div></details>]]></content:encoded>
            <category>integrations</category>
            <category>slack</category>
            <category>ai</category>
            <category>ask-ai</category>
            <category>announcement</category>
        </item>
        <item>
            <title><![CDATA[Ask AI in TestRelic: conversational analysis, @ context, artifacts, and streaming]]></title>
            <link>https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights</link>
            <guid>https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights</guid>
            <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Complete overview of Ask AI—Growth plan, @repo/@test_run context, conversation history, SSE streaming, tool calling, and artifact types. Cross-links to Plans, Session Workspace, and MCP docs.]]></description>
            <content:encoded><![CDATA[<p><strong>Ask AI</strong> is TestRelic’s primary <strong>full-page conversational interface</strong> for turning natural language into answers about your organization’s tests, runs, and quality signals—and, when appropriate, into <strong>structured artifacts</strong> you can share or iterate on. The authoritative specification lives in the <a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> documentation; this article expands that material with additional cross-links for teams evaluating Ask AI against IDE-only tooling such as the <a class="" href="https://docs.testrelic.ai/mcp/overview">TestRelic MCP server</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="access-urls-and-plan-gating">Access, URLs, and plan gating<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#access-urls-and-plan-gating" class="hash-link" aria-label="Direct link to Access, URLs, and plan gating" title="Direct link to Access, URLs, and plan gating" translate="no">​</a></h2>
<p>Per the Ask AI doc:</p>
<ul>
<li class="">Open <strong>Ask AI</strong> from the <strong>left sidebar</strong> in the product.</li>
<li class="">Routes follow <code>/ai</code> for a <strong>new</strong> conversation and <code>/ai/:conversationId</code> when <strong>resuming</strong> history.</li>
</ul>
<blockquote>
<p><strong>Plan requirement:</strong> Ask AI requires the <strong>Growth</strong> plan. Pricing and limits are documented on <a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a>. The <a class="" href="https://docs.testrelic.ai/intro">Introduction</a> includes a high-level plan comparison table (Starter vs Growth) for SDK, cloud, AI, storage, and retention—use that table when stakeholders ask what unlocks Ask AI versus reporter-only usage.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="starting-conversations-and-example-prompts">Starting conversations and example prompts<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#starting-conversations-and-example-prompts" class="hash-link" aria-label="Direct link to Starting conversations and example prompts" title="Direct link to Starting conversations and example prompts" translate="no">​</a></h2>
<p>Ask AI streams token-by-token responses after you submit a prompt. The documentation ships <strong>copy-ready examples</strong>:</p>
<ol>
<li class=""><strong>Analyze recent failures</strong> — e.g. common failure patterns over seven days scoped to a repository.</li>
<li class=""><strong>Generate a test plan</strong> — structured scenarios such as checkout happy path, payment failure, inventory edge cases.</li>
<li class=""><strong>Summarize a specific run</strong> — distinguish infrastructure noise from product defects using <code>@</code> context (below).</li>
</ol>
<p>Teams onboarding many engineers should paste these patterns into internal playbooks so prompts stay consistent and auditable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-mentions-precision-without-leaking-unrelated-data"><code>@</code> mentions: precision without leaking unrelated data<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#-mentions-precision-without-leaking-unrelated-data" class="hash-link" aria-label="Direct link to -mentions-precision-without-leaking-unrelated-data" title="Direct link to -mentions-precision-without-leaking-unrelated-data" translate="no">​</a></h2>
<p>The <code>@</code> <strong>context picker</strong> (documented in a table on the Ask AI page) attaches typed entities so the model grounds answers in <strong>your</strong> org:</p>
<table><thead><tr><th>Context</th><th>Role</th></tr></thead><tbody><tr><td><code>@repo</code></td><td>Repository scope</td></tr><tr><td><code>@test_run</code></td><td>Run-level diagnostics</td></tr><tr><td><code>@test_case</code></td><td>Single test case focus</td></tr><tr><td><code>@branch</code></td><td>Branch-scoped analysis</td></tr><tr><td><code>@suite</code></td><td>Suite grouping</td></tr><tr><td><code>@tag</code></td><td>Tag-filtered views</td></tr><tr><td><code>@environment</code></td><td>Environment isolation</td></tr><tr><td><code>@integration</code></td><td>Connected integration context</td></tr></tbody></table>
<p>Type <code>@</code> in the composer to search and attach. This pattern is what makes Ask AI materially different from a generic LLM chat: the platform can invoke <strong>tools</strong> against those attachments (see “Streaming and tool use” below).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conversation-history-privacy-and-feedback">Conversation history, privacy, and feedback<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#conversation-history-privacy-and-feedback" class="hash-link" aria-label="Direct link to Conversation history, privacy, and feedback" title="Direct link to Conversation history, privacy, and feedback" translate="no">​</a></h2>
<ul>
<li class=""><strong>History:</strong> Conversations save automatically. The <strong>Chat Sidebar</strong> lists prior threads; you can <strong>resume</strong>, <strong>rename</strong>, or <strong>delete</strong> them. Conversations are <strong>private to your user within the organization</strong>—as documented on the Ask AI page.</li>
<li class=""><strong>Feedback:</strong> Thumbs up / down on each assistant message feeds product improvement loops.</li>
</ul>
<p>Document these policies in your internal AI governance memo so security reviewers understand data residency at the conversation level.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="structured-artifacts-beyond-plain-text">Structured artifacts beyond plain text<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#structured-artifacts-beyond-plain-text" class="hash-link" aria-label="Direct link to Structured artifacts beyond plain text" title="Direct link to Structured artifacts beyond plain text" translate="no">​</a></h2>
<p>Ask AI can emit <strong>artifacts</strong> rendered beside the chat. Supported types (from the official table) include:</p>
<table><thead><tr><th>Artifact type</th><th>Typical use</th></tr></thead><tbody><tr><td><code>dashboard</code></td><td>Executive-facing quality charts</td></tr><tr><td><code>report</code></td><td>Narrative test quality write-ups</td></tr><tr><td><code>test_plan</code></td><td>Scenario/step structured plans</td></tr><tr><td><code>presentation</code></td><td>Slide-style summaries</td></tr><tr><td><code>code</code></td><td>Tests, configs, or snippets</td></tr><tr><td><code>data_table</code></td><td>Tabular breakdowns</td></tr><tr><td><code>chart</code></td><td>Inline visualizations</td></tr><tr><td><code>navigation_paths</code></td><td>Navigation path maps</td></tr></tbody></table>
<p>Deeper styling and behavior notes live under <a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a>, which also covers <strong>session insights</strong> (automatic analysis in the Session Workspace Insights tab on Growth—see that page for defect, user-impact, Jira linkage, and MTTR panels).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-tool-calling-and-resilience">Streaming, tool calling, and resilience<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#streaming-tool-calling-and-resilience" class="hash-link" aria-label="Direct link to Streaming, tool calling, and resilience" title="Direct link to Streaming, tool calling, and resilience" translate="no">​</a></h2>
<p>Ask AI’s doc explains the runtime model:</p>
<ul>
<li class="">The assistant issues <strong>tool calls</strong> to fetch repository, run, and test-case data; the UI surfaces an indicator while tools run, then merges results into the streamed answer.</li>
<li class="">Streaming uses <strong>Server-Sent Events (SSE)</strong>; the platform <strong>retries and resumes</strong> if the connection drops mid-generation.</li>
</ul>
<p>For reliability engineers, that means timeouts should be tuned at the proxy layer with SSE-friendly settings—not by disabling streaming outright without product guidance.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="platform-context-where-ask-ai-sits">Platform context: where Ask AI sits<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#platform-context-where-ask-ai-sits" class="hash-link" aria-label="Direct link to Platform context: where Ask AI sits" title="Direct link to Platform context: where Ask AI sits" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform Overview</a> lists <strong>AI &amp; Intelligence</strong> as a first-class pillar alongside runs, repositories, test navigation, monitoring, integrations, and administration. Practically, Ask AI consumes the same org-wide ingestion path described there: SDK reporters produce JSON; the cloud stores and indexes it; Ask AI and other AI surfaces read it through governed tools.</p>
<p>For run-level drill-down before or after an Ask AI session, send engineers to the <a class="" href="https://docs.testrelic.ai/cloud-platform/dashboard-test-runs">Dashboard &amp; Test Runs</a> and <a class="" href="https://docs.testrelic.ai/cloud-platform/session-workspace">Session Workspace</a> documentation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ask-ai-vs-testrelic-mcp">Ask AI vs TestRelic MCP<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#ask-ai-vs-testrelic-mcp" class="hash-link" aria-label="Direct link to Ask AI vs TestRelic MCP" title="Direct link to Ask AI vs TestRelic MCP" translate="no">​</a></h2>
<table><thead><tr><th>Dimension</th><th>Ask AI</th><th>MCP</th></tr></thead><tbody><tr><td>Surface</td><td>Web app full-page chat</td><td>IDE / agent host tools</td></tr><tr><td>Primary user</td><td>Human + optional sharing</td><td>Automation-first workflows</td></tr><tr><td>Credential</td><td>Product login + plan</td><td><code>tr_mcp_</code> token + caps</td></tr><tr><td>Strength</td><td>Artifacts + UI affordances</td><td>Inline code + repo tasks</td></tr></tbody></table>
<p>Both can leverage the same underlying TestRelic data; they are <strong>complementary</strong>, not interchangeable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/intro">Introduction</a> (plan table + onboarding links)</li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform Overview</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/session-workspace">Session Workspace</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/dashboard-test-runs">Dashboard &amp; Test Runs</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/overview">TestRelic MCP overview</a></li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Which plan unlocks Ask AI?</summary><div><div class="collapsibleContent_i85q"><p><strong>Growth</strong>, per <a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> and <a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: How do I scope a question to one repository?</summary><div><div class="collapsibleContent_i85q"><p>Attach <code>@repo</code> (and other <code>@</code> types as needed) using the context picker documented in <a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: What happens if SSE disconnects mid-answer?</summary><div><div class="collapsibleContent_i85q"><p>The platform automatically <strong>retries and resumes</strong> streaming, per <a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Where do session-level AI insights appear?</summary><div><div class="collapsibleContent_i85q"><p>In the Session Workspace <strong>Insights</strong> tab; details in <a class="" href="https://docs.testrelic.ai/ai/ai-insights-artifacts">AI Insights &amp; Artifacts</a> (Growth plan).</p></div></div></details>]]></content:encoded>
            <category>ai</category>
            <category>ask-ai</category>
            <category>cloud-platform</category>
            <category>artifacts</category>
        </item>
        <item>
            <title><![CDATA[TestRelic MCP server: Model Context Protocol for AI-assisted test engineering]]></title>
            <link>https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants</link>
            <guid>https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants</guid>
            <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Production setup for TestRelic MCP—hosted mcp.testrelic.ai, npx stdio, Cursor plugin, tr_mcp tokens, capability bundles, and how MCP complements SDK reporters. Official doc alignment.]]></description>
            <content:encoded><![CDATA[<p>Coding assistants are only as good as the <strong>context</strong> they see. Pasting stack traces into chat scales poorly; re-fetching structured run history from your org is better. The <strong>TestRelic MCP</strong> server implements the <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer" class="">Model Context Protocol</a> so compatible hosts—Cursor, Claude Desktop, VS Code MCP clients, and others—can call tools that read <strong>your</strong> TestRelic cloud projects, runs, coverage signals, and related data. The <a class="" href="https://docs.testrelic.ai/mcp/overview">MCP overview</a> positions MCP alongside the SDK reporters: reporters <strong>write</strong> run data from CI and laptops; MCP <strong>reads</strong> and acts on that data inside the IDE loop.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="architecture-at-a-glance">Architecture at a glance<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#architecture-at-a-glance" class="hash-link" aria-label="Direct link to Architecture at a glance" title="Direct link to Architecture at a glance" translate="no">​</a></h2>
<p>The overview’s sequence diagram summarizes the trust boundary: your <strong>MCP host</strong> exchanges JSON-RPC with the MCP server over <strong>stdio</strong> (or streamable HTTP for hosted mode); the server then calls <strong>TestRelic cloud APIs</strong> with your credential. Integration backends (Jira, Amplitude, Grafana Loki, GitHub, TestMu AI, BrowserStack) are <strong>not</strong> duplicated inside MCP config—they are resolved from your <strong>organization</strong> in the cloud after the server authenticates, as stated in the overview and <a class="" href="https://docs.testrelic.ai/mcp/authentication">Authentication</a> pages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="production-connection-paths">Production connection paths<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#production-connection-paths" class="hash-link" aria-label="Direct link to Production connection paths" title="Direct link to Production connection paths" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/mcp/quickstart">MCP quickstart</a> is the step-by-step source for:</p>
<table><thead><tr><th>Mode</th><th>When teams choose it</th></tr></thead><tbody><tr><td><strong>Hosted MCP</strong> (<code>https://mcp.testrelic.ai/mcp</code>)</td><td>Streamable HTTP MCP without a local binary; align with your client’s credential mechanism for remote servers.</td></tr><tr><td><strong><code>npx</code> + <code>@testrelic/mcp</code></strong></td><td>stdio for any MCP host; pin a version (e.g. <code>3.0.0</code>) for reproducible installs as shown in the quickstart.</td></tr><tr><td><strong>Cursor marketplace plugin</strong></td><td>Fastest path for Cursor users; plugin bundles <code>mcp.json</code> wiring—see the quickstart for the GitHub reference repo.</td></tr></tbody></table>
<p><strong>Sandbox vs production:</strong> mock mode and local clones are documented as <strong>evaluation-only</strong>. For live org data, remove <code>--mock-mode</code> and supply a real token (quickstart + authentication).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="authentication-one-token-clear-storage-rules">Authentication: one token, clear storage rules<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#authentication-one-token-clear-storage-rules" class="hash-link" aria-label="Direct link to Authentication: one token, clear storage rules" title="Direct link to Authentication: one token, clear storage rules" translate="no">​</a></h2>
<p><a class="" href="https://docs.testrelic.ai/mcp/authentication">MCP authentication</a> documents the full lifecycle:</p>
<ol>
<li class=""><strong>Create</strong> an MCP personal access token in the web app (<code>tr_mcp_…</code> prefix).</li>
<li class=""><strong>Store</strong> it either with <code>npx -y @testrelic/mcp@3.0.0 login</code> (writes the default file) or via <code>TESTRELIC_MCP_TOKEN</code> / your client’s <code>mcp.json</code> <code>env</code> block—never commit secrets.</li>
<li class=""><strong>Align API base</strong> using <code>TESTRELIC_CLOUD_URL</code> or <code>--cloud-url</code> if your reporters already use a non-default endpoint; match the same API base the SDK uses (<a class="" href="https://docs.testrelic.ai/configuration">Configuration</a>, <a class="" href="https://docs.testrelic.ai/appium/configuration">Appium configuration</a>).</li>
<li class="">Optionally set <strong><code>TESTRELIC_DEFAULT_REPO_ID</code></strong> or <strong><code>--default-repo-id</code></strong> when tools omit a project identifier.</li>
<li class=""><strong>Disable mock mode</strong> when you are ready for outbound cloud calls.</li>
</ol>
<p>That page reiterates: Jira, Amplitude, Loki, GitHub, TestMu AI, and BrowserStack credentials flow from <strong>cloud org settings</strong>, not from extra MCP secrets.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="capability-bundles---caps-for-lean-tool-schemas">Capability bundles (<code>--caps</code>) for lean tool schemas<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#capability-bundles---caps-for-lean-tool-schemas" class="hash-link" aria-label="Direct link to capability-bundles---caps-for-lean-tool-schemas" title="Direct link to capability-bundles---caps-for-lean-tool-schemas" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/mcp/capabilities">Capabilities</a> reference defines optional tool groups beyond always-on <strong>core</strong>:</p>
<table><thead><tr><th>Capability</th><th>Documented focus</th></tr></thead><tbody><tr><td><code>core</code></td><td>Projects, recent runs, config, health, integration status</td></tr><tr><td><code>coverage</code></td><td>User journeys, test map, coverage gaps, reports, cached payloads</td></tr><tr><td><code>creation</code></td><td>Plan → generate tests, templates, dry-run helpers</td></tr><tr><td><code>healing</code></td><td>Patch proposals, locator suggestions, replay plans</td></tr><tr><td><code>impact</code></td><td>Diff analysis, risk scoring, MUST/SHOULD/OPTIONAL test selection</td></tr><tr><td><code>triage</code></td><td>Run diagnosis, flaky audit, RCA, Jira create/dedupe, failure search</td></tr><tr><td><code>signals</code></td><td>User impact, production logs (Loki), affected sessions</td></tr><tr><td><code>devtools</code></td><td>Trends, alerts, semantic code search, repo indexing</td></tr></tbody></table>
<p>Suggested bundles on that page cover <strong>day-to-day authoring</strong>, <strong>on-call / failures</strong>, and <strong>repo-wide exploration</strong>. Passing only the caps you need keeps the MCP tool schema smaller—important for models with finite context windows.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operational-verification-and-next-workflows">Operational verification and next workflows<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#operational-verification-and-next-workflows" class="hash-link" aria-label="Direct link to Operational verification and next workflows" title="Direct link to Operational verification and next workflows" translate="no">​</a></h2>
<p>After wiring credentials, the quickstart recommends <strong><code>tr_health</code></strong> to confirm the server reaches TestRelic successfully. From there, <a class="" href="https://docs.testrelic.ai/mcp/tools-reference">Tools reference</a> enumerates callable tools for your enabled caps, and <a class="" href="https://docs.testrelic.ai/mcp/testing-workflow">Testing workflow</a> explains how teams chain MCP-assisted steps with their existing TestRelic data habits.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-mcp-complements-ask-ai-and-the-web-ui">How MCP complements Ask AI and the web UI<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#how-mcp-complements-ask-ai-and-the-web-ui" class="hash-link" aria-label="Direct link to How MCP complements Ask AI and the web UI" title="Direct link to How MCP complements Ask AI and the web UI" translate="no">​</a></h2>
<p><strong>MCP</strong> is IDE- and agent-centric tool access. <strong>Ask AI</strong> (<a class="" href="https://docs.testrelic.ai/ai/ask-ai">/ai/ask-ai</a>) is a full-page product experience in the cloud with its own plan rules. Many organizations use <strong>both</strong>: humans triage in the UI while agents refactor tests with MCP-fed run context. Compare goals before standardizing on one surface.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/overview">TestRelic MCP overview</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/quickstart">MCP quickstart</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/authentication">Authentication</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/capabilities">Capabilities</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/tools-reference">Tools reference</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/mcp/testing-workflow">Testing workflow</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> (product UI contrast)</li>
<li class=""><a class="" href="https://docs.testrelic.ai/configuration">Playwright Configuration</a> (cloud URL alignment)</li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: What is the fastest way to prove MCP connectivity?</summary><div><div class="collapsibleContent_i85q"><p>Run <strong><code>tr_health</code></strong> after configuring your token, per <a class="" href="https://docs.testrelic.ai/mcp/quickstart">MCP quickstart</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Do I paste Jira or Loki secrets into mcp.json?</summary><div><div class="collapsibleContent_i85q"><p>No. <a class="" href="https://docs.testrelic.ai/mcp/authentication">Authentication</a> states integrations are loaded from your TestRelic <strong>organization</strong> after the MCP token validates.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: How do I limit which tools appear to my assistant?</summary><div><div class="collapsibleContent_i85q"><p>Use <code>--caps</code> or <code>TESTRELIC_MCP_CAPS</code> with a comma-separated list from <a class="" href="https://docs.testrelic.ai/mcp/capabilities">Capabilities</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Where do hosted and stdio configs differ?</summary><div><div class="collapsibleContent_i85q"><p>Compare the <code>mcp.json</code> fragments in <a class="" href="https://docs.testrelic.ai/mcp/quickstart">MCP quickstart</a>—hosted uses the <code>https://mcp.testrelic.ai/mcp</code> URL; stdio uses <code>command</code>/<code>args</code> with <code>npx</code> and optional <code>env</code> for <code>TESTRELIC_MCP_TOKEN</code>.</p></div></div></details>]]></content:encoded>
            <category>mcp</category>
            <category>ai</category>
            <category>cursor</category>
            <category>testing</category>
            <category>security</category>
        </item>
        <item>
            <title><![CDATA[Playwright testing observability: navigation timelines, network analytics, and CI metadata]]></title>
            <link>https://docs.testrelic.ai/blog/playwright-testing-observability</link>
            <guid>https://docs.testrelic.ai/blog/playwright-testing-observability</guid>
            <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Deep guide to TestRelic Playwright analytics—E2E navigation tracking, unified browser+API reports, reporter configuration, and cloud upload paths. Links to official TestRelic documentation.]]></description>
            <content:encoded><![CDATA[<p>If you run Playwright in CI, you already have pass/fail signals. <strong>Testing observability</strong> means capturing the execution story around each failure: which URLs you touched, how the SPA navigated, what the network layer did, and which build or branch produced the run. The <a href="https://www.npmjs.com/package/@testrelic/playwright-analytics" target="_blank" rel="noopener noreferrer" class=""><code>@testrelic/playwright-analytics</code></a> reporter is designed for that workflow—it runs locally, writes structured JSON and HTML, and can feed the <a class="" href="https://docs.testrelic.ai/cloud-platform/overview">TestRelic cloud platform</a> when you add an API key. This guide consolidates the official docs into one narrative for teams standardizing on Playwright.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-playwright-teams-adopt-execution-level-observability">Why Playwright teams adopt execution-level observability<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#why-playwright-teams-adopt-execution-level-observability" class="hash-link" aria-label="Direct link to Why Playwright teams adopt execution-level observability" title="Direct link to Why Playwright teams adopt execution-level observability" translate="no">​</a></h2>
<p>Playwright excels at deterministic automation, but <strong>flaky timing</strong>, <strong>third-party dependencies</strong>, and <strong>routing bugs</strong> often show up only as a single failed assertion. The <a class="" href="https://docs.testrelic.ai/intro">Introduction</a> describes how TestRelic enriches runs with navigation timelines, network stats, console output, failure diagnostics, and CI metadata so reviewers can answer: <em>what did the browser actually do before the expect() failed?</em> That is distinct from screenshot-on-failure or trace zip alone—it is a <strong>structured analytics model</strong> aligned to navigations and tests, which you can diff across runs once data reaches the cloud.</p>
<p><strong>Requirements</strong> (from the intro): Node.js ≥ 18 and Playwright ≥ 1.40.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="end-to-end-browser-testing-automatic-navigation-tracking">End-to-end browser testing: automatic navigation tracking<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#end-to-end-browser-testing-automatic-navigation-tracking" class="hash-link" aria-label="Direct link to End-to-end browser testing: automatic navigation tracking" title="Direct link to End-to-end browser testing: automatic navigation tracking" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/examples/e2e-testing">E2E Testing (Browser)</a> page is the canonical reference for browser suites. When tests import the <code>page</code> fixture from <code>@testrelic/playwright-analytics/fixture</code>, the reporter tracks:</p>
<ul>
<li class=""><strong>Navigation timeline</strong> — timing around page load, DOM content loaded, network idle-style signals where applicable.</li>
<li class=""><strong>Network statistics</strong> — request counts, byte transfers, and response-time style signals <strong>per navigation</strong>.</li>
<li class=""><strong>Navigation types</strong> — <code>goto</code>, link clicks, back/forward, SPA route changes, and hash changes.</li>
</ul>
<p>That combination helps teams distinguish “the app never loaded” from “the app loaded but the wrong route rendered” without re-running the suite locally.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="api-only-tests-unified-runs-and-combined-json">API-only tests, unified runs, and combined JSON<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#api-only-tests-unified-runs-and-combined-json" class="hash-link" aria-label="Direct link to API-only tests, unified runs, and combined JSON" title="Direct link to API-only tests, unified runs, and combined JSON" translate="no">​</a></h2>
<p>Not every suite drives a browser for every test. The <a class="" href="https://docs.testrelic.ai/getting-started/installation">Get Started</a> documentation includes an <strong>API testing setup</strong> path: configure the reporter with options such as <code>trackApiCalls</code>, <code>captureRequestBody</code>, and <code>captureResponseBody</code>, and compose tests with <code>testRelicApiFixture</code> from <code>@testrelic/playwright-analytics/api-fixture</code> as documented there.</p>
<p>When you mix <strong>browser</strong> and <strong>API</strong> coverage, the <a class="" href="https://docs.testrelic.ai/reports/unified-report">Unified Test Reports (Browser + API)</a> guide explains how a single JSON report can contain:</p>
<ul>
<li class="">Navigation timeline entries (URLs, navigation types, durations, network statistics).</li>
<li class="">Pass/fail/flaky/skipped results for every test, including those that used only <code>request</code>.</li>
<li class="">Failure diagnostics and CI metadata in the same schema family as other TestRelic reports.</li>
</ul>
<p>For SEO and internal discovery, bookmark that page whenever your squad searches for “combined E2E and API Playwright analytics.”</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-paths-local-only-vs-cloud-backed">Install paths: local-only vs cloud-backed<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#install-paths-local-only-vs-cloud-backed" class="hash-link" aria-label="Direct link to Install paths: local-only vs cloud-backed" title="Direct link to Install paths: local-only vs cloud-backed" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/intro">Introduction</a> outlines two onboarding tracks:</p>
<ol>
<li class=""><strong>Local reporting</strong> — install the package, add the reporter to <code>playwright.config.ts</code>, run tests; artifacts land under paths like <code>./test-results/</code> as described in the installation guide.</li>
<li class=""><strong>With the cloud platform</strong> — sign up at <a href="https://testrelic.ai/" target="_blank" rel="noopener noreferrer" class="">testrelic.ai</a>, complete <a class="" href="https://docs.testrelic.ai/cloud-platform/onboarding">onboarding</a>, add your <strong>API key</strong> to reporter configuration, and uploads happen automatically on subsequent runs (see intro for the ordered checklist).</li>
</ol>
<p>The <a class="" href="https://docs.testrelic.ai/getting-started/cloud-quickstart">Cloud Platform Quickstart</a> expands the cloud path for teams that want dashboards, AI features, and integrations—not just local files.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configuration-as-the-single-source-of-truth">Configuration as the single source of truth<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#configuration-as-the-single-source-of-truth" class="hash-link" aria-label="Direct link to Configuration as the single source of truth" title="Direct link to Configuration as the single source of truth" translate="no">​</a></h2>
<p>Every tuning knob for the Playwright reporter lives on the <a class="" href="https://docs.testrelic.ai/configuration">Configuration</a> page: output location, stack traces, code snippets around failures, network capture toggles, streaming vs batched reporting, redaction rules, custom <code>testRunId</code>, custom metadata, and more. The page groups <strong>minimal</strong>, <strong>development</strong>, <strong>CI</strong>, <strong>performance-optimized</strong>, and <strong>redaction</strong> patterns so platform engineers can copy a baseline and tighten it for regulated environments.</p>
<p>Common questions—changing <code>outputPath</code>, disabling network tracking, filtering navigation types, attaching metadata—are answered in the “What does each option do?” section on that same page, plus a <a class="" href="https://docs.testrelic.ai/configuration#troubleshooting">Troubleshooting</a> section for when reports look empty or oversized.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="from-json-to-dashboards-and-ai">From JSON to dashboards and AI<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#from-json-to-dashboards-and-ai" class="hash-link" aria-label="Direct link to From JSON to dashboards and AI" title="Direct link to From JSON to dashboards and AI" translate="no">​</a></h2>
<p>Once runs reach the cloud, the <a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform Overview</a> describes how the same underlying data powers the <strong>test runs dashboard</strong>, <strong>session workspace</strong> (timeline, console, network, video where available), <strong>AI &amp; intelligence</strong> features, <strong>test navigation</strong> maps, <strong>monitoring</strong> (smoke, regression, nightly), and <strong>integrations</strong> (GitHub Actions, Jira, Grafana Loki, Amplitude, TestMu AI, BrowserStack). Your Playwright reporter remains the <strong>producer</strong>; the platform is the <strong>consumer</strong> for org-wide analytics.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-documentation">Related documentation<a href="https://docs.testrelic.ai/blog/playwright-testing-observability#related-documentation" class="hash-link" aria-label="Direct link to Related documentation" title="Direct link to Related documentation" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/intro">Introduction</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/getting-started/installation">Get Started</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/configuration">Configuration</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/examples/e2e-testing">E2E Testing (Browser)</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/examples/api-testing">API Testing</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/reports/unified-report">Unified Test Reports (Browser + API)</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/reports/browser-report">Browser report</a> and <a class="" href="https://docs.testrelic.ai/reports/api-report">API report</a> where you split concerns per report type</li>
<li class=""><a class="" href="https://docs.testrelic.ai/getting-started/cloud-quickstart">Cloud Platform Quickstart</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform Overview</a></li>
<li class=""><a class="" href="https://docs.testrelic.ai/advanced/merging-shards">Merging shard reports</a> for parallel CI shards</li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Where do I set the analytics JSON output path?</summary><div><div class="collapsibleContent_i85q"><p>Use the reporter options object in <code>playwright.config.ts</code>. The <a class="" href="https://docs.testrelic.ai/configuration">Configuration</a> page documents <code>outputPath</code> and related fields under “How do I change where the report is saved?”</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: How do I enable automatic navigation tracking in specs?</summary><div><div class="collapsibleContent_i85q"><p>Switch imports to <code>@testrelic/playwright-analytics/fixture</code> as shown in <a class="" href="https://docs.testrelic.ai/examples/e2e-testing">E2E Testing (Browser)</a> and the copy-paste prompts on <a class="" href="https://docs.testrelic.ai/getting-started/installation">Get Started</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Can I run Playwright analytics without sending data to the cloud?</summary><div><div class="collapsibleContent_i85q"><p>Yes. The <a class="" href="https://docs.testrelic.ai/intro">Introduction</a> “Local reporting only” path installs the reporter and generates local reports without requiring cloud signup.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: What belongs in unified vs browser-only reports?</summary><div><div class="collapsibleContent_i85q"><p>See <a class="" href="https://docs.testrelic.ai/reports/unified-report">Unified Test Reports (Browser + API)</a> for when combined <code>page</code> + <code>request</code> fixtures produce one JSON artifact versus separate browser or API reports.</p></div></div></details>]]></content:encoded>
            <category>playwright</category>
            <category>observability</category>
            <category>sdk</category>
            <category>e2e</category>
            <category>api-testing</category>
        </item>
        <item>
            <title><![CDATA[Welcome to TestRelic Documentation]]></title>
            <link>https://docs.testrelic.ai/blog/welcome</link>
            <guid>https://docs.testrelic.ai/blog/welcome</guid>
            <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[TestRelic testing observability platform—Playwright and Appium SDK reporters, local HTML/JSON reports, cloud dashboards, Ask AI, MCP, monitoring, and integrations. Start here with links to deep guides.]]></description>
            <content:encoded><![CDATA[<p>Welcome to the official TestRelic documentation. Whether you ship <strong>browser</strong> suites with Playwright, <strong>mobile</strong> automation with Appium and WebdriverIO, or <strong>Maestro</strong> flows, the same idea applies: capture structured execution signals locally, optionally sync them to the cloud, and use dashboards, AI, and integrations to shorten <strong>mean time to understand</strong> a failure.</p>
<p>This hub page orients new readers: what TestRelic is, which packages to install, how the cloud fits in, and where to read next—including longer <a class="" href="https://docs.testrelic.ai/blog">blog</a> articles that tie multiple doc sections together for SEO-friendly learning paths.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-testrelic">What is TestRelic?<a href="https://docs.testrelic.ai/blog/welcome#what-is-testrelic" class="hash-link" aria-label="Direct link to What is TestRelic?" title="Direct link to What is TestRelic?" translate="no">​</a></h2>
<p>TestRelic is a <strong>Testing Observability Platform</strong> that gives engineering teams deep visibility into their automated test suites — whether they run in a browser or on a mobile device. Unlike traditional test reporters that only show pass/fail results, TestRelic captures rich execution data and surfaces it through AI-powered insights, monitoring dashboards, and deep session inspection.</p>
<p>TestRelic has two layers:</p>
<ul>
<li class=""><strong>SDK Reporters</strong> — lightweight packages that run alongside your tests and capture structured data</li>
<li class=""><strong>Cloud Platform</strong> — a web application at <a href="https://testrelic.ai/" target="_blank" rel="noopener noreferrer" class="">testrelic.ai</a> where that data is visualized, analyzed, and acted on</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sdk-reporters">SDK Reporters<a href="https://docs.testrelic.ai/blog/welcome#sdk-reporters" class="hash-link" aria-label="Direct link to SDK Reporters" title="Direct link to SDK Reporters" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testrelicplaywright-analytics--browser-testing">@testrelic/playwright-analytics — Browser Testing<a href="https://docs.testrelic.ai/blog/welcome#testrelicplaywright-analytics--browser-testing" class="hash-link" aria-label="Direct link to @testrelic/playwright-analytics — Browser Testing" title="Direct link to @testrelic/playwright-analytics — Browser Testing" translate="no">​</a></h3>
<p>The Playwright reporter captures a rich timeline of your browser test execution including:</p>
<ul>
<li class="">Every page navigation during your tests</li>
<li class="">Network request statistics for each page</li>
<li class="">Detailed failure diagnostics with code snippets</li>
<li class="">CI/CD integration metadata</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testrelicappium-analytics--mobile-testing-android--ios">@testrelic/appium-analytics — Mobile Testing (Android / iOS)<a href="https://docs.testrelic.ai/blog/welcome#testrelicappium-analytics--mobile-testing-android--ios" class="hash-link" aria-label="Direct link to @testrelic/appium-analytics — Mobile Testing (Android / iOS)" title="Direct link to @testrelic/appium-analytics — Mobile Testing (Android / iOS)" translate="no">​</a></h3>
<p>The Appium reporter captures a comprehensive trace of your mobile test execution including:</p>
<ul>
<li class="">Every Appium / WebDriver command with timing and arguments</li>
<li class="">Android logcat and iOS syslog device logs per test</li>
<li class="">HTTP network traffic captured via CDP, safariNetwork, or proxy fallback</li>
<li class="">Device screenshots and screen video recordings</li>
<li class="">CI/CD integration metadata</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-testrelic">Why TestRelic?<a href="https://docs.testrelic.ai/blog/welcome#why-testrelic" class="hash-link" aria-label="Direct link to Why TestRelic?" title="Direct link to Why TestRelic?" translate="no">​</a></h2>
<p>Modern applications run in browsers and on mobile devices. Understanding test failures in either environment requires more context than just an error message. TestRelic provides that context by:</p>
<ol>
<li class=""><strong>Execution Timeline</strong> — See exactly which pages your browser tests visited, or which Appium commands your mobile tests issued, and in what order</li>
<li class=""><strong>Network Insights</strong> — Understand HTTP traffic for both browser and mobile sessions</li>
<li class=""><strong>Device Observability</strong> — Stream Android logcat and iOS syslog logs aligned to individual test cases</li>
<li class=""><strong>Failure Context</strong> — Get code snippets and screenshots showing exactly where tests failed</li>
<li class=""><strong>CI Integration</strong> — Automatically capture CI metadata for correlation with builds</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-features">Key Features<a href="https://docs.testrelic.ai/blog/welcome#key-features" class="hash-link" aria-label="Direct link to Key Features" title="Direct link to Key Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="automatic-navigation-tracking-playwright">Automatic Navigation Tracking (Playwright)<a href="https://docs.testrelic.ai/blog/welcome#automatic-navigation-tracking-playwright" class="hash-link" aria-label="Direct link to Automatic Navigation Tracking (Playwright)" title="Direct link to Automatic Navigation Tracking (Playwright)" translate="no">​</a></h3>
<p>Simply use the TestRelic fixture in your Playwright tests and navigation is tracked automatically:</p>
<div class="language-typescript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-typescript codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword module" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> test</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> expect </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@testrelic/playwright-analytics/fixture'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">test</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'user journey'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> page </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgb(127, 219, 202)">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">goto</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'https://example.com'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgb(127, 219, 202)">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">click</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'a[href="/products"]'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgb(127, 219, 202)">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">click</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'.product:first-child'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// All navigations tracked automatically!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mobile-test-observability-appium">Mobile Test Observability (Appium)<a href="https://docs.testrelic.ai/blog/welcome#mobile-test-observability-appium" class="hash-link" aria-label="Direct link to Mobile Test Observability (Appium)" title="Direct link to Mobile Test Observability (Appium)" translate="no">​</a></h3>
<p>Add <code>TestRelicService</code> and <code>TestRelicReporter</code> to your WDIO config and every Appium command, device log, and network request is captured automatically:</p>
<div class="language-typescript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-typescript codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token keyword module" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">TestRelicService</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@testrelic/appium-analytics/service'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword module" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">TestRelicReporter</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@testrelic/appium-analytics'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// In your wdio.conf.ts</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">services</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token maybe-class-name">TestRelicService</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> includeDeviceLogs</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token boolean" style="color:rgb(255, 88, 116)">true</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> includeNetworkLogs</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token boolean" style="color:rgb(255, 88, 116)">true</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain">reporters</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token maybe-class-name">TestRelicReporter</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> htmlReportPath</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'./test-results/report.html'</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="interactive-html-reports">Interactive HTML Reports<a href="https://docs.testrelic.ai/blog/welcome#interactive-html-reports" class="hash-link" aria-label="Direct link to Interactive HTML Reports" title="Direct link to Interactive HTML Reports" translate="no">​</a></h3>
<p>Both reporters generate self-contained interactive HTML reports with a timeline view for commands, logs, network requests, screenshots, and video — no server required.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-platform">Cloud Platform<a href="https://docs.testrelic.ai/blog/welcome#cloud-platform" class="hash-link" aria-label="Direct link to Cloud Platform" title="Direct link to Cloud Platform" translate="no">​</a></h3>
<p>Upload results to the TestRelic cloud platform to unlock:</p>
<ul>
<li class="">Org-wide test run history and health metrics</li>
<li class="">AI-powered session insights and Ask AI chat</li>
<li class="">Smoke, regression, and nightly observatory monitoring</li>
<li class="">Integrations with GitHub Actions, Jira, Grafana Loki, and Amplitude</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cicd-ready">CI/CD Ready<a href="https://docs.testrelic.ai/blog/welcome#cicd-ready" class="hash-link" aria-label="Direct link to CI/CD Ready" title="Direct link to CI/CD Ready" translate="no">​</a></h3>
<p>TestRelic automatically detects your CI environment and captures:</p>
<ul>
<li class="">Build ID and run number</li>
<li class="">Commit SHA and branch name</li>
<li class="">CI provider information</li>
</ul>
<p>Supports GitHub Actions, GitLab CI, Jenkins, CircleCI, and more.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mobile-and-maestro-beyond-playwright">Mobile and Maestro beyond Playwright<a href="https://docs.testrelic.ai/blog/welcome#mobile-and-maestro-beyond-playwright" class="hash-link" aria-label="Direct link to Mobile and Maestro beyond Playwright" title="Direct link to Mobile and Maestro beyond Playwright" translate="no">​</a></h2>
<p>Browser coverage is only part of modern quality engineering. For <strong>Appium</strong> on Android and iOS, the <a href="https://www.npmjs.com/package/@testrelic/appium-analytics" target="_blank" rel="noopener noreferrer" class=""><code>@testrelic/appium-analytics</code></a> package pairs with WebdriverIO as documented under <a class="" href="https://docs.testrelic.ai/appium/intro">Appium Introduction</a> and <a class="" href="https://docs.testrelic.ai/appium/installation">Appium Installation</a>. For <strong>Maestro</strong> mobile flows, see <a class="" href="https://docs.testrelic.ai/maestro/intro">Maestro Introduction</a> and <a class="" href="https://docs.testrelic.ai/maestro/installation">Maestro Installation</a>. Each stack produces timelines, logs, and media aligned to how that framework actually executes commands—so mobile engineers get parity with the Playwright observability story.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="plans-when-cloud-ai-features-unlock">Plans: when cloud AI features unlock<a href="https://docs.testrelic.ai/blog/welcome#plans-when-cloud-ai-features-unlock" class="hash-link" aria-label="Direct link to Plans: when cloud AI features unlock" title="Direct link to Plans: when cloud AI features unlock" translate="no">​</a></h2>
<p>The <a class="" href="https://docs.testrelic.ai/intro">Introduction</a> compares <strong>Starter</strong> and <strong>Growth</strong> plans at a glance (monthly prices, storage, retention, and which tier includes AI insights and Ask AI). Use that table alongside <a class="" href="https://docs.testrelic.ai/cloud-platform/plans-billing">Plans &amp; Billing</a> when procurement asks what changes if you upgrade for Ask AI, session insights, or higher retention limits.</p>
<table><thead><tr><th>Capability (high level)</th><th>Starter</th><th>Growth</th></tr></thead><tbody><tr><td>SDK reporters (Playwright + Appium)</td><td>Yes</td><td>Yes</td></tr><tr><td>Cloud platform</td><td>Yes</td><td>Yes</td></tr><tr><td>AI insights &amp; Ask AI</td><td>—</td><td>Yes</td></tr><tr><td>Storage</td><td>500 MB</td><td>1 GB</td></tr><tr><td>Data retention</td><td>14 days</td><td>30 days</td></tr></tbody></table>
<p><em>(Figures from the Introduction page; see Plans &amp; Billing for the authoritative, up-to-date commercial terms.)</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deeper-reads-on-this-blog">Deeper reads on this blog<a href="https://docs.testrelic.ai/blog/welcome#deeper-reads-on-this-blog" class="hash-link" aria-label="Direct link to Deeper reads on this blog" title="Direct link to Deeper reads on this blog" translate="no">​</a></h2>
<p>For narrative guides that span multiple top-level doc areas:</p>
<ul>
<li class=""><a class="" href="https://docs.testrelic.ai/blog/playwright-testing-observability">Playwright testing observability</a> — timelines, unified reports, configuration, and cloud paths.</li>
<li class=""><a class="" href="https://docs.testrelic.ai/blog/testrelic-mcp-for-ai-assistants">TestRelic MCP for AI assistants</a> — hosted vs stdio MCP, tokens, caps, verification.</li>
<li class=""><a class="" href="https://docs.testrelic.ai/blog/ask-ai-natural-language-test-insights">Ask AI and org test context</a> — <code>@</code> mentions, artifacts, streaming, and how Ask AI differs from MCP.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://docs.testrelic.ai/blog/welcome#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>Ready to add TestRelic to your project? It only takes a few minutes.</p>
<p><strong>For Playwright browser testing:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">npm</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> @testrelic/playwright-analytics</span><br></span></code></pre></div></div>
<p>Configure the reporter in <code>playwright.config.ts</code> and run <code>npx playwright test</code>.</p>
<p><strong>For Appium mobile testing:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#d6deeb;--prism-background-color:#011627"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#d6deeb;background-color:#011627"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#d6deeb"><span class="token function" style="color:rgb(130, 170, 255)">npm</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> @testrelic/appium-analytics</span><br></span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token function" style="color:rgb(130, 170, 255)">npm</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">install</span><span class="token plain"> --save-dev webdriverio @wdio/reporter</span><br></span></code></pre></div></div>
<p>Configure <code>TestRelicService</code> and <code>TestRelicReporter</code> in your <code>wdio.conf.ts</code> and run <code>npx wdio run wdio.conf.ts</code>.</p>
<p>Check out the <a class="" href="https://docs.testrelic.ai/getting-started/installation">Getting Started guide</a> for complete setup instructions for both frameworks.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-in-the-documentation">What's in the Documentation?<a href="https://docs.testrelic.ai/blog/welcome#whats-in-the-documentation" class="hash-link" aria-label="Direct link to What's in the Documentation?" title="Direct link to What's in the Documentation?" translate="no">​</a></h2>
<p>Our documentation covers everything you need:</p>
<ul>
<li class=""><strong>Getting Started</strong> — Quick installation and setup guide for Playwright and Appium</li>
<li class=""><strong>Packages</strong> — Detailed reference for <code>@testrelic/playwright-analytics</code> and <code>@testrelic/appium-analytics</code></li>
<li class=""><strong>Configuration</strong> — All available options and how to use them</li>
<li class=""><strong>Advanced</strong> — Merging shard reports and advanced use cases</li>
<li class=""><strong>Examples</strong> — Real-world examples for browser and mobile testing</li>
<li class=""><strong>Cloud Platform</strong> — Full reference for the TestRelic cloud application</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-to-use">Free to Use<a href="https://docs.testrelic.ai/blog/welcome#free-to-use" class="hash-link" aria-label="Direct link to Free to Use" title="Direct link to Free to Use" translate="no">​</a></h2>
<p>TestRelic is free to use and published under the MIT license. Get started today and enhance your test observability!</p>
<ul>
<li class=""><strong>npm (Playwright):</strong> <a href="https://www.npmjs.com/package/@testrelic/playwright-analytics" target="_blank" rel="noopener noreferrer" class="">@testrelic/playwright-analytics</a></li>
<li class=""><strong>npm (Appium):</strong> <a href="https://www.npmjs.com/package/@testrelic/appium-analytics" target="_blank" rel="noopener noreferrer" class="">@testrelic/appium-analytics</a></li>
<li class=""><strong>Support:</strong> Contact us for questions or feature requests</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next?<a href="https://docs.testrelic.ai/blog/welcome#whats-next" class="hash-link" aria-label="Direct link to What's Next?" title="Direct link to What's Next?" translate="no">​</a></h2>
<ul>
<li class="">Browse the <a class="" href="https://docs.testrelic.ai/intro">documentation</a> to learn more</li>
<li class="">Try the <a class="" href="https://docs.testrelic.ai/getting-started/installation">getting started guide</a> to set up your framework</li>
<li class="">Explore the <a class="" href="https://docs.testrelic.ai/configuration">configuration options</a> for the Playwright reporter</li>
<li class="">See the <a class="" href="https://docs.testrelic.ai/packages/appium-analytics">Appium package reference</a> for mobile testing</li>
<li class="">Check out <a class="" href="https://docs.testrelic.ai/examples">examples</a> to see TestRelic in action</li>
<li class="">Connect your IDE assistant with the <a class="" href="https://docs.testrelic.ai/mcp/overview">MCP overview</a> and <a class="" href="https://docs.testrelic.ai/mcp/quickstart">quickstart</a></li>
<li class="">Open <a class="" href="https://docs.testrelic.ai/ai/ask-ai">Ask AI</a> on a Growth plan for conversational suite analysis</li>
<li class="">Skim the <a class="" href="https://docs.testrelic.ai/blog">blog index</a> for opinionated learning paths across the doc set</li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Is TestRelic only for Playwright?</summary><div><div class="collapsibleContent_i85q"><p>No. Playwright is the default browser story in much of the docs, but <strong>Appium</strong> and <strong>Maestro</strong> packages and guides are first-class—see links in this article and the sidebars.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Do I need the cloud to get value?</summary><div><div class="collapsibleContent_i85q"><p>No. Reporters generate <strong>local JSON and HTML</strong> reports without signup. The cloud adds org history, AI, monitoring, and integrations—see <a class="" href="https://docs.testrelic.ai/cloud-platform/overview">Cloud Platform Overview</a>.</p></div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>FAQ: Where is the MIT license stated?</summary><div><div class="collapsibleContent_i85q"><p>The <a class="" href="https://docs.testrelic.ai/getting-started/installation">Get Started</a> page notes TestRelic is <strong>free to use</strong> under the MIT license for the SDK workflow described there.</p></div></div></details>
<p>We're excited to see what you build with TestRelic!</p>]]></content:encoded>
            <category>welcome</category>
            <category>documentation</category>
            <category>getting-started</category>
            <category>observability</category>
            <category>playwright</category>
            <category>appium</category>
        </item>
    </channel>
</rss>