Skill

Generate K6 Load Test Scripts and Analysis

A skill writing k6 load test scripts with staged ramp-ups, thresholds, spike/stress patterns, and custom metrics.

Works with github

88
Spark score
out of 100
Updated 2 months ago
Source checked Sep 8, 2026
Version 1.0.0
Models

Add to Favorites

Why it matters

Automate performance testing by generating robust K6 load test scripts. Analyze results to identify bottlenecks and ensure application scalability.

Outcomes

What it gets done

01

Create comprehensive K6 load test scripts using JavaScript.

02

Design realistic test scenarios including data-driven and session-based tests.

03

Analyze performance metrics and define pass/fail thresholds.

04

Implement advanced load testing patterns like spike and stress testing.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-k6-load-test | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

K6 Load Testing Expert

This skill writes k6 load test scripts covering staged VU ramp-up/ramp-down, automated pass/fail thresholds, data-driven and session-based test patterns, spike and stress testing, and custom metric reporting. Use it when a test needs a realistic staged ramp-up/ramp-down pattern with automated thresholds, not a single fixed-VU run.

What it does

This skill writes k6 load test scripts - JavaScript API, test design patterns, metrics analysis, and performance optimization. Core principles: Virtual Users (VUs) each run the script independently in parallel, tests are either iteration-based or duration-based, stages gradually ramp load up and down to simulate realistic traffic, thresholds define automated pass/fail criteria, and analysis focuses on response time, throughput, and error-rate metrics.

When to use - and when NOT to

Use it when a test needs a realistic staged ramp-up/ramp-down pattern with automated thresholds, not a single fixed-VU run.

export const options = {
  stages: [
    { duration: '2m', target: 10 },
    { duration: '5m', target: 10 },
    { duration: '2m', target: 20 },
    { duration: '5m', target: 20 },
    { duration: '2m', target: 0 },
  ],
  thresholds: {
    http_req_duration: ['p(95)<500'],
    http_req_failed: ['rate<0.1'],
  },
};

Inputs and outputs

A standard script defines a setup() that runs once to prepare test data or authenticate, a default exported function that runs per-VU per-iteration with check() assertions and sleep() think-time, and a teardown() for cleanup. Advanced patterns include data-driven testing with SharedArray loading a CSV via papaparse to avoid duplicating large datasets across VUs, and session-based testing using group() blocks to structure an Authentication phase (capturing a token) followed by a User Operations phase reusing that token across profile-read and profile-update requests. Two named load patterns are given directly: spike testing (a 10-second ramp to 100 VUs, hold, quick ramp-down) and stress testing (staged increases from 100 to 300 VUs to find the point beyond normal capacity). Environment configuration covers CLI flags (--vus, --duration, --env, --out influxdb=..., --out json=...) and reading __ENV.BASE_URL/__ENV.API_KEY inside the script with defaults.

Integrations

Key metrics to monitor are named explicitly - http_req_duration (p50/p95/p99), http_req_failed, http_reqs (throughput), vus, and iterations - alongside custom Counter and Gauge metrics tagged by endpoint and version for finer-grained analysis. handleSummary() can emit results to stdout via textSummary, to summary.json, and to an HTML report simultaneously.

Who it's for

Performance engineers writing k6 load tests who need concrete staged-ramp, spike, and stress patterns plus custom metrics rather than a single default script. Eight optimization tips close it out: use SharedArray for large datasets to avoid per-VU memory duplication, implement realistic think time with sleep(), batch HTTP requests where possible, set appropriate timeouts, reuse connections instead of recreating them, monitor the load generator's own resource usage, ramp up gradually rather than overwhelming the system immediately, and use tags and groups for clearer result analysis and debugging.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.