MyException - 我的异常网
当前位置:我的异常网» 互联网 » 网站负荷测试工具

网站负荷测试工具

www.MyException.Cn  网友分享于:2015-08-26  浏览:9次
网站负载测试工具

通常来说,负载测试可以采用手动和自动两种方式。手动测试会遇到很多问题,如无法模拟太多用户、测试者很难精确记录相应时间、连续测试和重复测试的工作量特别大等。因此对于负载测试,手动方式通常用于初级的负载测试。目前,绝大多数的负载测试都是通过自动化工具完成的。 


    负载测试的相关问题

    从网站内容上看,每个网站都有自己的客户群和工作负载,不同网站其软硬件结构差异也很大。下图是一个网站的基本框架。

    这种复杂性给负载测试带来了很大的挑战。一方面,由于一些设备的原因,有时我们不能直接进行负载测试,必须绕过某些设备,造成很大麻烦。另一方面,由于整个体系结构的复杂,也给寻找问题带来了一定的困难。例如防火墙常常阻止负载测试的进行,因此通常需要对防火墙进行调整,让它暂时支持负载测试; 有时服务器的应用程序采用加密方式与客户端进行交互,在这种情况下,还需要更改服务器应用程序。因此,负载测试人员需要对整个网络架构和应用系统非常熟悉。

    另外,负载测试的成功与否,在很大程度上取决于自动化工具。在功能方面,主要考虑它所支持的协议、分析方式、监视目标种类等,以及该工具能否精确记录、回放用户的访问情况。在性能方面,则主要考虑它模拟虚拟用户的能力,例如在一定资源下可以模拟的用户的数量和速度。

    负载测试的过程

    负载测试是一项非常复杂的工作,一次测试常常要持续几天甚至几周。因此,在进行一次负载测试前,必须做好充分的准备,可以按照以下几个步骤来进行。

    (1)系统分析

    分析被测系统需要满足什么要求,例如支持多少人在线、支持连续多长时间的访问等。测试者的主要任务就是将系统的需求转换成测试目标,对系统进行全面的分析和评估,并结合测试的实际环境和条件以确保测试目标和测试计划的正确性。

    (2)产生脚本

    为了模拟多个用户访问服务器必须编写脚本。简单的脚本可以通过自动化工具提供的脚本编辑环境来编写。复杂的脚本则通常是通过记录单用户的活动生成最初的脚本,再在此基础上进行修改以保证该脚本可以支持多个用户。其中最主要的修改是关于数据池的,因为不同用户通常使用不同数据,例如用户名和密码等。因此,我们通常要将这些数据存储在数据库(或者数据池)中,以便在执行中被脚本程序调用。

    (3)构造运行场景

    有了脚本后,就可以通过一个场景来管理这些脚本的执行。场景是一个执行单位,可以通过场景来模拟一个工作负载。在场景中,我们将管理脚本的数量、执行次数、执行时间等,甚至还可以加上一些定时器、同步点等控制机制。另外,还可以将模拟用户分配到不同的计算机上。

    (4)运行场景

    设置好场景后,就可以运行了。通常,在运行场景的同时还要启动相关监控模块,监控服务器性能、网络状态、Web服务器性能和数据库性能等。自动化工具同时记录了各种客户端信息,包括相应时间、交易成功率等。

    (5)分析报告

    通常,在场景运行后,自动化工具会生成标准报告,可以通过分析这个报告来分析整个系统性能,找到系统瓶颈。这一步骤通常需要测试人员和开发人员共同完成。

    负载测试市场和工具

    负载测试市场的发展非常迅速,预计到2003年该市场将达到7亿美元。从目前来说,负载工具市场主要由一些大的软件公司分享,例如CA、Rational和Mercury Interactive。

    (1) Load Runner

    Load Runner是Mercury Interactive公司推出的专业负载测试工具,是目前世界上最强大的负载测试工具之一,它占领了负载测试工具市场的半壁江山。这是一个企业级的自动化工具,提供了非常强大的监视功能,能够监控各种软硬件模块。

    从支持的协议来说,Load Runner支持HTTP(S)、WAP、i-Mode、 RealPlayer、LDAP、Winsock、RMI、FTP、POP3、SMTP、CORBA、COM/DCOM以及Tuxedo等。在监视器部分,它支持Windows NT/2000/XP、 SUN Solaris、HP UX、IBM AIX和Linux等操作系统,支持Apache、Web Logic等各种Web Server,还支持各种大型数据库。

    (2) Astra LoadTest

    Astra LoadTest也是Mercury Interactive 公司推出的负载测试工具。相对Load Runner来说,该工具更加容易使用,不需要使用者掌握复杂的编程语言,完全通过可视化界面进行操作。该工具支持大量HTML相关技术,例如 JavaScript、XML、ActiveX、Flash、DHTML以及SSL等,并支持大部分的浏览器。它的另外一个优点就是能够高效模拟更多虚拟用户,例如使用PIII 1G/512M机器最大可以支持100~250个用户。另外,Astra LoadTest 继承了LoadRunner的监视模块,可以监控所有LoadRunner支持的对象。

    由于Astra LoadTest并不是定位在企业级用户,因此它对一些高级协议的支持不够充分,不能支持CORBA、LDAP、COM、WAP以及POP3等协议。

    (3) Rational Robot

    Rational在软件测试方面也有非常好的成绩。该公司推出的Robot工具支持SQABasic这种面向对象的记录语言。不过,在性能测试方面,Robot并不是很出名。但是Robot提供了一种新的脚本记录语言—VU语言,它基于传统的C语言,能够方便地访问Robot提供的环境变量。同时 Robot还提供了很多良好定义的库函数,调用通信函数更加方便。Robot还提供了其他许多相关测试技术,例如数据池(Datapool)、同步点等,并且通过TestManager可以对所有类型脚本进行管理。

    从功能来说,Robot支持众多的网络协议,例如COM、DCOM、SOCKET、IIOP、Tuxedo等,并且可以对协议进行过滤,选取自己关心的协议。从操作方面来说,它对用户的要求也比较高,需要用户在整个访问过程中,对客户和服务器之间的交互类型和内容比较熟悉,同时对Robot也必须有足够的了解。

    (4) WebLoad

    WebLoad是RadView公司推出的专业负载测试软件。WebLoad提供了一种非常简单的脚本语言记录通信过程,同时它主要支持HTTP相关的技术和应用协议,例如JavaScript、XML、Java、EJB、ActiveX、WAP、HTTP、SNMP、Real以及 Microsoft Streaming Technologies等。该软件的操作非常容易,并且提供格式良好的分析报告。目前IBM公司大量采用该产品进行负载测试

文章评论

 程序员的样子
程序员的样子
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
为什么程序员都是夜猫子
为什么程序员都是夜猫子
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
代码女神横空出世
代码女神横空出世
Java程序员必看电影
Java程序员必看电影
程序员的鄙视链
程序员的鄙视链
旅行,写作,编程
旅行,写作,编程
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
10个调试和排错的小建议
10个调试和排错的小建议
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何成为一名黑客
如何成为一名黑客
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
我的丈夫是个程序员
我的丈夫是个程序员
程序员必看的十大电影
程序员必看的十大电影
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
我是如何打败拖延症的
我是如何打败拖延症的
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员应该关注的一些事儿
程序员应该关注的一些事儿
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
老程序员的下场
老程序员的下场
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
总结2014中国互联网十大段子
总结2014中国互联网十大段子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员和编码员之间的区别
程序员和编码员之间的区别
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员都该阅读的书
程序员都该阅读的书
一个程序员的时间管理
一个程序员的时间管理
编程语言是女人
编程语言是女人
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
那些争议最大的编程观点
那些争议最大的编程观点
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
中美印日四国程序员比较
中美印日四国程序员比较
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有