实战网站压力负载测试之WebBench工具篇.doc_第1页
实战网站压力负载测试之WebBench工具篇.doc_第2页
实战网站压力负载测试之WebBench工具篇.doc_第3页
实战网站压力负载测试之WebBench工具篇.doc_第4页
实战网站压力负载测试之WebBench工具篇.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实战网站压力/负载测试之WebBench篇 版权声明:本文可以任意转载,转载时请保持文章的完整性,并以超链接形式标明文章原始出处和作者信息及本声明。 原始出处: 作者:TROYOO超越()初稿日期:2004-7-2421:39 Webbench是有名的网站压力测试工具,它是由Lionbridge公司()开发。它的帮助文件和文档请到:上查看。 Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webBech的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 本文将以作者的实际操作过程为例,详细讲述使用WebBench进行网站服务器的测试环境,测试过程,测试方法和测试结果分析。 第一部分:搭建WebBench测试平台 WebBench属于客户端(client)控制器(controller)服务器(server)的三层结构。客户端最多可支持60台,其操作系统可以为Windows9X也可以是Windows2000或WindowsXP。控制器的操作系统必须为Windows2000或WindowsXP。服务器可以是IIS,也可以是Apache。 1) 安装一台控制器(controller)。我采用了一台WindowsXP机。下载WebBench5.0controllerfiles(/benchmarks/webbench/3w50co.exe)运行,双击解压,然后进入解压后的目录安装即可。我采用了默认的安装位置:C:WebBenchController。这样我们就完成了控制器的安装,很简单。 2) 安装20台客户机(client)。由于要测试的web服务器性能不高,采用20个客户端就够了,所以我在20台Windows2000电脑上安装了客户端。下载WebBench5.0clientfiles(/benchmarks/webbench/3w50cl.exe)双击解压,然后进入解压后的目录安装即可。默认安装位置:C:WebBenchClient。客户端安装完成。 3) 对控制器和客户机进行设置。这才是关键的一步,如果配置错误,就无法完成测试。 名称 IP地址 Server 37 Controller 84 Clients -20 我的测试环境 根据我的测试环境,配置我的Controller和Clients。在C:WebBenchControllerClientids文件下面有一个client.cdb文件,在里面保存客户机的IP和编号。你只需要把上面的IP改为你的客户机IP即可。 配置客户机,在每台客户机(我的客户机是windows2000)的C:WINDOWSsystem32driversetc目录下面,有一个hosts文件。用文本编辑器打开,里面默认是对localhost的配置,现在我们把它改成如下格式: 第二部分:测试过程 首先启动控制器,第一次打开控制器,需要阅读完它的协议,并接受它才能进入控制界面。开始测试,选择Clients菜单StartLogIn。这时,控制器处于等待客户端加入的状态。然后到每个客户机上运行Client程序。该程序的配置文件如果没有错误,就自动出现“connected!”的信息。这时候控制器上也会显示出该客户机已经连上。 客户机已经连上并处于等待状态 如果我们看到需要的客户端都已经连接完毕,可以点击控制器上OK按钮,客户机连接完毕,会弹出一个窗口,让我们选择测试种类。默认有七个文件: 我们选择静态测试(static.tst),然后填写测试名字,开始测试。客户机安装编号开始启动,首先启动一台,就是第一台,然后启动到4台,8台 20个客户机运行状况(结束时) 大约经过1个半小时,测试完毕。测试结果自动保存在C:WebBenchControllerResults文件夹下面,名字为你测试前填写的名字。 第三部分:测试结果及分析 在控制器上,选择ResultsViewResults然后选择刚才测试的结果,点击View,自动打开MicrosoftExcel,显示测试结果。如果这台电脑上没有安装MSExcel,就会显示安装错误的信息。 打开结果后,共有9个表: Table1:WebBenchSummary Table2:OverallData Table3:OverallClassStatistics Table4:OverallMixDefinitionStatistics Table5:OverallServerStatistics Table6:ClientData Table7:ServerDisclosure Table8:ClientDisclosure Table9:TestSuiteInformation Table10:ErrorInformation 分析: 服务器的环境 CPU: P41.7G 内存: 256M 网络带宽: 100M 操作系统: RedhatAS3.0 由OverallRequestsPerSecond表可以看出,当有12个Clients时,RequestsPerSecond达到最大,是1170.121,Throughput(Bytes/Sec)为7078593.563,也达到了最大。因此分析此时的数据,即可得出本台服务器的最大负载。hosts文件配置样例:(本帖并非多余,作为上文引用的图片)chengxin119 回复于:2004-07-28 10:22:46troyoo负载测试:网站的“体能”测试 通常来说,负载测试可以采用手动和自动两种方式。手动测试会遇到很多问题,如无法模拟太多用户、测试者很难精确记录相应时间、连续测试和重复测试的工作量特别大等。因此对于负载测试,手动方式通常用于初级的负载测试。目前,绝大多数的负载测试都是通过自动化工具完成的。 负载测试的相关问题 从网站内容上看,每个网站都有自己的客户群和工作负载,不同网站其软硬件结构差异也很大。下图是一个网站的基本框架。 这种复杂性给负载测试带来了很大的挑战。一方面,由于一些设备的原因,有时我们不能直接进行负载测试,必须绕过某些设备,造成很大麻烦。另一方面,由于整个体系结构的复杂,也给寻找问题带来了一定的困难。例如防火墙常常阻止负载测试的进行,因此通常需要对防火墙进行调整,让它暂时支持负载测试; 有时服务器的应用程序采用加密方式与客户端进行交互,在这种情况下,还需要更改服务器应用程序。因此,负载测试人员需要对整个网络架构和应用系统非常熟悉。 另外,负载测试的成功与否,在很大程度上取决于自动化工具。在功能方面,主要考虑它所支持的协议、分析方式、监视目标种类等,以及该工具能否精确记录、回放用户的访问情况。在性能方面,则主要考虑它模拟虚拟用户的能力,例如在一定资源下可以模拟的用户的数量和速度。 负载测试的过程 负载测试是一项非常复杂的工作,一次测试常常要持续几天甚至几周。因此,在进行一次负载测试前,必须做好充分的准备,可以按照以下几个步骤来进行。 (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机器最大可以支持100250个用户。另外,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等,并且可以对协议进行过滤,选取自己关心的协议。从操作方面来说,它对用户的要求也比较高,需要用户在整个访问过程中,对客户和服务器之间的交互类型和内容比较熟悉,同时对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论