viking

Crates.ioviking
lib.rsviking
version0.2.0
sourcesrc
created_at2021-12-08 22:50:55.562775
updated_at2023-12-18 16:24:56.903291
descriptionRaiding APIs in style.
homepagehttps://crates.io/crates/viking
repositoryhttps://github.com/replicadse/viking
max_upload_size
id494848
size517,672
Alexander Weber (replicadse)

documentation

README

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

Commit count: 22

cargo fmt