1. 程式人生 > >壓力測試之基礎概念

壓力測試之基礎概念

壓力測試之基礎概念














軟件壓力測試是一種基本的質量保證行為,它是每個重要軟件測試工作的一部分。軟件壓力測試的基本思路很簡單:不是在常規條件下運行手動或自動測試,而是在計算機數量較少或系統資源匱乏的條件下運行測試。通常要進行軟件壓力測試的資源包括內部內存、CPU 可用性、磁盤空間和網絡帶寬。


https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95/10364657?fr=aladdin





























淺析同步壓測與異步壓測兩種模式


采用異步的方式發壓,對於單一接口請求方式,容易出現沒秒內,請求集中聚集的情況。也就是說,如果每秒需要發起1.5w qps,實際集中在每秒中的400ms請求完,而剩余的600ms處於等待,從而導致服務端沒發在正常的處理周期內遠遠超過實際能預期的處理能力。




http://www.imooc.com/article/13832






壓力測試工具ab的兩個Time per request 參數含義和區別



1. 首先,介紹ab工具中,會出現兩個Time per request ,如下:

$ ab -n 10 -c3 http://www.imoocc.com/
This is ApacheBench, Version 2.3 <$Revision: 1663405 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.imoocc.com (be patient).....done

Server Software: nginx/1.4.6
Server Hostname: www.imoocc.com
Server Port: 80

Document Path: /
Document Length: 0 bytes

Concurrency Level: 3
Time taken for tests: 1.093 seconds
Complete requests: 10
Failed requests: 0

Non-2xx responses: 10
Total transferred: 2300 bytes
HTML transferred: 0 bytes
Requests per second: 9.15 [#/sec] (mean)
Time per request: 328.016 [ms] (mean) //第一個
Time per request: 109.339 [ms] (mean, across all concurrent requests) //第二個
Transfer rate: 2.05 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 127 134 4.6 136 139
Processing: 132 140 6.0 139 149
Waiting: 132 139 5.9 139 147
Total: 259 274 9.2 276 285

Percentage of the requests served within a certain time (ms)
50% 276
66% 278
75% 282
80% 283
90% 285
95% 285
98% 285
99% 285
100% 285 (longest request)

2. 先說下第二個數值是怎麽來的?
我們會發現第二個Time per request時間會短很多,對吧,首先我們需要了解Time taken for tests,它表示請求的總時間。上面的演示中,請求的總時間為:1093ms
(第二個)Time per request = Time taken for tests / Complete requests
那麽為 1093ms/10 =109.339 [ms]

3.那麽第一個Time per request是什麽意思呢?
其實主要的區別在請求的時間上,第一個Time per request會計算每一個請求的請求和結束時間,註意區別在計算統計每一個請求。
舉個例子:
我們並發請求3個,分別每個請求的時間為30ms、40ms 、50ms ,總共並發完成的時間為90ms,那麽:
(第二個)Time per request = 90ms /3 = 30ms
(第一個) Time per request = (30ms + 40ms + 50ms) /3 = 40ms

這麽描述,大家應該好明白吧,兩個時間都可以看出每一次請求的耗時,只是分析的維度不一樣,第一個的總共時間是累計的每一次請求的時間和。




http://www.imooc.com/article/19979



本文出自 “運維自動化” 博客,請務必保留此出處http://shower.blog.51cto.com/4926872/1981131

壓力測試之基礎概念