httptest 测试http/https get请求

命令行:

httptest  [ -d ] [ -4 ] [ -6 ] [ -p ] [ -i prefix ] [ -w wait_time ] [ -r check_string ] url

    -d               print debug message
    -4               force ipv4
    -6               force ipv6
    -p               print response content
    -i prefix        influxdb output
    -w wait_time     max conntion time
    -r check_string  check_string

注意,最多下载4MB字节。

程序退出值:

0 如果获取到200应答,并且返回的内容中有check_string
1 DNS查询错误
2 TCP连接建立错误
3 读应答错误
4 非200应答
5 提供了check_string, 但是应答中无check_string
8 命令行错误
9 https协商错误
10 url错误

stdout输出

退出值 DNS解析时间 TCP连接时间 第一次应答时间 传输时间 传输字节 传输速度 URL

第1个参数是整数,第2-5个参数单位是秒,第6个参数单位是字节,最后1个参数单位是 字节/秒

运行测试:

# ./httptest -w 2 https://www.sjtu.edu.cn/
0 0.0109 0.0093 0.0322 0.0375 74006 1972652 https://www.sjtu.edu.cn/
# ./httptest -w 2 https://www.pku.edu.cn/
0 0.0007 0.0257 0.0811 0.0780 63863 819229 https://www.pku.edu.cn/
# ./httptest -w 2 https://www.ustc.edu.cn/
0 0.0008 0.0003 0.0066 0.0008 27392 35163028 https://www.ustc.edu.cn/

直接送influxdb

如果提供了 -i prefix,直接输出influxdb友好,可以直接使用curl交给influxdb,如下所示:

while ture; do
	curl -i -XPOST "http://202.38.*.*:8086/write?db=db&u=user&p=password" --data-binary "$(./httptest -w 2 -i www,host=www.pku.edu.cn https://www.pku.edu.cn/)"
	curl -i -XPOST "http://202.38.*.*:8086/write?db=db&u=user&p=password" --data-binary "$(./httptest -w 2 -i www,host=www.ustc.edu.cn https://www.ustc.edu.cn/)"
	sleep 60
done