压力测试之基础概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了压力测试之基础概念相关的知识,希望对你有一定的参考价值。














软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、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

以上是关于压力测试之基础概念的主要内容,如果未能解决你的问题,请参考以下文章

性能测试性能测试基础:性能测试的概念分类场景和设计要点

性能测试 基础概念

性能测试基础概念1

性能测试 基础概念

jmeter脚本开发:性能测试的基础概念

Docker开篇之基础概念篇