2 个版本
0.1.8-1eada16 | 2020年2月1日 |
---|---|
0.1.7-99afa97 | 2020年1月5日 |
#1417 in Web编程
35KB
243 行
Fakesite
Fakesite通过随机行为模拟网站。它可以用于负载测试Web监控。
它是用Rust编写的,主要是为了熟练使用该语言而进行的玩具项目。但是,它可能很有用。使用风险自负。
状态
当前版本为0.1.8。
安装
尚未设置安装目标,如果您希望,可以将fakesite
二进制文件复制到您的$PATH
,这就是全部。
一些可能有用的命令
cargo build # build debug binary in ./target/debug/
cargo build --release # build release binary in ./target/release/
cargo test # launch tests
rustfmt src/*.rs # format code
./docker-build.sh # build Docker image with version tag
./bump-version.sh # bump minor version number
用法
简单启动
cargo run
或直接运行二进制文件
./target/debug/fakesite
./target/release/fakesite
或者,使用Docker
docker run -p 8080:80 ufoot/fakesite
传递选项
cargo run -- :8090
默认情况下,服务器在8080端口上监听所有接口。
要更改程序监听的端口,传递:<port>
,例如:8090
以监听8090端口。例如
fakesite :8090
其他标准选项包括
-h
,--help
:显示简短的帮助。-v
,--version
:显示版本。
响应内容
响应(特别是错误代码)可能看起来是随机的,但它们遵循固定的模式
- 程序每30秒从“OK”模式切换到“ERR”模式。更确切地说,每30秒它掷骰子以决定是否主要发送200或500。75%的时间,它将选择“OK”模式。每次模式更改时,都会在STDOUT上报告。
- 它使用Apache通用行格式记录STDOUT上的请求,这使得您可以了解正在发生的事情。
- 在OK模式下,返回
- 50%的200
- 25%的302
- 5%的401
- 5%的403
- 10%的404
- 5%的500
- 在ERR模式下,返回
- 10%的200
- 90%的500
- 在提供答案之前,它会等待一个随机的时间,这个时间通常应该低于1秒,但偶尔也可能更高,通常在2秒左右。
程序的典型输出可能为
# [04/Dec/2019:21:06:46 +0000] start HTTP server listening on 127.0.0.1:8080
127.0.0.1 - - [04/Dec/2019:21:06:46 +0000] "GET / HTTP/1.0" 302 0
127.0.0.1 - - [04/Dec/2019:21:06:47 +0000] "GET / HTTP/1.0" 302 0
127.0.0.1 - - [04/Dec/2019:21:06:48 +0000] "GET / HTTP/1.0" 200 51
127.0.0.1 - - [04/Dec/2019:21:06:49 +0000] "GET / HTTP/1.0" 302 0
127.0.0.1 - - [04/Dec/2019:21:06:49 +0000] "GET / HTTP/1.0" 302 0
127.0.0.1 - - [04/Dec/2019:21:06:50 +0000] "GET / HTTP/1.0" 200 51
127.0.0.1 - - [04/Dec/2019:21:06:51 +0000] "GET / HTTP/1.0" 500 31
127.0.0.1 - - [04/Dec/2019:21:07:14 +0000] "GET / HTTP/1.0" 404 28
127.0.0.1 - - [04/Dec/2019:21:07:15 +0000] "GET / HTTP/1.0" 200 51
127.0.0.1 - - [04/Dec/2019:21:07:16 +0000] "GET / HTTP/1.0" 404 28
# [04/Dec/2019:21:07:16 +0000] switch to ERR mode (lots of 500s)
127.0.0.1 - - [04/Dec/2019:21:07:16 +0000] "GET / HTTP/1.0" 500 31
127.0.0.1 - - [04/Dec/2019:21:07:17 +0000] "GET / HTTP/1.0" 500 31
法律信息
Fakesite遵循MIT许可证。
依赖项
~14–24MB
~542K SLoC