6 releases

0.2.0 Dec 18, 2023
0.1.6 Sep 19, 2023
0.0.0 Dec 8, 2021

#1364 in Command line utilities

Download history 6/week @ 2024-02-26 4/week @ 2024-03-11 37/week @ 2024-04-01 274/week @ 2024-04-15

311 downloads per month

MIT license

425KB
1K SLoC

Rust 673 SLoC BASH 261 SLoC PowerShell 101 SLoC Elvish 88 SLoC

viking

dependency status
viking is an alternative API load testing tool. We're raiding in style.

Project state

viking is unstable but really cool.

Abstract

viking is an opinionated API load testing tool. A few of the key characteristics are:

  • Extensive use of multithreading
  • Per-thread blocking requests
  • Ability to record requests and responses
  • YAML based configuration
  • Configurable live reporting
  • Configurable error behavior
  • Smart request parameters (static / increment)

Installing

cargo install viking

Example configuration

# This command renders an example configuration to STDOUT.
viking init
version: "0.2"

campaigns:
  main:
    phases:
      - target:
          env: "API_URI"
        threads: 32
        ends:
          requests: 500
          #time: !s 60
        timeout:
          s: 2000
        report:
          interval:
            s: 1
        spec:
          get:
            header:
              x-api-key:
                - env: "API_KEY"
            query:
              page:
                - increment:
                    start: 0
                    step: 1
              per_page:
                - static: 4000
              from:
                - static: 1694901600
              to:
                - static: 1694905200
        behaviours:
          ok:
            - match: ^(200)$
              mark: success
            - match: .*
              mark: error
          error:
            backoff:
              s: 1

Dependencies

~15–30MB
~491K SLoC