900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > AB Test 压力测试工具使用整理

AB Test 压力测试工具使用整理

时间:2024-07-10 08:42:04

相关推荐

AB Test 压力测试工具使用整理

转自:LichKing24

Apache Bench,是 Apache 自带的压力测试工具。a可以对服务器进行访问压力测试。

系统安装 Apache Server,自带 ab 命令。

1. 概念

吞吐率:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。并发连接数:某一时刻服务器所接受的请求数(会话数)。并发用户数:某一时刻服务器所接受的连接数,一个用户可能同时产生多个连接。用户平均请求等待时间:总请求数 / 并发用户数。服务器平均请求等待时间:处理完成所有请求数所花费的时间 / 总请求数。

2. 命令

➜ ~ abab: wrong number of argumentsUsage: ab [options] [http[s]://]hostname[:port]/pathOptions are:# 本次测试所发的总请求数-n requestsNumber of requests to perform# -c concurrency Number of multiple requests to make at a time-t timelimit Seconds to max. to spend on benchmarkingThis implies -n 50000-s timeoutSeconds to max. wait for each responseDefault is 30 seconds-b windowsize Size of TCP send/receive buffer, in bytes-B addressAddress to bind to when making outgoing connections-p postfileFile containing data to POST. Remember also to set -T-u putfileFile containing data to PUT. Remember also to set -T-T content-type Content-type header to use for POST/PUT data, eg.'application/x-www-form-urlencoded'Default is 'text/plain'-v verbosity How much troubleshooting info to print-w Print out results in HTML tables-i Use HEAD instead of GET-x attributes String to insert as table attributes-y attributes String to insert as tr attributes-z attributes String to insert as td or th attributes-C attribute Add cookie, eg. 'Apache=1234'. (repeatable)-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'Inserted after all normal header lines. (repeatable)-A attribute Add Basic WWW Authentication, the attributesare a colon separated username and password.-P attribute Add Basic Proxy Authentication, the attributesare a colon separated username and password.-X proxy:port Proxyserver and port number to use-V Print version number and exit-k Use HTTP KeepAlive feature-d Do not show percentiles served table.-S Do not show confidence estimators and warnings.-q Do not show progress when doing more than 150 requests-l Accept variable document length (use this for dynamic pages)-g filenameOutput collected data to gnuplot format file.-e filenameOutput CSV file with percentages served-r Don't exit on socket receive errors.-m method Method name(POST,GET用大写)-h Display usage information (this message)-I Disable TLS Server Name Indication (SNI) extension-Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)-f protocolSpecify SSL/TLS protocol(TLS1, TLS1.1, TLS1.2 or ALL)

3. 测试示例

3.1 基础访问测试

ab -n1000-c10/

测试结果如下

Server Software:Server Hostname: Server Port: 80Document Path:/Document Length: 2746 bytesConcurrency Level:10Time taken for tests: 8.352 secondsComplete requests:1000Failed requests: 0Total transferred:2981000 bytesHTML transferred: 2746000 bytesRequests per second: 119.74 [#/sec] (mean)Time per request: 83.517 [ms] (mean)Time per request: 8.352 [ms] (mean, across all concurrent requests)Transfer rate:348.57 [Kbytes/sec] receivedConnection Times (ms)min mean[+/-sd] median maxConnect: 29 39 11.237173Processing: 33 43 12.042190Waiting: 32 43 12.041189Total: 62 82 17.879226Percentage of the requests served within a certain time (ms)50%7966%8475%8980%9090%9395%9698% 13599% 197100% 226 (longest request)

结果可以看出:

吞吐率:119.74整个测试持续的时间:8.352s完成的请求数:1000失败的请求数:0总的网络传输量:2981000 bytesHTML内容传输量:2746000 bytes用户平均请求等待时间:83.517 ms服务器平均请求处理时间:8.352 ms平均每秒网络上的流量:348.57 kb

网络消耗时间分解

展示最小、平均、方差、中位值、最大值。

Connection Times (ms)min mean[+/-sd] median maxConnect: 29 39 11.237173Processing: 33 43 12.042190Waiting: 32 43 12.041189Total: 62 82 17.879226

请求处理时间分布

可以看出,95% 的请求用时在 95ms 以内,最长请求时间为 226ms。

Percentage of the requests served within a certain time (ms)50%7966%8475%8980%9090%9395%9698% 13599% 197100% 226 (longest request)

3.2 接口请求

ab -n1000-c10-p'list.json'-T'application/json'-H'Authorization: token'-s10/app/v1/list

说明:

-p 代表的是入参的 json 文件,或是 text 的键值对-T 代表 contentType-H 代表的是 http header 信息-s 代表的是超时时间,单位是秒,默认是 30s

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。