51Testing软件测试论坛
标题:
性能测试工具之研究
[打印本页]
作者:
Jon
时间:
2007-5-23 11:02
标题:
性能测试工具之研究
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="COLOR: #666666; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma"><FONT size=2>性能测试的意义</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="COLOR: #666666; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma"><FONT size=2></FONT></SPAN> </P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>追求更高的质量和更高的性能是人类的天性。 “ 更高,更快,更强 ” 的奥运会是对人类自身运动能力的测试。同样,人类也在追求我们工作生活中不可或缺的 IT 系统能够提供更快更强的服务。目前 IT 系统已经称为各个企业运转业务时最重要的系统之一。对 IT 历史稍微有所了解的人都知道, IT 系统经过早年的一个人使用的单机系统时代,几十个人使用的局域网中的客户机服务器系统时代,到现在服务成千上万用户的跨广域网的庞大系统时代。 IT 系统发展中的最明显的特征之一就是所谓的 “ 数据大集中 ” ,即数据越来越集中到后台的服务器中,系统同时为成百上千,乃至上万的用户提供服务。这样的例子在银行、保险、电信公司中随处可见。随着企业业务量的加大,其 IT 系统承载的负荷越来越重,系统性能的好坏严重影响了企业对外提供服务的质量。对 IT 系统的性能进行测试和调优越来越引起企业的重视。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>目前,典型的企业 IT 系统的架构如下所示:<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>这样的系统由客户端、网络、防火墙、负载均衡器、 Web 服务器、应用服务器 ( 中间件 ) 、数据库等等环节组成,根据木桶原理,即木桶所能装的水的量取决于最短的那块木板,整个系统的性能要得到提高,每个环节的性能都需要优化。在这样的 IT 系统中,每个环节的都是一个很复杂的子系统,对其调优都是一门专门的技能。 Oracle 数据库的调优就需要专门的技能和多年的经验。对于整个 IT 系统的调优,其复杂程度更是急剧增加。因此 IT 系统性能测试调优是一个复杂的项目,需要拥有各种专门技能的专家组成小组来完成。这些专家包括操作系统专家、网络专家、数据库专家、应用服务器专家、应用软件和业务专家等等。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>虽然性能测试是一项很复杂和专业的工作,但是由于企业 IT 系统的重要性,保证其性能的稳定对于企业对外提供优质服务越来越得到企业的重视。性能测试服务的市场正在快速发育中。研究系统性能测试越来越有意义。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>要保证性能测试项目的高质量,必需依赖两个重要的因素:人和工具。具有多年经验的高素质的专家小组是保证性能测试的最重要的因素。另一方面,功能全面、使用灵活的性能测试工具对于加速性能测试,提高测试质量和效果也是必不可少的。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>现在有很多种性能测试工具,从功能简单单一的开放源码的软件到昂贵的商业性能测试工具。本文论述了性能测试工具的一般体系架构和技术要点,并探讨了利用已经存在的开放源码的软件整合出一套开源的优质的性能测试工具的可行性。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>• 性能测试工具综述<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: #666666; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><o:p><FONT size=2> </FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>性能测试的主要手段是通过产生模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出其潜在的瓶颈。因此,一个良好的性能测试工具必需能做到以下几点:<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><SPAN lang=EN-US style="COLOR: #666666; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><o:p> </o:p></SPAN><SPAN>• 提供产生压力的手段<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>• 能够对后台系统进行监控<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>• 对压力数据能够进行分析,快速找出被测系统的瓶颈。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>产生压力的手段,主要是通过编写压力脚本,这些脚本以多个进程或者线程的形式在客户端进行运行,来模拟多用户对被测系统的并发访问,以此达到产生压力的目的。由于一台普通的 PC 机可以轻易产生几百乃至上千个进程或线程,通过使用若干台 PC 机,就可以轻易模拟出成千上万个并发用户。压力脚本执行的功能和被测系统客户端软件执行的功能应该一样,从而产生真正的业务压力。 编写压力脚本的工作实际上就是重新编写客户端软件。为了快速达到编写脚本的目的,采用的最有效的方式是通过性能测试工具录制客户端软件和服务器之间的通讯包,自动产生脚本,然后在自动生成的脚本的基础上进行少量修改,如:关联动态内容,指定批量测试数据等。根据经验,压力脚本的准备工作往往占据整个性能测试项目的 50% 的时间和工作量。 因此,能否提供录制和自动产生脚本的功能是性能测试工具最主要的评价指标之一。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>压力脚本的方式给我们提供了模拟各种压力状况的有力手段,通过人为制造各种类型的压力,我们可以观察被测系统在各种压力状况下的表现,从而定位系统瓶颈,作为系统调优的基础。因此,提供丰富的对后台系统进行监控的手段是性能测试工具第二个最主要的评价指标。监控应该不在被测系统上安装任何软件,否则的话,为了监控而引入的 “ 代理 ” 之类的小软件将给被测系统引入新的可变因素,一方面造成了测试结果的不准确,另一方面会给用户的系统的稳定性可能造成影响,从而导致用户的反感和拒绝。目前,各种监控手段大都采用所谓 “ 无代理 ” 的方式,即不在被测系统上安装任何软件,仅仅通过改变被测系统的配置,就可以对被测系统进行监控。需要监控的部件多种多样,包括操作系统、数据库、中间件、应用系统、安全模块、网络、防火墙等等。</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>一组压力测试运行完毕后,我们会得到详尽的性能数据。这些数据包括最终用户的响应时间,后台系统各个部件的运行数据。这些数据的量非常大,往往包括几千个变量的运行曲线,大小可能达到上 G 的规模。靠人工去分析这些数据几乎是不可能的,性能测试工具必需提供数据分析工具,帮助性能测试人员去阅读、解读和分析数据,辅助测试人员定位系统的瓶颈。数据分析工具是保证最终测试成果的手段,因此它是性能测试工具中最重要的部分之一。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>目前已经存在的性能测试工具林林总总,数量不下一百种,从单一的开放源码的免费小工具如 Aapache 自带的 web 性能测试工具 ab 到大而全的商业性能测试软件如 Mercury 的 LoadRunner 等等。任何性能测试工具都有其优缺点,我们可以根据实际情况挑选用最合适的工具。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>前面已经指出,性能测试是一项复杂的工作,一个性能测试项目的质量如何,测试人员的素质、能力和经验是最关键的因素。拥有世界上最先进的 CT 扫描仪并不能让你成为一个优秀的医生。不过, “ 工欲善其事,必先利其器 ” , 拥有一套自己非常熟悉,功能全面、质量可靠的性能测试工具对于从事性能测试的人员非常有吸引力。在商业性能测试软件中,大多价格非常昂贵。由于大多数性能测试工具是按照并发用户数收取费用,因此要获得大的并发量的价格是很高的。虽然存在很多免费的性能测试工具,但其功能不足,彼此不成系统,不能灵活搭配使用。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN><FONT size=2>一套功能全面的性能测试工具的开发工作量是非常大的,这也是为什么商业性能测试软件价格昂贵的主要因素之一。由于互联网和开放源码运动的发展,性能测试工具的各种功能都以各种形式的开源软件存在了。 如果我们设计出一套合理的架构,在统一的架构下整合各种缺乏系统性的开源工具软件,使之能够彼此配套,搭配出一套功能全面、质量可靠,而且是开放源码的性能测试工具是完全有可能的。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="COLOR: #666666; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma"><FONT size=2>本文的下面部分具体论述性能测试工具的基本框架和技术要点,希望热爱编程,希望对开放源码运动有所贡献的读者能从本文的论述中获得一些启发,沿着作者的思路继续往前行。</FONT></SPAN></P><o:p></o:p></SPAN>
[
本帖最后由 Jon 于 2007-5-23 11:09 编辑
]
作者:
wyalgl
时间:
2007-8-14 10:39
dddddddddddddd
作者:
Jon
时间:
2007-10-18 17:35
谢谢楼上的14个顶~~~
作者:
lqwstar
时间:
2007-10-18 18:40
楼主啊 问个问题,dephil 语言开发。oracle数据库,两层结构
LR录制脚本 winsock协议,怎么光一个登录的事务就200多个语句!
作者:
ccn8881933
时间:
2008-6-23 17:14
标题:
PPT
大哥,整个PPT吧!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2