<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wrap-up on Grafana Labs</title><link>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/</link><description>Recent content in Wrap-up on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/learning-hub/k6-performance-testing/04-wrap-up/index.xml" rel="self" type="application/rss+xml"/><item><title>Course wrap-up</title><link>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/22-course-wrap-up/</link><pubDate>Fri, 05 Jun 2026 12:46:32 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/22-course-wrap-up/</guid><content><![CDATA[&lt;h2 id=&#34;course-wrap-up&#34;&gt;Course wrap-up&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What you learned in Module 3:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to design a load profile with stages&lt;/li&gt;
&lt;li&gt;How to write checks for per-response correctness&lt;/li&gt;
&lt;li&gt;How to set thresholds from what you measured (not from guesses)&lt;/li&gt;
&lt;li&gt;How a baseline run produces a deliberate pass or fail verdict&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;What you&amp;rsquo;ll do in this module:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transfer exercise&lt;/strong&gt; — Apply the QuickPizza pattern to a service your team owns&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where to go next&lt;/strong&gt; — Stress, spike, soak, and reference docs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Estimated time:&lt;/strong&gt; 5 minutes for wrap-up content; 15-30 minutes for the transfer exercise&lt;/p&gt;
]]></content><description>&lt;h2 id="course-wrap-up">Course wrap-up&lt;/h2>
&lt;p>&lt;strong>What you learned in Module 3:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>How to design a load profile with stages&lt;/li>
&lt;li>How to write checks for per-response correctness&lt;/li>
&lt;li>How to set thresholds from what you measured (not from guesses)&lt;/li>
&lt;li>How a baseline run produces a deliberate pass or fail verdict&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>&lt;strong>What you&amp;rsquo;ll do in this module:&lt;/strong>&lt;/p></description></item><item><title>Apply the pattern to your own service</title><link>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/23-transfer-exercise/</link><pubDate>Fri, 05 Jun 2026 12:46:32 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/23-transfer-exercise/</guid><content><![CDATA[&lt;h2 id=&#34;scenario&#34;&gt;Scenario&lt;/h2&gt;
&lt;p&gt;Your team ships a &lt;strong&gt;read-heavy API&lt;/strong&gt; or a &lt;strong&gt;page that fans out to several HTTP calls&lt;/strong&gt;. In reviews, someone asks: &amp;ldquo;Are we sure this stays fast enough when traffic is normal Monday morning, not just on a developer laptop?&amp;rdquo; You want the same &lt;strong&gt;observe, set, validate&lt;/strong&gt; loop you used on QuickPizza, but the URL, auth, and risk profile are yours.&lt;/p&gt;
&lt;h2 id=&#34;tradeoffs-to-decide-explicitly&#34;&gt;Tradeoffs to decide explicitly&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Choice&lt;/th&gt;
              &lt;th&gt;Upside&lt;/th&gt;
              &lt;th&gt;Cost or risk&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Staging vs production-like&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Safer for destructive mistakes&lt;/td&gt;
              &lt;td&gt;May miss real data shape, caches, or latency; document what is missing&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Synthetic auth in &lt;code&gt;setup()&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Repeatable runs in CI&lt;/td&gt;
              &lt;td&gt;Tokens expire; secrets belong in secret stores, not the repo&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Low VU count first&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Fast feedback, easier debugging&lt;/td&gt;
              &lt;td&gt;Can miss concurrency bugs; raise VUs only after the script is stable&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Tight vs loose p95 threshold&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Tight catches small regressions&lt;/td&gt;
              &lt;td&gt;Too tight flakes on noise; loose misses real problems. Start from &lt;strong&gt;measured&lt;/strong&gt; p95 plus headroom&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-good-looks-like&#34;&gt;What &amp;ldquo;good&amp;rdquo; looks like&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;One primary route&lt;/strong&gt; in scope first (expand later). Everyone agrees which URL or user journey the gate protects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steady-state window&lt;/strong&gt; long enough that p95 and error rate stop jumping run to run.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checks&lt;/strong&gt; assert something the business cares about (status, a required field), not only &amp;ldquo;200 OK.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thresholds&lt;/strong&gt; came from numbers you &lt;strong&gt;observed&lt;/strong&gt;, not a round number someone guessed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flaky gate = worse than no gate&lt;/strong&gt;; if CI fails randomly, fix the profile or thresholds before enforcing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;transfer-exercise-15-to-30-minutes&#34;&gt;Transfer exercise (15 to 30 minutes)&lt;/h2&gt;
&lt;p&gt;Do this once on a &lt;strong&gt;non-production&lt;/strong&gt; URL your team owns:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pick the target:&lt;/strong&gt; one critical GET or POST and a success condition you can assert in a check.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy the QuickPizza script shape:&lt;/strong&gt; &lt;code&gt;options&lt;/code&gt;, &lt;code&gt;default&lt;/code&gt; function, at least one &lt;code&gt;http&lt;/code&gt; call and a &lt;code&gt;sleep&lt;/code&gt; that matches realistic pacing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run once without thresholds&lt;/strong&gt; at a modest VU count; note &lt;strong&gt;p95&lt;/strong&gt;, &lt;strong&gt;http_req_failed&lt;/strong&gt;, and throughput from the summary (or Grafana Cloud k6).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set thresholds&lt;/strong&gt; with headroom on p95 and a cap on error rate; re-run until two consecutive runs agree.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write one line in your README or ticket:&lt;/strong&gt; what the gate protects and what you would do if it fails.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That is enough to prove the skill transferred. When you expand, use your internal standards and the documentation on the &lt;strong&gt;Where to go next&lt;/strong&gt; slide.&lt;/p&gt;
]]></content><description>&lt;h2 id="scenario">Scenario&lt;/h2>
&lt;p>Your team ships a &lt;strong>read-heavy API&lt;/strong> or a &lt;strong>page that fans out to several HTTP calls&lt;/strong>. In reviews, someone asks: &amp;ldquo;Are we sure this stays fast enough when traffic is normal Monday morning, not just on a developer laptop?&amp;rdquo; You want the same &lt;strong>observe, set, validate&lt;/strong> loop you used on QuickPizza, but the URL, auth, and risk profile are yours.&lt;/p></description></item><item><title>Where to go next</title><link>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/25-where-to-go-next/</link><pubDate>Fri, 05 Jun 2026 12:46:32 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/25-where-to-go-next/</guid><content><![CDATA[&lt;h2 id=&#34;after-baseline-stress-spike-soak&#34;&gt;After baseline: stress, spike, soak&lt;/h2&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;your-testing-foundation.svg&#34;
  alt=&#34;Diagram: baseline test supports stress, spike, and soak testing, then automation in pipelines&#34;/&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Level&lt;/th&gt;
              &lt;th&gt;Test type&lt;/th&gt;
              &lt;th&gt;Question&lt;/th&gt;
              &lt;th&gt;Where you are&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Foundation&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Baseline&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;What does normal look like?&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;You are here&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Next&lt;/td&gt;
              &lt;td&gt;Stress&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Where does performance degrade?&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/k6/latest/testing-guides/test-types/&#34;&gt;k6 test types&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Next&lt;/td&gt;
              &lt;td&gt;Spike&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Can we survive a traffic burst?&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/k6/latest/testing-guides/test-types/&#34;&gt;k6 test types&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Next&lt;/td&gt;
              &lt;td&gt;Soak&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Does anything break over hours?&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;/docs/k6/latest/testing-guides/test-types/&#34;&gt;k6 test types&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;documentation&#34;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/testing/k6/&#34;&gt;Grafana Cloud k6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/&#34;&gt;k6 documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/results-output/&#34;&gt;k6 results and outputs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/using-k6/thresholds/&#34;&gt;k6 thresholds reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/testing-guides/test-types/&#34;&gt;k6 test types overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/testing-guides/api-load-testing/#request-rate&#34;&gt;API load testing: request rate&lt;/a&gt; (iteration rate versus HTTP request rate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/using-k6/scenarios/concepts/open-vs-closed/&#34;&gt;Open and closed models&lt;/a&gt; (how iteration timing couples to load)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/k6/latest/using-k6/scenarios/executors/&#34;&gt;k6 executors reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;community&#34;&gt;Community&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community Forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://slack.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/k6&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;k6 GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h2 id="after-baseline-stress-spike-soak">After baseline: stress, spike, soak&lt;/h2>
&lt;p>&lt;img
class="lazyload d-inline-block"
data-src="your-testing-foundation.svg"
alt="Diagram: baseline test supports stress, spike, and soak testing, then automation in pipelines"/>&lt;/p>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Level&lt;/th>
&lt;th>Test type&lt;/th>
&lt;th>Question&lt;/th>
&lt;th>Where you are&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Foundation&lt;/strong>&lt;/td>
&lt;td>Baseline&lt;/td>
&lt;td>&amp;ldquo;What does normal look like?&amp;rdquo;&lt;/td>
&lt;td>You are here&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Next&lt;/td>
&lt;td>Stress&lt;/td>
&lt;td>&amp;ldquo;Where does performance degrade?&amp;rdquo;&lt;/td>
&lt;td>&lt;a href="/docs/k6/latest/testing-guides/test-types/">k6 test types&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Next&lt;/td>
&lt;td>Spike&lt;/td>
&lt;td>&amp;ldquo;Can we survive a traffic burst?&amp;rdquo;&lt;/td>
&lt;td>&lt;a href="/docs/k6/latest/testing-guides/test-types/">k6 test types&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Next&lt;/td>
&lt;td>Soak&lt;/td>
&lt;td>&amp;ldquo;Does anything break over hours?&amp;rdquo;&lt;/td>
&lt;td>&lt;a href="/docs/k6/latest/testing-guides/test-types/">k6 test types&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="documentation">Documentation&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="/docs/grafana-cloud/testing/k6/">Grafana Cloud k6&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/">k6 documentation&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/results-output/">k6 results and outputs&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/using-k6/thresholds/">k6 thresholds reference&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/testing-guides/test-types/">k6 test types overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/testing-guides/api-load-testing/#request-rate">API load testing: request rate&lt;/a> (iteration rate versus HTTP request rate)&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/using-k6/scenarios/concepts/open-vs-closed/">Open and closed models&lt;/a> (how iteration timing couples to load)&lt;/li>
&lt;li>&lt;a href="/docs/k6/latest/using-k6/scenarios/executors/">k6 executors reference&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="community">Community&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://community.grafana.com/" target="_blank" rel="noopener noreferrer">Grafana Community Forums&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://slack.grafana.com/" target="_blank" rel="noopener noreferrer">Grafana Slack&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/grafana/k6" target="_blank" rel="noopener noreferrer">k6 GitHub&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Thank you</title><link>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/26-thank-you/</link><pubDate>Fri, 05 Jun 2026 12:46:32 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/k6-performance-testing/04-wrap-up/26-thank-you/</guid><content><![CDATA[&lt;h2 id=&#34;thank-you-for-completing-this-course&#34;&gt;Thank you for completing this course!&lt;/h2&gt;
&lt;p&gt;We hope you found it valuable.&lt;/p&gt;
&lt;h2 id=&#34;happy-testing&#34;&gt;Happy testing!&lt;/h2&gt;
]]></content><description>&lt;h2 id="thank-you-for-completing-this-course">Thank you for completing this course!&lt;/h2>
&lt;p>We hope you found it valuable.&lt;/p>
&lt;h2 id="happy-testing">Happy testing!&lt;/h2></description></item></channel></rss>