<h4>网站压力测试就是测试网站能够承受多大的访问量,以及在大访问量的情况下网站的性能。这些指标会直接影响用户的体验,因此在网站上线前一般都要做压力测试。压力测试也是考察网站使用的相关web服务器和框架的一个重要手段。</h4>
讯享网
因为和真实的环境不同,压力测试通过模拟得到的结果不会和实际的负载完全相同,但它仍是一个很好的基准比较。做压力测试时也会尽可能地模拟实际的情况。
网上大家推荐的较为常见的网站压力测试工具有ab、webbench、http_load、siege、curl-loader、multi-mechanize、tcpcopy等。
这里的大部分测试工具采用事件驱动模型来创建模拟用户,比如ab使用 apr 包中的 apr_pollset_poll 函数,而其他的工具都使用 select 函数,只有webbench通过 fork 子进程来创建模拟用户,它能模拟的并发数更高。
我把大家的一些总结列在这里:
Apache自带的压力测试工具,还有一个 独立版本 。主要用于测试网站的每秒处理请求数,多用于静态压力测试。基本用法是:
讯享网
输出的结果如下:
webbench可以在 这里 下载。它主要测试每秒请求数,同时支持静态、动态和SSL,单例最多可模拟3万并发,适合小型网站的压力测试。
基本用法是:
讯享网
测试结果如下:
http_load可以在 这里 下载。它可以以单一进程运行,还可以测试HTTPS类的网站。
讯享网
几个主要的参数是:
http_load把要测试的URL放在文件里。
测试结果如下:
Siege的主站为 http://www.joedog.org/siege-home/ 。它可以根据配置对一个网站做多用户并发访问,并记录每个用户所有请求过程的时间,可重复进行。
Siege需要先生成一个配置文件.siegerc。它的测试URL也是写在一个文件中的,每行一个,从中随机访问。并且会生成一个log文件。

讯享网
在终端会输出:
同时,siege.log文件中会记录本次测试的时间等信息。
curl-loader 的特点是它使用了libcurl和openssl的客户端协议栈(更为真实),还支持登录和验证行为。
multi-mechanize 是一个Python写的性能测试框架。它可以用Python库中的 urllib 、 httplib 来发起请求,也可以用libcurl来请求。可以和Mechanize集成,因此做单元测试很容易。另外,它还可以用matplotlib将测试结果生成比较直观的图表。
前面的几种测试工具属于轻量级的,一般都是以单例来模拟多用户并发。 tcpcopy 基于底层应用请求复制,并且具有分布式压力测试的功能(本身有C/S架构),结果和实际数据较为接近,主要用于中大型的压力测试。基于TCP的包均可测试。
http://www.yeolar.com/note/2012/11/24/web-bench-test/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/149756.html