8 releases

0.2.2 Nov 12, 2024
0.2.1 Aug 21, 2024
0.2.0 Dec 18, 2023
0.1.6 Sep 19, 2023
0.0.0 Dec 8, 2021

#1049 in Command line utilities

Download history 125/week @ 2024-08-17 12/week @ 2024-08-24 10/week @ 2024-09-14 25/week @ 2024-09-21 21/week @ 2024-09-28 2/week @ 2024-10-05 107/week @ 2024-11-09 18/week @ 2024-11-16 3/week @ 2024-11-23 31/week @ 2024-11-30

159 downloads per month

MIT license

420KB
673 lines

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

~17–31MB
~498K SLoC