云网牛站
所在位置:首页 > Linux软件 > 一款高性能的HTTP负载测试工具 Vegeta

一款高性能的HTTP负载测试工具 Vegeta

2018-06-13 16:15:36作者:MTPAS稿源:技术啦

什么是 Vegeta

Vegeta 是一款用 Go 语言编写的多功能的 HTTP 负载测试工具,Vegeta 提供了命令行工具和一个开发库。

Vegeta官方地址下载,目前最新版本是vegeta 8.0.0。

一款高性能的HTTP负载测试工具 Vegeta

 

安装 Vegeta

Vegeta 安装非常简单,由于 Go 语言良好的跨平台性,可以直接下载官方的预编译版本后开箱即用。

1.预编译版本

这里以 Linux 版本为例:

$ wget https://github.com/tsenart/vegeta/releases/download/v8.0.0/vegeta-8.0.0-linux-amd64.tar.gz

$ tar xzvf vegeta-8.0.0-linux-amd64.tar.gz

$ mv vegeta  /usr/local/bin/

如果你使用的是其它平台,可根据实际情况在官网下载页面下载对应版本解压后就可以使用。

2.macOS

$ brew install vegeta

 

Vegeta 用法

$ vegeta --help

Usage: vegeta [global flags] <command> [command flags]

global flags:

-cpus int

使用 CPU 的数量 (默认为 4 个)

-profile string

指定在执行期间启用哪个分析器,支持 cpu 和 heap。

-version

打印版本并退出。

attack command:

-body string

指定请求主体文件里的内容。

-cert string

指定用于 HTTPS 请求的 PEM 格式的客户端证书文件。如果 -key 未指定,它会被设置为这个标志的值。

-connections int

指定每个目标主机打开的空闲连接的最大数目,默认值为 10000。

-duration duration

指定发送请求到目标主机的时长,用 0 表示永久。

-header value

指定目标的请求头,可以重复指定多个请求头。

-http2

指定是否向支持的服务器发送 HTTP/2 请求,默认为:true。

-insecure

指定是否忽略无效的服务器 TLS 证书。

-keepalive

指定是否使用持久链接,默认值为:true。

-key string

指定 HTTPS 请求中使用的 PEM 编码的 SSL 客户端证书私钥文件。

-laddr value

指定要使用的本地 I P地址,默认值为:0.0.0.0。

-lazy

指定是否使用延迟模式读取目标。

-output string

指定输出文件的位置,默认为标准输出。

-rate uint

指定每秒钟对目标发送的请求数,默认值为:50。

-redirects int

指定每个请求的重定向的最大次数,默认为 10 次。当值为 -1, 不会遵循重定向但响应标记为成功。

-root-certs value

指定可信的 TLS 根证书文件,多个的情况下使用逗号分隔。如果未指定,使用系统默认的 CA 证书。

-targets string

指定目标文件,默认为标准输入。

-timeout duration

指定每个请求的超时时间,默认值为 30s。

-workers uint

指定初始化进程数量,默认值为 10。

report command:

-inputs string

指定报告输入文件,默认为标准输入。

-output string

指定报告输出文件,默认为标准输出。

-reporter string

指定要生成的报告的格式,支持 text,json, plot, hist[buckets]。默认为文本。

dump command:

-dumper string

指定转存文件,支持 json, csv 格式。默认为 json 格式。

-inputs string

指定要转存的输入文件,默认为标准输入,指定多个用逗号分隔。

-output string

指定要转存的输出文件,默认为标准输出。

 

Vegeta更进一步的使用可以参考Vegeta官方地址

 

和Vegeta类似的Alex

如果你觉得命令行下使用 Vegeta 比较复杂的话,你还可以使用 Alex 项目。Alex 是一个基于 Vegeta Library 和 Boom 封装的压力测试 Web UI,Vegeta 提供稳定的 QPS 压力源,Boom 提供稳定的并发数压力源。

Alex项目地址

 

相关主题

CentOS 7:使用HAProxy实现Nginx负载均衡

精选文章
热门文章