Vegeta (software)
   HOME

TheInfoList



OR:

Vegeta is an
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
load testing Load testing is the process of putting demand on a structure or system and measuring its response. Software load testing The term ''load testing'' is used in different ways in the professional software testing community. ''Load testing'' gene ...
tool written in Go that can be used as a command in a
command-line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
or as a
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
. The program tests how an HTTP-based application behaves when multiple users access it at the same time by generating a background load of
GET request The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
s. Vegeta is used to generate a sustained, constant number of requests per second in order to discover how long a service can sustain a peak load before dropping in performance. In addition to preemptive load testing, the program can also be used for shadow testing, where traffic from a live version of an application is mirrored onto a test version to determine how it handles the same traffic load, without causing potential disruption to the live version of the application. Shadow testing is done in this way in order to analyze anticipated server performance. Vegeta is provided for use by web hosting services such as Scaleway to use varied and multiple requests to stress test client HTTP services. It is also used with dedicated load-testing platform services such as
BlazeMeter markets a commercial, self-service load testing platform as a service (PaaS), which is compatible with open-source Apache JMeter, the performance testing framework from the Apache Software Foundation. BlazeMeter was founded in 2011, and was a ...
.


Usage

The command-line usage is in the format of . The three global flags are which specifies the number of CPUs to use, which enables profiling, and which prints the software version and then terminates the program. The commands available are , , , and , each with its own various command flag options, and both attack input and report output can be done in an optional
json JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
format when specified with the appropriate flag. Vegeta can specify targets as URLs in a separate file with optional custom headers and requests, which can then be used as an input option on the command line.


Example

An example usage would be to issue from the command-line. This example uses the echo command to output , and then executes the attack command for that output for five seconds. After that, it uses the tee command to write results to a file called results.bin, and runs the report command to display the output of the attack results.


References

{{reflist Software testing Quality assurance Load testing tools Linux software Command-line software Software using the MIT license