2022/11/28
http-little-toy
一个简单的 http 并发测试工具。
README.md
⭐️README.MD⭐️ En
仓库地址
如果喜欢就star⭐️一下吧,让它沉睡在你的收藏库里。
https://github.com/leihenshang/http-little-toy
https://gitee.com/leihenshang/http-little-toy
更新
v0.0.4
- 重构项目main,拆分解耦逻辑
- 重构参数验证,删除 -d 和 -t 的强制验证
- 添加 User-Agent 标识 http-little-toy [version]
- 完善请求文件逻辑,请求文件优先级 > 命令行参数
介绍
灵感来源于 github 上各种版本的 wrk http并发测试工具,有一天看了一个go写的版本,就这?我也能行啊。我自己也造一个轮子吧。orz.
造轮子好玩吗?
真好玩!
特性
命令行中加入设置 header 头命令行中加入设置 body 负载完善一下 request.json 请求文件的逻辑添加记录响应数据日志的功能,方便分析新增 http agent 识别tag
使用
一般使用 -d 控制请求时间(秒),-t 控制线程数(当做用户数量来理解)就可以了。
还能使用request.json文件,你不用重新编写命令参数了,不过可能还有点小问题,在完善中。
$ http-little-toy -h
Usage: httpToy <options>
Options:
-H
The http header. --default=[].
-allowRedirects
allowRedirects. --default=true.
-body
The http body. --default="".
-caCert
caCert. --default="".
-clientCert
clientCert. --default="".
-clientKey
clientKey. --default="".
-compression
Use keep-alive for http protocol. --default=true.
-d
Duration of request.The unit is seconds. --default=0.
-f
specify the request definition file. --default="".
-gen
generate the request definition file template to the current directory. --default=false.
-h
show help tips. --default=false.
-keepAlive
Use keep-alive for http protocol. --default=true.
-log
record request log to file. default: './log' --default=false.
-skipVerify
TLS skipVerify. --default=false.
-t
Number of threads. --default=0.
-timeOut
the time out to wait response. --default=1000.
-u
The URL you want to test. --default="".
-useHttp2
useHttp2. --default=false.
-v
show app version. --default=false.
Bash
安装教程
- 直接使用 go install github.com/leihenshang/http-little-toy ,再把你的go/bin放到环境变量里,使用 http-little-toy 带上参数,起飞吧,骚年。
- 手动编译成二进制文件直接运行,可以放到全局变量中直接从命令行中执行。
手动编译
linux & mac
# 把项目编译成可执行文件并输出到当前目录
go build -o http-little-toy
## 根据系统选择
# linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/http-little-toy
# windows
CGO_ENABLED=0 GOOS=windowd GOARCH=amd64 go build -o bin/http-little-toy
# mac
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/http-little-toy
Bash
windows
# Mac
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build -o bin/http-little-toy
# Linux
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build -o bin/http-little-toy
text
执行测试命令
# 使用纯命令
./httpToy -d 10 -t 80 -u http://127.0.0.1:9090
# or
# 使用请求文件
./httpToy -d 10 -t 80 -f request_sample.json
Bash
# 使用test-server
go run . -u http://localhost:9090 -H aaa:bbbb -H ccc:ddd -body "hhhhh2333333" -d 2 -t 1
Bash