压力测试(整理2篇)

来源:

压力测试范文篇1

关键词:软件性能;压力测试;自动化

1.软件性能

压力测试关注的对象是软件的性能,所以首先介绍一下软件性能的有关知识。一般来说,软件性能是一种指标,表明软件系统或构建对于其及时性要求的符合程度;同时,软件性能也是软件产品的一种特性,可以用时间来度量。软件性能的及时性用软件的响应时间或吞吐量来衡量。软件的响应时间是指软件产品从收到请求到响应请求所需要的时间。

在实际软件项目中,不同的角色对软件性能的关注是不同的。从软件产品用户的角度来看,他们关注的是软件产品处理请求的效率,也就是软件的响应时间。从管理员的角度来看,他们不仅会关注软件的响应时间,还会关注软件产品运行时系统资源的使用状态和系统的可扩展性。从产品开发人员的角度来看,他们关注的就更全面更深入了。他们除了会关注用户和管理员关注的内容,还会关注对软件性能不佳的原因和大量并发用户同时访问而引起的软件故障。如何通过修改设计和代码来消除系统的性能瓶颈也是他们所关注的。那么,正是由于不同角色对软件性能有着不同的关注,压力测试就应该为不同的角色提供可靠的测试结果,以便他们分析软件性能。

2.压力测试的概念

软件系统的负载压力是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等。其中并发用户数是负载压力的重要指标。

负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。其中还有一种特定类型的负载测试,它是通过逐步增加软件系统的负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统提供的最大服务级别。

并发性能测试通过逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的状态,综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试的重要内容。

疲劳强度测试是指构建系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,使其在持续一段时间内执行业务,保证到达系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统在处理业务上的最大工作强度的过程。

大数据量测试包括针对系统存储、传输、统计、查询等业务进行的独立数据量测试,以及结合压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试。

3.并发性能测试

系统的并发性能是负载压力性能的最主要的组成部分。目前广泛应用的网上购物系统、在线订票系统、资源查询统计系统等系统,都存在着大量用户同时访问这样的并发操作。这些并发操作可能会暴露软件系统在设计和开发时的缺陷,这些缺陷会使系统网络性能降低,加剧服务器资源互斥访问冲突,造成应用层程序和数据库表单的死锁等等,给系统带来不同程度的破坏,给用户带来经济损失。因此,为了保证系统的性能可靠,实施有效的并发性能测试是非常重要的。并发性能测试是从客户端性能、网络性能、服务器性能三个方面去进行测试和监测的。下面将分别介绍这三个方面。

应用在客户端的性能测试主要是采用负载压力测试工具模拟大量并发用户访问被测系统,执行不同业务操作,来达到实施负载压力的目的。测试系统通常包括一台主控机、多台压力生成器和被测服务器,各部分采用系统要求的网络类型连接。主控机负责管理压力生成器,同步时间,部署测试脚本和收集测试结果,在整个测试系统中有且仅有一台主控机。压力生成器负责通过多线程的方式来模拟虚拟用户(VU)向被测系统施加压力,在测试系统中可以有多台压力生成器。

应用在网络上的性能测试主要是对网络应用性能的监控和应用网络故障的分析,可以为性能优化、带宽需求确定、应用程序和网络故障的定位等方面提供依据。其监控系统是由探针主控机和探针机组成。探针主控机主要用于配置管理探针,同步探针机时间,收集并处理监测数据,并且提供监测数据的展示平台,在整个监控系统中有且仅有一台探针主控机。探针分布在被测系统的整个应用网络环境中,采集并存储相应的数据,在监控系统中可以有多台探针机。

应用在服务器上的性能测试主要是对被测系统服务器的操作系统、数据库、中间件等组成部分进行监控。目前常用的操作系统、数据库和中间件自身都提供了良好的监控工具,测试者可以适时地收集需要的信息。

四、压力测试自动化

压力测试可以采取手工测试和利用自动化工具测试两种方式。采用手工测试不仅需要大量的测试人员和机器设备,还要考虑同步操作和对被测系统的同步监控的问题,所以执行起来有一定的局限性,测试结果不一定能够有效地为系统调优提供服务,而且还会耗费巨大的人力和物力。相比之下,在压力测试中采用自动化测试工具能更快捷地解决问题。自动化测试工具可以在一台或多台机器上模拟成百上千的用户同时执行业务操作的场景,并可以很好地同步用户的执行时间,进行有效的实时监测。因此越来越多的压力测试项目中都用到了自动化的测试工具,自动化测试工具也在压力测试多方面的要求中得到了发展和改良。

目前,利用自动化测试工具进行压力测试是压力测试发展的主流趋势。在实际的测试项目实施中,大都使用三类自动化测试工具,它们分别是商业化压力测试工具、开源压力测试工具和自主研发的压力测试工具。.

商业化压力测试工具适用范围广,大都经过全面的检测,测试系统本身比较稳定,测试结果比较准确,在业界能得到大多数人的认可,并且还有厂商的技术支持和版本升级服务。但是商业化的压力测试工具一般价格都比较昂贵,适用于大规模的、长期性的、专业标准要求高的测试项目。现在常用的商业化压力测试软件主要有HPLoadRunne、BorlandSilkPerformer等,它们都是业内优秀的性能测试软件。

开源压力测试工具一般都是免费的,用户可以在不侵犯任何专利权和著作权的情况下访问、修改测试工具的源代码。目前常用的开源压力测试软件主要有ApacheJMester、opensTA等。ApacheJMester是一个完全用Java编写的压力测试软件,用于负载测试和性能度量,最初它适用于Web应用测试,

目前己经扩展到其他的测试领域。openSTA是一个基于CORBA的分布式软件测试架构。WebLOAD是一个由Radview软件支持的开源的负载压生成引擎。

自主研发的压力测试工具是测试开发人员根据被测系统的特点而开发的,适用于被测系统的测试工具。商业化的测试工具和开源的测试工具虽然比较整理,但是也有其局限性,比如说对一些协议、脚本、控件等兼容性不好,在一些性能点上缺乏监测,模拟负载的情况不够理想,性能监测定位不够准确。所以很多测试工程师不得不去编写一些适用于实际测试项目的程序和工具。在设计和实现压力测试工具时,主要的难点是模拟用户操作、控制并发访问和设置监测点。

参考文献:

压力测试范文篇2

关键词:web;选课系统;压力负载测试

一、引言

随着高校学分制的广泛实行,选课这一核心思想越来越受到普遍重视,如何最大限度实现资源的合理分配,科学合理得做好选课工作对于学分制的重要性不言而喻,选课工作作为高校教务管理工作的重要组成部分,其重要性日趋明显。

开发基于web的选课系统,取代手工的选课方式已经为众多高校所采纳,然而面对海量的选课数据处理,选课系统的瘫痪现象也时有发生,给选课工作带来了重大影响。1月20日青年时报上关于某高校“学生查分心切致教务网‘瘫痪’数小时”让人为教学管理系统的负载能力捏了一把汗。如何防范此类事情的发生,在系统的使用前期开展压力负载测试势在必行。

二、压力负载测试概述

软件测试中的负载测试是指模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如cpu、内存)等,以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月只出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其它系统问题。

三、选课系统压力负载测试

压力负载测试如果单纯地依赖手工操作是很难完成的,利用性能测试工具如loadrunner等,可以高效地帮助我们完成选课系统压力负载测试的自动化。

(一)压力负载测试自动化

顾名思义,压力负载测试自动化即采用自动化的方法和手段实现系统的压力负载测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。相对于软件测试的其他环节测试,压力负载测试由于其往往需要在大负荷量,甚至在极限状态下才能了解系统的稳定性,同时将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例,压力负载测试自动化势在必行。

自动化测试的一般定义为各种测试活动的管理与实施,包括测试脚本的开发与执行,以便使用一种自动化测试工具来验证测试需求,测试活动的自动化在许多情况下可以提供其最大的价值,如测试脚本被重复的地方或测试脚本在程序被生成后被许多测试脚本重复调用的地方,也可以说,自动化测试就是使用软件工具来代替手工进行的一系列动作,通常是使用脚本或其他代码驱动应用程序。由于软件测试的工作量很大,测试的许多操作是重复性的、非智力创造性的、需求细致注意力的工作,计算机最适合人类去完成这些任务,但是自动化测试是一个很广泛的概念,目的不同需要的工具也不一样,每种工具都有自己独特的属性,当自动化测试开展到一定精细程度的时候,合理选择工具是很重要的。

常用的压力负载测试工具有loadrunner,webload,qaload等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。使用压力测试工具进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。

(二)测试工具loadrunner

目前,业界中有不少能够做性能和压力测试的工具,mercury(美科利)interactive公司的loadrunner是其中的佼佼者,也已经成为了行业的规范,目前最新的版本8.1。loadrunner是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,loadrunner能够对整个企业架构进行测试,loadrunner适用于各种体系架构,能支持广范的协议和技术(如web、ftp、database等),能预测系统行为并优化系统性能。它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。通过loadrunner的测试结果图表对比,你可以寻找出系统瓶颈的原因,一般来说可以按照服务器硬件、网络、应用程序、操作系统、中间件的顺序进行分析。

(三)使用loadrunner对选课系统进行负载测试

loadrunner包含很多组件,其中最常用的有visualusergenerato(以下简称vugen)、controller、analysis。使用loadrunner进行压力负载测试的一般过程为:制定负载测试计划、开发测试脚本、创建运行场景、运行测试、监视场景、分析测试结果。开发测试脚本要使用vugen组件,脚本要完成的内容有每一个虚拟用户的活动、定义结合点、定义事务。运行场景描述在测试活动中发生的各种事件,利用controller创建,一个运行场景包括一个运行虚拟用户活动的loadrunner机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组,而analysis则用于在最后分析测试结果。

目前我院的选课系统主要用于专业选修课的预选、公共选修课和公共体育课的选课,专业选修课的预选在选课容量上未做限制,学生选课相对分散,对于选课系统的性能要求不是很高;公共选修课采用2轮筛选制加1轮优先制,系统的压力主要集中在第3轮的优先制选课,但由于前2轮的筛选分担了近7层的选课数据量,故总体而言系统出现响应滞后甚至瘫痪的几率较低;我院根据教学计划安排,学生在第2、3、4学期需要自行登录选课系统选择体育项目课程,相比公共选修课,公共体育课由于受教学场地、时间、教师等资源限制较多,尤其是从专业的排课角度而言,需要同一专业同一班级的课程上课时间必须保持一致,以便其他课程的合理安排,极大限制了学生选课的自由度,故结合实际情况采用完全优先制,即先选先得,即使经过年级分开选的方式缓解压力,每次选课人数也维持在一届学生的2000人左右,对于选课系统的负载能力要求极高。

使用loadrunner对选课系统进行压力负载测试,从而预先了解选课系统的承载能力,针对问题改进系统,对于科学合理安排选课工作,最大限度保证学生的权利至关重要。下文将从测试环境、测试过程、分析结果等方面进行阐述。

1、测试环境

(1)测试系统运行环境

目前我院的选课系统从属于教务管理系统,系杭州正方软件股份有限公司与浙江大学联合制作研发的高校教学管理软件,其数据库服务器为ibm公司的产品ibmsystemx3850,cpu配置为4*xeonem64tmp3.0ghz7120n,内存配置为4*2gbddr2ecc校验,运行的操作系统为unix系统;由于条件有限,目前web服务器和应用服务器为同一台服务器——ibmsystemx3650,ibmia构架机架服务器中的主力机型,cpu配置为为2*xeonem64tdualcore2.00g/2*2mbl2,1333mhz,2-smp,内存配置为4*1024mbpc2-5300ddr2,操作系统为microsoftwindowsserver2003enterpriseedition。(2)客户端运行环境

客户端为普通pc,cpu配置为intel(r)core(tm)2duoe75002.93ghz,内存配置为1.93gb,运行的操作系统为microsoftwindowsxpprofessional。

2、测试过程

(1)测试脚本录制、编写与调试。录制用户进行选课的脚本,分别录制登录系统、选课提交等两个脚本。然后对登录帐号密码和选择课程进行参数化,将查询结果显示操作设定为事件。

(2)运行loadrunner的conrroller,选择录制的脚本,由于选课相关操作具有特殊性,实际过程中进行操作的用户名密码不尽相同,而且选课的课程也不相同,故使用常用的设置虚拟用户数量并运行的方法并不适用,

故此,复制脚本,修改其中的参数,从而并发进行系统访问

操作。选课的实际情况为学生预先登录系统,在选课时间到达时进行选课,那么登录系统这一环节的并发数相对较少,根据选课系统目标在线用户约2000个,初步估算登录系统的并发数为100,根据访问量和数据量分析可按“并发用户数=在线用户数*30%”公式折算,选课提交并发用户数约个。(3)记录成功登录系统及选课提交完成所需的时间,并关注系统资源占用情况。表2即测试过程中所记录

的部分数据(时间:ms)。

3、分析结果

(1)系统对于登录和选课提交操作的响应速度因处理过程不同而相差较大,当登录系统的并发数达到150时,其成功率开始降低,而选课提交操作当并发数达到500时,其成功率依然很高,故可以得出结论,系统不同环节对于性能的要求不同,整个系统的瓶颈可能出现的环节也视程序复杂性和使用情况而不同。

(2)登录系统最大并发量在100左右,当增加到150时,系统即会出现连接被拒绝的错误。

(3)选课提交的最大并发量在500左右,成功率较高,当并发量往上增加时,成功率出现明显下降。

由于系统本身架构技术的限制,同时受数据库服务器、应用服务器甚至网络本身的制约,当访问量达到较大值时,系统并不能很好地持续工作,其整体压力负载能力还有待提高。

四、总结

对基于web的选课系统进行的压力负载测试是教务管理系统质量保证的重要环节,采用自动化的测试工具不仅可以提高工作的效率,还可以充分保证测试工作的准确性,是软件质量保证体系不可缺少的一环。

你会喜欢下面的文章?

    下列关于商业银行风险压力测试的叙

    - 阅0

    下列关于商业银行风险压力测试的叙述,正确的有()。问题:[多选]下列关于商业银行风险压力测试的叙述,正确的有()。A.可以对风险计量模型中的每一个变量进行压力测试B.可以根据历史上.....

    压力测试(收集3篇)

    - 阅0

    压力测试范文篇1关键词:web;选课系统;压力负载测试一、引言随着高校学分制的广泛实行,选课这一核心思想越来越受到普遍重视,如何最大限度实现资源的合理分配,科学合理得做好选课.....

    咖啡厅服务员辞职报告写作要求(收集3篇)

    阅:0

    咖啡厅服务员辞职报告篇1尊敬的经理:您好!首先感谢您在百忙之中抽出时间开阅读我的辞职报告。我是怀着十分....

    压力测试(整理2篇)

    阅:0

    压力测试范文篇1关键词:软件性能;压力测试;自动化1.软件性能压力测试关注的对象是软件的性能,所以首先介绍一下....

    医疗应急措施(收集5篇)

    阅:0

    医疗应急措施篇11.1一般资料48例SAP患者,均符合诊断标准[2]。其中男32例,女16例,年龄16-83岁,平均年龄51.98....