软件压力测试技术概述论文
2020-02-06 20:50:01 104
摘要:随着软件规模的不断扩大和复杂性的提高,软件产品面临着大量的并发用户和业务运营,因此软件性能越来越高受到业界的关注。在这种情况下,为验证系统性能而进行的压力测试就变得更加重要。本文总结了当前研究热点软件压力测试技术。
关键字:软件性能;压力测试;自动化
1.软件性能
压力测试的目标是软件性能,因此首先介绍软件性能的相关知识。一般而言,软件性能是显示软件系统或结构满足其及时性要求的指标。同时,软件性能也是软件产品的特征,可以通过时间进行度量。软件性能的及时性通过软件的响应时间或吞吐量来衡量。软件响应时间是软件产品接收请求并做出响应所花费的时间。
在实际的软件项目中,不同的角色对软件性能的关注不同。从软件产品用户的角度来看,他们专注于软件产品处理请求的效率,即软件的响应时间。从管理员的角度来看,他们不仅将重点放在软件的响应时间上,而且还将在软件产品运行时关注系统资源的使用和系统的可伸缩性。从产品开发人员的角度来看,他们的重点是更全面和深入。除了用户和管理员关注的内容外,他们还关注大量并行用户同时访问导致软件性能不佳和软件故障的原因。如何通过修改设计和代码来消除系统的性能瓶颈也是他们关注的问题。因此,由于不同的角色对软件性能有不同的关注,因此压力测试应该为不同的角色提供可靠的测试结果,以便他们可以分析软件性能。
2.压力测试的概念
软件系统的负载压力是指系统在指定的软件,硬件和硬件下承受的流量。网络环境,例如并发用户数,连续运行时间,数据量等。并发用户数是负载压力的重要指标。
负载测试是一种逐渐增加系统负载,测试系统性能变化并最终确定在满足性能指标时系统可以承受的最大负载的测试。还有一种特定类型的负载测试,它是逐渐增加软件系统的负载,测试系统性能的变化,最后确定在什么负载条件下系统性能处于故障状态以获得最大服务。系统提供的级别。
并发性能测试通过逐步增加并发用户数直到系统出现瓶颈或无法接收,确定事务执行指标,资源监视指标等的综合分析来确定系统的并发性能的过程。负载应力测试的重要部分。
疲劳强度测试是指在稳定的操作条件下可以支持的并发用户或每日运行用户的最大数量,以使其能够在一段时间内开展业务,并确保业务量通过综合分析交易执行指标和资源监控指标的过程,确定系统在处理业务中的最大工作强度,从而达到系统的疲劳强度要求。
大数据量测试包括针对系统存储,传输,统计,查询和其他服务的独立数据量测试,以及与压力性能测试,负载性能测试和疲劳性能测试相结合的综合数据量测试。
3.并发性能测试
系统的并发性能是负载压力性能的最重要组成部分。当前,诸如在线购物系统,在线票务预订系统和资源查询统计系统之类的被广泛使用的系统具有大量用户同时访问这种并发操作。这些并行操作可能会暴露软件系统设计和开发中的缺陷。这些缺陷将降低系统的网络性能,加剧对服务器资源的互斥访问的冲突,导致应用程序和数据库形式的死锁,等等。不同程度的损坏会给用户带来经济损失。因此,为了确保系统的可靠性能,实施有效的并发性能测试非常重要。并发性能测试从三个方面进行测试和监视:客户端性能,网络性能和服务器性能。这三个方面将在下面分别介绍。
客户端上应用程序的性能测试主要使用负载压力测试工具来模拟大量并发用户访问被测系统并执行不同的业务操作,以达到实现负载压力的目的。测试系统通常包括一台主机,多个压力发生器和被测服务器,并且每个部分都通过系统所需的网络类型进行连接。主控制机负责管理压力发生器,同步时间,部署测试脚本并收集测试结果。整个测试系统中只有一台主控机器。压力生成器负责模拟虚拟用户(VU),以通过多线程方法向被测系统施加压力。测试系统中可以有多个压力发生器。
网络上应用程序的性能测试主要是监视网络应用程序的性能并分析应用程序网络的故障,这可以为性能优化,带宽需求确定,应用程序和网络故障提供依据。位置。它的监视系统由探针主控制机和探针机组成。探针主机主要用于配置和管理探针,同步探针时间,收集和处理监视数据,以及提供用于监视数据的显示平台。整个监控系统中只有一个探针主机。探针分布在被测系统的整个应用程序网络环境中,并收集和存储相应的数据。监视系统中可以有多个探针。
服务器上应用程序的性能测试主要是监视被测服务器的操作系统,数据库,中间件和其他组件。当前常用的操作系统,数据库和中间件本身可以提供良好的监视工具,测试人员可以及时收集所需的信息。
4.压力测试自动化
压力测试可以通过两种方式执行:手动测试和自动工具测试。手动测试的使用不仅需要大量的测试人员和机器,而且考虑了被测系统的同步运行和同步监控等问题,因此在实现上存在一定的局限性。测试结果可能对系统调整无效。服务,将消耗大量的人力和物力。相反,在压力测试中使用自动测试工具可以更快地解决问题。自动化测试工具可以模拟成百上千的用户在一台或多台机器上同时执行业务操作的场景,并且可以很好地同步用户的执行时间以进行有效的实时监控。因此,越来越多的压力测试项目正在使用自动测试工具,并且在压力测试的许多方面也已经开发和改进了自动测试工具。
目前,使用自动测试工具进行压力测试是压力测试发展的主流趋势。在实际执行测试项目时,通常使用三种类型的自动测试工具。它们是商业压力测试工具,开源压力测试工具和自行开发的压力测试工具。 。
商业压力测试工具具有广泛的应用范围。他们大多数都经过了全面的测试。测试系统本身相对稳定,测试结果准确。它可以被业界大多数人认可,并且还具有制造商的技术支持和版本升级服务。但是,商业压力测试工具通常更昂贵,并且适合于大型,长期和专业标准要求的测试项目。当今常用的商业负载测试软件主要包括HP LoadRunne,Borland SilkPerformer等,它们都是业界出色的性能测试软件。
开源压力测试工具通常是免费的,用户可以访问和修改测试工具的源代码,而不会侵犯任何专利权和版权。目前,常用的开源压力测试软件主要包括Apache JMester,opensTA等。 ApacheJMester是一种完全用Java编写的压力测试软件,用于负载测试和性能测量。它最初适合于Web应用程序测试。
现在已扩展到其他测试领域。 openSTA是基于CORBA的分布式软件测试架构。 WebLOAD是Radview软件支持的开源负载压力生成引擎。
自行开发的压力测试工具是由测试开发人员根据被测系统的特性开发的,是适用于被测系统的测试工具。尽管商业测试工具和开源测试工具更为普遍,但它们也有其局限性。例如,它们与某些协议,脚本和控件不兼容。情况不理想,性能监控定位不够准确。因此,许多测试工程师必须编写一些适合实际测试项目的程序和工具。在设计和实施压力测试工具时,主要困难是模拟用户操作,控制并发访问以及设置监视点。
参考:
[l]段念。软件性能测试过程的详细解释和案例分析[M]。北京:清华大学出版社,2006。
]刘春路。软件评估师的教程[MJ。北京:清华大学出版社,2005。