zoukankan      html  css  js  c++  java
  • 支持https的压力测试工具

    支持https的压力测试工具

    测试了linux下的几种压力测试工具,发现有些不支持https,先简单总结如下:

    一、apache的ab工具

    /home/webadm/bin/ab -c 50 -n 10000 https://2hei.net/mt/index.html
    SSL not compiled in; no https support
    看样子是说SSL没有编译进来,所以不支持https

    二、apache的flood工具

    http://httpd.apache.org/test/flood/

    wget http://www.apache.org/dist/httpd/flood/flood-0.4.tar.gz

    如果要支持https的话,需要添加如下的编译参数:–with-apr –with-apr-util –enable-ssl
    具体代码也可以从svn获取。
    不过我在编译的时候遇到一些问题,apr-util包在make的时候总是报错!

    三、web-bench工具

    http://freshmeat.net/projects/web-bench/

    ./webbench -c 20 -t 10 https://2hei.net/mt/index.html
    Webbench – Simple Web Benchmark 1.5
    Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

    Only HTTP protocol is directly supported, set –proxy for others.
    明确提示了提示不支持https哦!

    四、http_load工具,曾经的最爱,http测试的结果还很令人满意。

    http://acme.com/software/http_load/
    ./http_load -rate 5 -seconds 10 urls
    ./http_load: unknown protocol – https://2hei.net/mt/index.html
    吼吼,看来之前常用的http_load也不支持https

    五、siege工具

    http://www.joedog.org/index/siege-home

    编译使之支持https
    ./configure –prefix=/home/2hei.net/siege –with-ssl=/usr/include/openssl

    基本用法:
    ./siege
    SIEGE 2.69
    Usage: siege [options]
           siege [options] URL
           siege -g URL
    Options:
      -V, –version           VERSION, prints version number to screen.
      -h, –help              HELP, prints this section.
      -C, –config            CONFIGURATION, show the current configuration.
      -v, –verbose           VERBOSE, prints notification to screen.
      -g, –get               GET, pull down headers from the server and display HTTP
                              transaction. Great for web application debugging.
      -c, –concurrent=NUM    CONCURRENT users, default is 10
      -u, –url=”URL”         Deprecated. Set URL as the last argument.
      -i, –internet          INTERNET user simulation, hits the URLs randomly.
      -b, –benchmark         BENCHMARK, signifies no delay for time testing.
      -t, –time=NUMm         TIME based testing where “m” is the modifier S, M, or H
                              no space between NUM and “m”, ex: –time=1H, one hour test.
      -r, –reps=NUM          REPS, number of times to run the test, default is 25
      -f, –file=FILE         FILE, change the configuration file to file.
      -R, –rc=FILE           RC, change the siegerc file to file.  Overrides
                              the SIEGERC environmental variable.
      -l, –log               LOG, logs the transaction to PREFIX/var/siege.log
      -m, –mark=”text”       MARK, mark the log file with a string separator.
      -d, –delay=NUM         Time DELAY, random delay between 1 and num designed
                              to simulate human activity. Default value is 3
      -H, –header=”text”     Add a header to request (can be many)
      -A, –user-agent=”text” Sets User-Agent in request

    siege -c 20 -r 2 -f url
    -c 20 并发20个用户
    -r 2 重复循环2次
    -f url 任务列表:URL列表

    结论相当凑合,纵欲找到可以支持https压力测试的工具了。

    六、httperf工具,来自hp的工具,不过已经n年没有更新了。

    wget ftp://ftp.hpl.hp.com/pub/httperf/httperf-0.9.0.tar.gz

            $ mkdir build
            $ cd build
            $ SRCDIR/configure
            $ make
            $ make install

    工具使用方法:
    /usr/local/bin/httperf –help
    Usage: httperf [-hdvV] [--add-header S] [--burst-length N] [--client N/N]
            [--close-with-reset] [--debug N] [--failure-status N]
            [--help] [--hog] [--http-version S] [--max-connections N]
            [--max-piped-calls N] [--method S] [--no-host-hdr]
            [--num-calls N] [--num-conns N] [–period [d|u|e]T1[,T2]]
            [--port N] [–print-reply [header|body]] [–print-request [header|body]]
            [--rate X] [--recv-buffer N] [--retry-on-failure] [--send-buffer N]
            [--server S] [--server-name S] [--session-cookies]
            [--ssl] [--ssl-ciphers L] [--ssl-no-reuse]
            [--think-timeout X] [--timeout X] [--uri S] [--verbose] [--version]
            [--wlog y|n,file] [--wsess N,N,X] [--wsesslog N,X,file]
            [--wset N,X]
    如:
    /usr/local/bin/httperf –server www.2hei.net
       –port 443 –uri /mt/index.html
       –rate 15 –num-conn 1000
       –num-call 1 –timeout 5

    发现会有如下错误:
    httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
    以下是解决办法:
    # Edit /etc/security/limits.conf and add the line * hard nofile 65535 (or instead of * you can put the username of the user for whom you want to change the limit)
    # Edit /usr/include/bits/typesizes.h and change #define __FD_SET_SIZE 1024 to #define __FD_SET_SIZE 65535 (in /usr/include/sys/select.h FD_SETSIZE is defined as __FD_SETSIZE)
    重新编译即可。

    实例测试如下:
    /usr/local/bin/httperf –client=0/1 –ssl –server=www.2hei.net –port=443 –uri=/mt/index.html –rate=1 –num-conns=1000 –rate=50 –num-calls=1 –hog
    httperf –hog –client=0/1 –server=www.2hei.net –port=443 –uri=/mt/index.html –rate=50 –send-buffer=4096 –rec
    v-buffer=16384 –ssl –num-conns=1000 –num-calls=1
    Maximum connect burst length: 1

    Total: connections 1000 requests 1000 replies 1000 test-duration 33.758 s

    Connection rate: 29.6 conn/s (33.8 ms/conn, <=394 concurrent connections)
    Connection time [ms]: min 73.1 avg 6513.5 max 22013.1 median 5371.5 stddev 4176.3
    Connection time [ms]: connect 5670.7
    Connection length [replies/conn]: 1.000

    Request rate: 29.6 req/s (33.8 ms/req)
    Request size [B]: 80.0

    Reply rate [replies/s]: min 26.6 avg 31.3 max 33.6 stddev 2.4 (6 samples)
    Reply time [ms]: response 842.7 transfer 0.0
    Reply size [B]: header 331.0 content 163.0 footer 2.0 (total 496.0)
    Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

    CPU time [s]: user 9.91 system 23.11 (user 29.4% system 68.5% total 97.8%)
    Net I/O: 16.6 KB/s (0.1*10^6 bps)

    Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
    Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

  • 相关阅读:
    codevs 1115 开心的金明
    POJ 1125 Stockbroker Grapevine
    POJ 2421 constructing roads
    codevs 1390 回文平方数 USACO
    codevs 1131 统计单词数 2011年NOIP全国联赛普及组
    codevs 1313 质因数分解
    洛谷 绕钉子的长绳子
    洛谷 P1276 校门外的树(增强版)
    codevs 2627 村村通
    codevs 1191 数轴染色
  • 原文地址:https://www.cnblogs.com/timssd/p/4641956.html
Copyright © 2011-2022 走看看