zoukankan      html  css  js  c++  java
  • (转,有改动)测试网页响应时间的shell脚本[需要curl支持]

    用法及返回结果如下:

    [root@myserver01 tmp]# sh test_web.sh -n500 http://www.baidu.com
    Request url: http://www.baidu.com
    Request number: 500
    Request Failed: 0
    ------Average Value------
    time_connect: 0.014414
    time_namelookup: 0.010926
    time_total: 0.020486
    -------------------------

    请求参数:
    -n 指定发送多少次请求,默认为10

    返回结果为 curl -w 选项返回值,以下摘自curl官方文档(http://curl.haxx.se/docs/manpage.html):

    time_connect :连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个time_connect时间减去前边time_namelookup时间。(The time, in seconds, it took from the start until the TCP connect to the remote host (or proxy) was completed.) 

    time_namelookup: DNS解析时间,从请求开始到DNS解析完毕所用时间。(The time, in seconds, it took from the start until the name resolving was completed.) 

    time_total: 总时间,按秒计。精确到小数点后三位。 (The total time, in seconds, that the full operation lasted. The time will be displayed with millisecond resolution.)

    代码如下(可自行添加其他功能):

    #!/bin/bash
    #requesturl.sh
     
    usage="
    Usage: $0 [options...] <url>
    
    Options:
    
     -h This help text
    
     -n <num> The numbers to request
    
    "
    if [ $# -lt 1 ]
    then
        echo -e $usage
        exit 1
    fi
    num=10
    while getopts "n:h" arg
    do
        case $arg in
            n)
                num=$OPTARG
                if [ $num -lt 1 ]
                then
                    num=1
                fi
                ;;
            h)
                echo -e $usage
                exit 1
                ;;
            ?)
                echo "Unknow argument"
                exit 1
                ;;
            esac
    done
     
    url=$(eval echo "$$#")
     
    if [ "http://" != ${url:0:7} ]
    then
        echo "The url need to add the http:// prefix"
        exit 1
    fi
     
    echo "Request url: "$url
    echo "Request number: "$num
     
    i=1
    while [ $i -le $num ]
    do
        c=`curl -o /dev/null -s -w 
            "http_code:%{http_code} time_namelookup:%{time_namelookup} 
            time_connect:%{time_connect} time_total:%{time_total}" $url`
        s=$s$c"
    "
        i=$[$i+1]
    done
    #echo -e $s
    echo -e $s | 
    awk '{OFS="
    "}{if($1) for(i=1;i<=NF;i++)print $i}' | 
    awk -F: -v num=$num -v failnum=0 
        '{if($1 != "http_code")result[$1]+=$2;if($1=="http_code" && $2 != 200)failnum++} 
        END{print "Request Failed: " failnum "
    ------Average Value------"; 
        for(i in result) {print i ": " result[i]/num;} 
        print "-------------------------"}'

     (转自:http://renxiangzyq.iteye.com/blog/782773)

  • 相关阅读:
    算法的力量
    图文细说11种计算机图标符号的历史
    位图像素的颜色
    位图像素的颜色
    大数处理之三(除法)
    大数处理之三(除法)
    大数处理之二(幂运算)
    大数处理之二(幂运算)
    浮点数(double)的优势
    大数处理之一(加法和乘法)
  • 原文地址:https://www.cnblogs.com/vijayfly/p/6236341.html
Copyright © 2011-2022 走看看