为了账号安全,请及时绑定邮箱和手机立即绑定

网站压力测试有什么方法论和工具推荐?

/ 猿问

网站压力测试有什么方法论和工具推荐?

幕布斯7119047 2018-09-13 16:09:17

对压力测试的概念很模糊,需要测试哪些性能指标和工具也不是很了解,一个答案也未必能讲清楚,能推荐一下这方面的书籍或者博客吗?

查看完整描述

2 回答

?
素胚勾勒不出你

推荐你去专门的测试论坛吧,那儿很多人在讨论这方面的内容
http://bbs.51testing.com/forum-41-1.h...

查看完整回答
反对 回复 2018-09-29
?
芜湖不芜

测试方法论:

  • 先测网站静态资源,如果有前端服务器(Apache,Nginx等)先测试 static files,测试静态文件得到的这个数据是一个上限,网站程序的动态请求不会比这更快了。

  • 找近一点的地方测,减少由于网络 latency 导致不准确性。

  • 不要用同一台 server 测试,虽然 CPU 不太会是问题,但是 I/O 可能会有影响。

  • 总体可用性测试:测平均值和标准差

  • 一般压力测试:Server 每秒可以承受多少 requests

测试工具:

1. 总体可用性测试:测平均值和标准差

测试的数据除了看平均值,更要看标准差跟计算信赖区间。基本的统计学告诉我们,相差平均一个标准差可以涵盖 68% 的资料,相差两个标准差就可以涵盖 95% 的资料。因此我们可以算出 95% 的信赖区间,也就是 95% 发出的 requests 中,可以在几秒到几秒内回应。

    

httperf --server example.com \
        --port 80 \        
        --uri /path \       
        --num-conn 3000 \        
        --num-call 1 \       
        --timeout 5
  • --server 指定主机地址

  • --port 指定主机端口

  • --uri 指定测试的页面(相对路径)

  • --num-conn 指定总共发多少个请求

  • --num-call 指定每次连接发送的请求数(通常为1)

  • --timeout 指定请求超时时间

测试输出结果 Reply rate 部分可以看到有平均和标准差。要注意的是 httperf 是每5秒抓一次样本(sample),根据 httperf 的建议是希望至少有 30 个样本数才能得到准确的标准差,因此当样本(sample)数太少的时候,需要把 –num-conns 往上加。

2. 一般压力测试:Server 每秒可以承受多少 requests

在之前的基础上,再加上 --rate 跟 --hog 參數:

  • --rate 指定每秒执行多少个请求数

httperf --server example.com \
        --port 80 \       
        --uri /path \       
        --num-conn 3000 \        
        --num-call 1 \        
        --timeout 5        
        --rate 300 \ 
        --hog

逐步把 --rate 往上调,直到 server 超过极限时,当有 requests 被 drop off 了,replies 就会减少并出现 Errors。

参考资料:


查看完整回答
反对 回复 2018-09-29

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信