Turn Your Vehicle Into a Smart Earning Asset

While you’re not driving your car or bike, it can still be working for you. MOTOSHARE helps you earn passive income by connecting your vehicle with trusted renters in your city.

🚗 You set the rental price
🔐 Secure bookings with verified renters
📍 Track your vehicle with GPS integration
💰 Start earning within 48 hours

Join as a Partner Today

It’s simple, safe, and rewarding. Your vehicle. Your rules. Your earnings.

Grafana k6 OSS: Demo & Lab


1. Install k6 on Windows

You have a few options. I’ll show the two easiest:

Option A – Using winget (recommended if available)

  1. Open Windows Terminal / PowerShell as Administrator.
  2. Run: winget install grafana.k6
  3. After install, verify: k6 version You should see something like: k6 v0.xx.x

Option B – Using Chocolatey

If you’re already using Chocolatey:

  1. Open PowerShell (Admin).
  2. Install: choco install k6
  3. Verify: k6 version

Option C – Portable (ZIP) Binary (no package manager)

  1. Go to: https://github.com/grafana/k6/releases (in your browser).
  2. Download the latest Windows x64 .zip.
  3. Extract it to a folder, e.g.: C:\tools\k6\
  4. Add that folder to your PATH:
    • Press Win → search Environment Variables → “Edit the system environment variables”.
    • Click Environment Variables…
    • Under User variables or System variables, select PathEditNew → add: C:\tools\k6\
    • Click OK several times.
  5. Open a new PowerShell and run: k6 version

2. Create a Project Folder

Let’s keep things clean.

  1. Choose a workspace folder, e.g.: mkdir C:\k6-demo cd C:\k6-demo
  2. You’ll put all your k6 scripts here.

3. Your First “Hello World” k6 Script

We’ll create a very simple script that:

  • Sends 1 HTTP GET request to a test URL.
  • Checks that the response status is 200.
  • Prints basic stats at the end.

3.1 Create the script file

  1. In C:\k6-demo, create a file named hello-world.js.

If you like using Notepad:

notepad .\hello-world.js
Code language: CSS (css)

Paste this code inside:

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

export const options = {
  vus: 1,          // number of virtual users
  duration: '10s', // total test duration
};

export default function () {
  // 1) Make a simple GET request
  const res = http.get('https://test.k6.io');

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

  // 3) Small pause between iterations
  sleep(1);
}
Code language: JavaScript (javascript)

Save and close the file.


4. Run the Hello World Test

From inside the folder:

cd C:\k6-demo
k6 run .\hello-world.js
Code language: CSS (css)

You will see something like:

          /\      |‾‾| /‾‾/  /‾‾/
     /\  /  \     |  |/  /  /  /
    /  \/    \    |     (  /  /
   /          \   |  |\  \/  /
  / __________ \  |__| \____/

  execution: local
     script: hello-world.js
     output: -

  scenarios: (100.00%) 1 scenario, 1 max VUs, 10s max duration (incl. graceful stop):
           * default: 1 looping VUs for 10s (gracefulStop: 30s)

running (10.0s), 0/1 VUs, 10 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs  10s

     ✓ status is 200

     checks...................: 100.00% ✓ 100
     http_req_duration........: avg=150ms min=120ms max=200ms ...
     http_reqs................: 10  (1.0/s)
     vus......................: 1
Code language: PHP (php)

5. Understand the Output

Important fields to understand:

  • checks – shows how many checks passed/failed:
    • ✓ 10 ✗ 0 → all 10 requests returned status 200.
  • http_req_duration – time it took to complete each HTTP request.
    • avg, min, max, percentiles.
  • http_reqs – total number of HTTP requests (10 here).
  • vus – how many virtual users were active (1 here).

Since status is 200 is the only check, if the website failed or returned a different code, you’d see failed checks.


6. Slightly More Interesting Example (Hello World with Threshold)

Now, let’s add a threshold so the test “fails” if latency is too high.

Create another file: hello-with-threshold.js

notepad .\hello-with-threshold.js
Code language: JavaScript (javascript)

Paste:

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

export const options = {
  vus: 2,
  duration: '15s',
  thresholds: {
    // 95% of all requests must finish below 500ms
    http_req_duration: ['p(95) < 500'],
    // At least 99% of checks must pass
    checks: ['rate > 0.99'],
  },
};

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

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

  sleep(1);
}
Code language: JavaScript (javascript)

Run it:

k6 run .\hello-with-threshold.js
Code language: JavaScript (javascript)

At the end, you’ll see something like:

   checks................: 100.00% ✓ 30 ✗ 0
   http_req_duration.....: p(95)=180ms ...
   thresholds:
     * http_req_duration  p(95)<500passed
     * checks             rate>0.99       ✓  passed
Code language: HTML, XML (xml)

If you intentionally use a slow or broken URL, you might see thresholds marked as failed with .


7. Running a Quick “Smoke Test” Style Hello World

If you just want to quickly confirm your script works (like a smoke test):

Create hello-smoke.js:

notepad .\hello-smoke.js
Code language: CSS (css)

Paste:

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

export const options = {
  vus: 1,
  iterations: 1, // run only once
};

export default function () {
  const res = http.get('https://test.k6.io');
  console.log(`Response status: ${res.status}`);
  sleep(1);
}
Code language: JavaScript (javascript)

Run:

k6 run .\hello-smoke.js
Code language: CSS (css)

You’ll see a log line:

INFO[0000] Response status: 200
Code language: CSS (css)

This is a super basic “Hello World” just to embed k6 in a CI step or script.


8. Typical Folder Structure for Your k6 Work

If you continue learning, you might organize like:

C:\k6-demo
 ├─ hello-world.js
 ├─ hello-with-threshold.js
 ├─ hello-smoke.js
 ├─ scenarios/
 │   ├─ basic-load.js
 │   ├─ spike-test.js
 ├─ data/
 │   └─ users.csv
Code language: JavaScript (javascript)

9. Next Easy Steps After Hello World

Once this works, good next things to explore:

  1. Increase load
    Change: vus: 10, duration: '30s',
  2. Add multiple URLs
    Use group() blocks and multiple http.get calls.
  3. Export results to JSON (for later analysis): k6 run --out json=results.json .\hello-world.js
  4. Integrate with Grafana later (Prometheus or k6 Cloud), once you’re comfortable.

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

0
Would love your thoughts, please comment.x
()
x