1、apache Benchmark(AB)-web性能测试工具

一、简介:

介绍:

apache自带的apache Benchmark工具可以用来做压力测试。

文件位置:

Apache安装目录/bin/ab.exe

查看版本:

ab -V可以查看当前ab的版本

二、使用

用处:

可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问

常用命令:

ab [可选的参数选项] 需要进行压力测试的url

例如:ab -c 500 -n 1000 url:端口/path

-c+测试的并发线程数(500个用户并发),-n总共发起的请求数(总共访问1000次)

三、结果解析

1. 比较重要的指标是

    Requests per second: 122.12 [#/sec] (mean)

    相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值

    Time per request: 8188.731 [ms] (mean)

    相当于 LR 中的 平均事务响应时间 

2. 最后的百分比代表整个场景中所有请求的响应情况,其中50%的用户请求响应时间在269ms内,以此类推。

 

四、附录:参数一览

-n即requests,用于指定压力测试总共的执行次数。

-c即concurrency,用于指定压力测试的并发数。

-t即timelimit,等待响应的最大时间(单位:秒)。

-b即windowsize,TCP发送/接收的缓冲大小(单位:字节)。

-p即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。

-u即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。

-T即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。

-v即verbosity,指定打印帮助信息的冗余级别。

-w以HTML表格形式打印结果。

-i使用HEAD请求代替GET请求。

-x插入字符串作为table标签的属性。

-y插入字符串作为tr标签的属性。

-z插入字符串作为td标签的属性。

-C添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。

-H添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。

-A添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。

-X指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。

-V打印版本号并退出。

-k使用HTTP的KeepAlive特性。

使用HTTP的KeepAlive特性。

-k使用HTTP的KeepAlive特性。

-d不显示百分比。

-S不显示预估和警告信息。

-g输出结果信息到gnuplot格式的文件中。

-e输出结果信息到CSV格式的文件中。

-r指定接收到错误信息时不退出程序。

-h显示用法信息,其实就是ab -help。

--------------------- 作者:NNnora 来源:CSDN 原文:https://blog.csdn.net/NNnora/article/details/80529657?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

 

性能测试得到的最重要的指标就是QPS(Requests per second),反映了接口的并发承受能力,也就是系统的峰值性能。如果对接口的调用超过了这一限制,就要考虑提升硬件或者做一些优化了。

 

 

下面具体解释下各个参数的含义:

 

  • Server Software:    Web主機的作業系統與版本(若Web主機設定關閉此資訊則無);在此例中就是压力测试的对象nginx
  • Server Hostname:  Web主機的IP位址(Hostname)
  • Server Port:           Web主機的連接埠(Port)
  • Document Path:     測試網址的路徑部分
  • Document Length: 測試網頁回應的網頁大小
  • Concurrency Level: 同時進行壓力測試的人數
  • Time taken for tests: 本次壓力測試所花費的總秒數                                                  ;此次压力测试花费的世间
  • Complete requests: 完成的要求數(Requests)
  • Failed requests:      失敗的要求數(Requests)
  • Write errors:           寫入失敗的數量
  • Total transferred:   本次壓力測試的總數據傳輸量(包括 HTTP Header 的資料也計算在內)
  • HTML transferred:  本次壓力測試的總數據傳輸量(僅計算回傳的 HTML 的資料)
  • Requests per second: 平均每秒可回應多少要求                                                     ;是否可以认为是QPS
  • Time per request:  平均每個要求所花費的時間(單位: 豪秒)                                    ;每次并发请求时间(所有并发)
  • Time per request:  平均每個要求所花費的時間,跨所有同時連線數的平均值(單位: 豪秒)    ;每一次请求时间(并发平均)
  • Transfer rate:         從 ab 到 Web Server 之間的網路傳輸速度

 

最後的 Connection Times (ms) 指的是壓力測試時的連線處理時間:

橫軸欄位的部分:

  • min:       最小值
  • mean:    平均值(正、負標準差)
  • median: 平均值(中間值)
  • max:      最大值

縱軸欄位的部分:

  • Connect:     從 ab 發出 TCP 要求到 Web 主機所花費的建立時間。
  • Processing:  從 TCP 連線建立後,直到 HTTP 回應(Response)的資料全部都收到所花的時間。
  • Waiting:       從發送 HTTP 要求完後,到 HTTP 回應(Response)第一個 Byte 所等待的時間。
  • Total:           等於 Connect + Processing 的時間(因為 Waiting 包含在 Processing 時間內了)

壓力測試的基本觀念

  • 排除頻寬的限制
    • 做壓力測試通常不會考量「頻寬的限制」,所以一般來說不會將測試的主機擺在遠端機房、然後測試程式擺在公司內部的主機,而是會將壓力測試的 Client 跟 Web 主機擺在同一個網段下進行壓力測試。
    • 因為「頻寬」只要花錢就會有了,但是主機的承載量卻是有限的,從遠端進行壓力測試主要的限制是在「頻寬」而非「效能」,所以從遠端單點進行壓力測試毫無任何意義可言,這樣是測不出主機的效能極限的。
    • 如果你有能力與資源進行大規模(多點)壓力測試的話,透過遠端進行壓力測試才有意義。
  • 壓力要循序漸進
    • 你不要一下字就執行同時連線數 100 人,而是要循序漸進的慢慢加同時連線數上去,才不會讓 Web Application 一下字承受過大的負載而導致效能的數據不正確(例如說 Failed requests 過高),但這只是建議,你也可以一下子操死你的主機,反正你在測主機的極限嘛!

--------------------- 作者:一座青山 来源:CSDN 原文:https://blog.csdn.net/sangyongjia/article/details/49093945?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值