欢迎光临
梦想从学习开始!

支持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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小熊分享邦(www.xxfxb.com),希望大家能坚持软件测试之路,谢谢。

赞(0) 打赏
未经允许不得转载:小熊分享邦 » 支持Https的压力测试工具| 小熊测试

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏