一、Webbench

Webbench最多可以模拟3万个并发连接去测试网站的负载能力。

安装

wget wget http://www.ha97.com/code/webbench-1.5.tar.gz tar xf webbench-1.5.tar.gz make && make install
异常:
cc -Wall -ggdb -W -O -c -o webbench.o webbench.c webbench.c: In function ‘alarm_handler’: webbench.c:77:31: warning: unused parameter ‘signal’ [-Wunused-parameter] static void alarm_handler(int signal) ^ cc -Wall -ggdb -W -O -o webbench webbench.o ctags .c /bin/sh: ctags: command not found make: [tags] Error 127 (ignored) install -s webbench /usr/local/bin install -m 644 webbench.1 /usr/local/man/man1 install: cannot create regular file ‘/usr/local/man/man1’: No such file or directory make: ** [install] Error 1
解决:
新建 /usr/local/man/ 目录

简单使用

webbench -c 300 -t 60 http://www.baidu.com/
注意:仅支持http协议,不支持https等;
-c表示并发数
-t表示运行测试URL的时间(秒)
webbench 压力测试软件www.jianshu.com/p/dc1032b19c8d

二、go-stress-testing

go-stress-testing 是go语言实现的简单压测工具,源码开源、支持二次开发,可以压测http、webSocket请求、私有rpc调用,使用协程模拟单个用户,可以更高效的利用CPU资源。

安装

下载地址:https://github.com/link1st/go-stress-testing/releases
以linux版本为例:
wget https://github.com/link1st/go-stress-testing/releases/download/v0.1.3/go-stress-testing-linux chmod 766 go-stress-testing-linux

简单使用

./go-stress-testing-linux -c 5 -n 2 -u https://www.baidu.com/
支持参数:
Usage of ./go-stress-testing-mac: -c uint 并发数 (default 1) -n uint 请求数(单个并发/协程) (default 1) -u string 压测地址 -d string 调试模式 (default “false”) -H value 自定义头信息传递给服务器 示例:-H ‘Content-Type: application/json’ -data string HTTP POST方式传送数据 -v string 验证方法 http 支持:statusCode、json webSocket支持:json -p string curl文件路径
结果:
─────┬───────┬───────┬───────┬────────┬────────┬────────┬────────┬──────── 耗时│ 并发数 │ 成功数│ 失败数 │ qps │最长耗时 │最短耗时│平均耗时 │ 错误码 ─────┼───────┼───────┼───────┼────────┼────────┼────────┼────────┼──────── 1s│ 1│ 8│ 0│ 8.09│ 133.16│ 110.98│ 123.56│200:8 2s│ 1│ 15│ 0│ 8.02│ 138.74│ 110.98│ 124.61│200:15 3s│ 1│ 23│ 0│ 7.80│ 220.43│ 110.98│ 128.18│200:23 4s│ 1│ 31│ 0│ 7.83│ 220.43│ 110.23│ 127.67│200:31 5s│ 1│ 39│ 0│ 7.81│ 220.43│ 110.23│ 128.03│200:39 6s│ 1│ 46│ 0│ 7.72│ 220.43│ 110.23│ 129.59│200:46 7s│ 1│ 54│ 0│ 7.79│ 220.43│ 110.23│ 128.42│200:54 8s│ 1│ 62│ 0│ 7.81│ 220.43│ 110.23│ 128.09│200:62 9s│ 1│ 70│ 0│ 7.79│ 220.43│ 110.23│ 128.33│200:70 10s│ 1│ 78│ 0│ 7.82│ 220.43│ 106.47│ 127.85│200:78 11s│ 1│ 84│ 0│ 7.64│ 371.02│ 106.47│ 130.96│200:84 12s│ 1│ 91│ 0│ 7.63│ 371.02│ 106.47│ 131.02│200:91 13s│ 1│ 99│ 0│ 7.66│ 371.02│ 106.47│ 130.54│200:99 13s│ 1│ 100│ 0│ 7.66│ 371.02│ 106.47│ 130.52│200:100 * 结果 stat ** 处理协程数量: 1 请求总数: 100 总请求时间: 13.055 秒 successNum: 100 failureNum: 0 * 结果 end **