K6 performance test

 Here is a Beginner k6 Learning Syllabus + API Performance Examples designed specifically for you (Automation QA → Selenium → Playwright → API Testing → Performance Testing) πŸš€


πŸš€ Beginner k6 Learning Syllabus

Module 1 — Performance Testing Basics

Before learning k6, understand:

What is Performance Testing?

  • Load Testing

  • Stress Testing

  • Spike Testing

  • Endurance Testing

Important Terms

TermMeaning
VUVirtual Users
TPSTransactions per second
Response TimeAPI response duration
ThroughputRequests per second
LatencyTime before request starts

Module 2 — Installing k6

Ways to Install:

  • Chocolatey (You tried already)

  • Winget

  • Download Binary

Verify:

k6 version

Module 3 — First k6 Script

Create file:

test.js

Code:

import http from 'k6/http';

export default function () {
  http.get('https://test.k6.io');
}

Run:

k6 run test.js

Module 4 — Virtual Users (Load Testing)

Example:

import http from 'k6/http';

export const options = {
  vus: 10,
  duration: '10s',
};

export default function () {
  http.get('https://test.k6.io');
}

This means:

  • 10 users

  • 10 seconds


Module 5 — k6 Options

Common Options:

export const options = {
  vus: 20,
  duration: '30s',
  iterations: 100,
};

Options Explanation:

OptionMeaning
vusVirtual users
durationTest time
iterationsNumber of calls

πŸš€ API Performance Examples

Now real-world API examples πŸ‘‡


Example 1 — Simple API Load Test

import http from 'k6/http';

export const options = {
  vus: 5,
  duration: '10s',
};

export default function () {
  http.get('https://reqres.in/api/users?page=2');
}

Run:

k6 run api_test.js

Example 2 — API with Validation

import http from 'k6/http';
import { check } from 'k6';

export const options = {
  vus: 5,
  duration: '10s',
};

export default function () {

  const res = http.get('https://reqres.in/api/users');

  check(res, {
    'status is 200': (r) => r.status === 200,
  });

}

Example 3 — POST API Performance

import http from 'k6/http';

export const options = {
  vus: 10,
  duration: '10s',
};

export default function () {

  const payload = JSON.stringify({
    name: "Sunil",
    job: "QA Engineer"
  });

  const params = {
    headers: {
      'Content-Type': 'application/json',
    },
  };

  http.post('https://reqres.in/api/users', payload, params);

}

Example 4 — API with Multiple Requests

import http from 'k6/http';

export const options = {
  vus: 10,
  duration: '20s',
};

export default function () {

  http.get('https://reqres.in/api/users');

  http.get('https://reqres.in/api/users/2');

}

Example 5 — Ramp Up Users (Realistic Test)

export const options = {
  stages: [
    { duration: '10s', target: 5 },
    { duration: '20s', target: 10 },
    { duration: '10s', target: 0 },
  ],
};

This means:

  • 0 → 5 users

  • 5 → 10 users

  • 10 → 0 users

Realistic Load Testing πŸš€


Example 6 — Response Time Validation

import http from 'k6/http';
import { check } from 'k6';

export default function () {

  const res = http.get('https://reqres.in/api/users');

  check(res, {
    'response time < 500ms': (r) => r.timings.duration < 500,
  });

}

Example 7 — Authentication API

import http from 'k6/http';

export default function () {

  const payload = JSON.stringify({
    email: "eve.holt@reqres.in",
    password: "cityslicka"
  });

  const params = {
    headers: {
      'Content-Type': 'application/json',
    },
  };

  http.post('https://reqres.in/api/login', payload, params);

}

Real-World Example (Your QA Project)

Example: Login → Get Dashboard → Logout

import http from 'k6/http';

export default function () {

  http.post('https://api.site.com/login');

  http.get('https://api.site.com/dashboard');

  http.post('https://api.site.com/logout');

}

Reporting (Important)

k6 shows report automatically:

Example Output:

checks................: 100%
http_req_duration.....: avg=250ms
http_reqs.............: 500
vus...................: 10

Tools Similar to k6

ToolUsage
Apache JMeterTraditional performance tool
GrafanaDashboard
PrometheusMetrics
LocustPython performance

Learning Path (Recommended for You)

Day 1

  • Install k6

  • Run simple test

Day 2

  • VUs

  • Duration

  • Iterations

Day 3

  • API Testing

  • POST Request

Day 4

  • Validation

  • Response time

Day 5

  • Real project test


Why k6 is Good for You

You already know:

  • Selenium

  • Playwright

  • Rest Assured

  • Java

k6 adds:

✅ Performance Testing
✅ API Load Testing
✅ DevOps Friendly
✅ Cloud Execution

Very high demand skill πŸ”₯


Next I can give:

  • Real interview questions

  • Advanced k6 framework

  • CI/CD Integration

Just tell me πŸ‘

Comments

Popular posts from this blog

k6 and jmeter intro

3 month