#负载测试 #随机 #监控 #行为 #网站 #Web #模拟

bin+lib fakesite

fakesite通过随机行为模拟网站。它可以用于负载测试Web监控。

2 个版本

0.1.8-1eada162020年2月1日
0.1.7-99afa972020年1月5日

#1417 in Web编程

MIT 许可证

35KB
243

Fakesite

Fakesite通过随机行为模拟网站。它可以用于负载测试Web监控。

它是用Rust编写的,主要是为了熟练使用该语言而进行的玩具项目。但是,它可能很有用。使用风险自负。

Fakesite icon

状态

Build Status

当前版本为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