zoukankan      html  css  js  c++  java
  • 九款Web服务器性能压力测试工具

    一、http_load

    程序非常小,解压后也不到100K
    http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。
    但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。
    还可以测试HTTPS类的网站请求。
    下载地址:http_load-12mar2006.tar.gz
    安装很简单

    #tar zxvf http_load-12mar2006.tar.gz
    #cd http_load-12mar2006
    #make && make install

    基本用法:

    http_load  -p 并发访问进程数  -s 访问时间  需要访问的URL文件

    参数其实可以自由组合,参数之间的选择并没有什么限制。
    比如你写成http_load  -parallel  5  -seconds  300  urllist.txt也是可以的。
    我们把参数给大家简单说明一下。
    -parallel   简写-p :含义是并发的用户进程数。
    -fetches   简写-f :含义是总计的访问次数
    -rate        简写-p :含义是每秒的访问频率
    -seconds 简写-s :含义是总计的访问时间

    准备URL文件:urllist.txt,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好。
    文件格式如下:

    http://www.qixing318.com/
    http://www.qixing318.com/blog/
    http://www.qixing318.com/signin/
    http://www.qixing318.com/signup/
    http://www.qixing318.com/article/a-quick-look-at-the-redis-source-code.html
    http://www.qixing318.com/article/how-the-browser-end-encryption.html
    http://www.qixing318.com/article/jquery-form-validation-plug-in-validate.js-the-basic-usage.html
    http://www.qixing318.com/article/use-flash-plugin-swfupload-head-is-upload-the-screenshot-in-two-ways.html
    http://www.qixing318.com/article/should-make-your-site-using-html5.html
    http://www.qixing318.com/article/simple-to-understand-linux-memory-allocation-mechanism.html
    http://www.qixing318.com/article/organize-the-sphinx-api-based-on-php.html
    http://www.qixing318.com/article/jquery-1-9-removed-browser-method-alternatives.html
    http://www.qixing318.com/article/the-installation-of-fedora-under-chinese-search-sphinx-configuration.html
    http://www.qixing318.com/article/schema-org-tag-was-used-to-optimize-web-pages.html
    http://www.qixing318.com/article/jquery-reference-manual-tutorials-and-tools.html
    http://www.qixing318.com/article/falling-in-love-with-bike-30-reasons.html
    http://www.qixing318.com/article/online-test-tools-browserstack-cross-browser-compatibility.html
    http://www.qixing318.com/article/talk-about-javascript-image-preloading-technology.html
    http://www.qixing318.com/article/brokeback-mountain.html
    http://www.qixing318.com/article/sql-index-caused-performance-issues.html
    http://www.qixing318.com/article/use-python-scapy-reporter.html
    http://www.qixing318.com/article/a-python-web-attack-script.html


    例如:

    http_load -p 30 -s 60  urllist.txt

    参数了解了,我们来看运行一条命令来看看它的返回结果如下:

    结果分析:

    1、294 fetches, 30 max parallel, 3.83835e+06 bytes, in 60.0026 seconds
    说明在上面的测试中运行了294个请求,最大的并发进程数是30,总计传输的数据是3.83835e+06bytes,运行的时间是60.0026秒
    2、13055.6 mean bytes/connection
    说明每一连接平均传输的数据量3.83835e+06/294=13055.6
    3、4.89979 fetches/sec, 63969.7 bytes/sec
    说明每秒的响应请求为4.89979,每秒传递的数据为63969.7 bytes/sec
    4、msecs/connect: 312.009 mean, 1319.57 max, 209.994 min
    说明每连接的平均响应时间是312.009 msecs,最大的响应时间1319.57 msecs,最小的响应时间209.994 msecs
    5、msecs/first-response: 1191.01 mean, 10212.4 max, 220.78 min
    6、HTTP response codes:
        code 200  –  127
        code 502  –  166
    说明打开响应页面的类型
    如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
    特殊说明:
    测试结果中主要的指标是 fetches/sec、msecs/connect 这个选项,即服务器每秒能够响应的查询次数。
    用这个指标来衡量性能。似乎比 apache的ab准确率要高一些,也更有说服力一些。
    Qpt-每秒响应用户数和response time,每连接响应用户时间。
    测试的结果主要也是看这两个值。
    当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论。
    二、webbench

    webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。
    下载地址可以到google搜,我这里给出一个
    下载地址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz
    这个程序更小,解压后不到50K,呵呵
    安装非常简单

    #tar zxvf webbench-1.5.tar.gz
    #cd webbench-1.5
    #make && make install

    会在当前目录生成webbench可执行文件,直接可以使用了
    用法:webbench -c 并发数 -t 运行测试时间 URL
    例如:

    #webbench -c 1000 -t 130 http://www.qixing318.com

    三、apache bench(主要是用来测试apache的)

    ab是apache自带的一款功能强大的测试工具。
    安装了apache一般就自带了。
    用法可以查看它的说明

    #./ab

    参数众多,一般我们用到的是-n 和-c
    例如:

    #webbench -c 1000 -t 130 http://www.qixing318.com/index.php

    这个表示同时处理1000个请求并运行130次index.php文件。
    四、Siege

    一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

    Siege官方:http://www.joedog.org/

    Siege下载:http://www.joedog.org/pub/siege/siege-latest.tar.gz

    Siege解压并安装:

    # tar -zxvf siege-latest.tar.gz
    # cd siege-latest/
    #./configure
    #make
    #make install

    Siege使用:

    #siege -c 100 -r 10 -f site.url

    -c是并发量,-r是重复次数。
    url文件就是一个文本,每行都是一个url,它会从里面随机访问的。

    site.url内容:

    http://www.qixing318.com/
    http://www.zendsns.com/
    http://www.qixing.info/

    测试结果:

    结果说明:

    Transactions: 550 hits //完成550次处理
    Availability: 55.00 % //55.00 % 成功率
    Elapsed time: 31.32 secs //总共用时
    Data transferred: 1.15 MB //共数据传输1.15 MB
    Response time: 3.04 secs //显示网络连接的速度
    Transaction rate: 17.56 trans/sec //均每秒完成 17.56 次处理:表示服务器后
    Throughput: 0.04 MB/sec //平均每秒传送数据
    Concurrency: 53.44 //实际最高并发数
    Successful transactions: 433 //成功处理次数
    Failed transactions: 450 //失败处理次数
    Longest transaction: 15.50 //每次传输所花最长时间
    Shortest transaction: 0.42 //每次传输所花最短时间
    五、LoadRunner

    老牌压力测试工具,LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。

    LoadRunner提供了3大主要功能模块:
    * VirtualUser Generator(用于录制性能测试脚本),
    LoadRunner Analysis(用于分析性能测试结果)既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。
    详见:《性能测试入门——LoadRunner使用初探》(http://www.admin5.com/article/20161114/695706.shtml)
    LoadRunner官网:https://saas.hpe.com/zh-cn/software/loadrunner
    六、JMeter

    JMeter作为一款广为流传的开源分布式压测产品,能自动生成图形报告。最初被设计用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能测试和回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

    JMeter的特点包括对HTTP、FTP服务器、数据库进行压力测试和性能测试;完全的可移植性;完全 Swing和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支持脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的HTTP请求,也可以记录Apache等WebServer的log文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。
    参考文章:《云智慧压测实战分享之JMeter工具使用初探》(https://segmentfault.com/a/1190000007922515)
    官网链接:http://jmeter.apache.org
    七、Tsung

    Tsung is an open-source multi-protocol distributed load testing tool
    It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, MQTT and Jabber/XMPP servers. Tsung is a free software released under the GPLv2 license.
    Tsung是一个开源的支持多协议的分布式压力测试工具
    目前支持HTTP分布式压力测试、WebDAV分布式压力测试、SOAP分布式压力测试、PostgreSQL分布式压力测试、MySQL分布式压力测试、LDAP分布式压力测试、MQTT分布式压力测试、Jabber/XMPP servers分布式压力测试
    八、locust.io

    An open source load testing tool.
    Define user behaviour with Python code, and swarm your system with millions of simultaneous users.
    http://locust.io/
    python编写,用python脚本定义压测规则,分布式,有WEB UI界面,推荐使用
    九、阿里云PTS

    阿里云性能测试(Performance Testing)是一个SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。PTS平台特色包括提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无上限;快速大规模集群扩容、支持几十万用户及百万级TPS性能压测;80%以上用户基本不需要花费额外的成本
    ---------------------
    作者:两页书
    来源:CSDN
    原文:https://blog.csdn.net/qq_33440246/article/details/80591070
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    ArrayList用法
    MessageBox
    将文本文件导入Sql数据库
    在桌面和菜单中添加快捷方式
    泡沫排序
    Making use of localized variables in javascript.
    Remove double empty lines in Visual Studio 2012
    Using Operations Manager Connectors
    Clear SharePoint Designer cache
    Programmatically set navigation settings in SharePoint 2013
  • 原文地址:https://www.cnblogs.com/xiaoshen666/p/10833669.html
Copyright © 2011-2022 走看看