• Home
  • Health
  • Software
  • Blog
  • load-testing

    K6 Load Testing

    Example test:

    import http from "k6/http";
    import { check, sleep } from "k6";
    
    export let options = {
      stages: [
        // { duration: "4m", target: 500 }, // simulate ramp-up of traffic from 1 to 500 users over 4 minutes
        // { duration: "4m", target: 0 }, // ramp down to 0 users
        { duration: "2m", target: 2000 },
        { duration: "2m", target: 0 },
      ],
      thresholds: {
        http_req_duration: ["p(99)<1500"], // 99% of requests must complete below 1.5s
        http_req_failed: ["rate<0.01"], // http errors should be less than 1%
      },
    };
    
    export default () => {
      let timestamp = Date.now();
    
      let res = http.get(`https://example.com/image.jpg?timestamp=${timestamp}`,
      {
        tags: { name: "image_request" }, // Group requests under a single metric series, which is necessary since
                                         // timestamp creates unique urls, normally this would use a lot of ram.
      });
    
      // console.log('res: ', res.status);
    };
    


    Install K6 globally like this:

    (https://k6.io/docs/get-started/installation/)


    Linux


    Debian/Ubuntu

    sudo gpg -ksudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.listsudo apt-get updatesudo apt-get install k6
    

    Fedora/CentOS


    Using dnf (or yum on older versions):

    sudo dnf install https://dl.k6.io/rpm/repo.rpmsudo dnf install k6
    

    MacOS

    Using Homebrew

    brew install k6
    

    Windows

    If you use the Chocolatey package manager


     you can install the unofficial k6 package with:

    choco install k6
    

    If you use the Windows Package Manager, install the official packages from the k6 manifests (created by the community)


    winget install k6
    

    Alternatively, you can download and run the latest official installer.


    Docker

    docker pull grafana/k6