软件性能测试过程
作者:网络转载 发布时间:[ 2011/6/16 15:55:31 ] 推荐标签:
随着企业需求的日益增长以及计算技术的不断进步,企业级系统的应用已经从早期的单机时代转换到了服务成千上万个用户的因特网时代。随着企业业务量的增加,企业的应用系统承载的负荷越来越重,对应用系统的要求越来越高。系统性能的好坏直接影响企业对外提供服务的质量,而性能测试在软件的质量保证中起着重要的作用。
本人结合自己的经验,从技术角度简单讨论一下软件性能测试的测试过程。软件性能测试过程分为三个阶段:
性能测试设计
性能测试执行
测试结果分析
1.性能测试设计
性能测试设计是性能测试过程中一个非常重要的环节,性能测试设计的好坏直接关系到测试的充分性和测试结果的有效性。
性能测试设计阶段主要包括性能需求分析、测试场景制定等。
1.1 性能需求分析
性能需求分析主要包括测试目的和性能指标确定。
进行性能需求分析,需要明确性能需求。性能需求可以从被测软件的相关文档中获得,也可以通过与用户沟通来获得。仔细阅读被测软件附带的相关文档,包括需求文档、使用文档、数据库设计文档等,提取有关软件性能相关的描述,例如"要求操作响应时间在……以内"、"要求……能够快速……"、"要求……能够支持……用户访问"、"要求……能快速稳定运行"、"要求系统连续……无故障运行"等,然后对提取的测试需求进行分析。
(1)确定测试目的
进行需求分析,首先要明确性能测试目的,测试目的不同直接影响后序的性能测试场景的制定。测试目的可以总结为三类:符合性验证、性能考察、性能调优。
符合性验证―主要验证软件是否满足规定的性能指标要求。如测试软件在某一条件下的平均响应时间,或者吞吐率,或者并发用户数等是否满足规定的要求。
性能考察―主要测试软件在某种条件下运行的性能状况。如测试软件所能支持的大并发用户数或者大数据量,软件在不同环境下的性能状况,随用户数量的变化或者数据量的变化情况下软件的性能变化状况等。
性能调优―主要是通过性能测试找出软件的性能瓶颈,分析出引起软件性能缺陷的原因,并进行针对性的性能优化,以改进软件性能。如对软件进行性能测试,确定是软件否存在性能方面的问题,并定位性能瓶颈,对其进行性能优化。
将测试需求与上述目的进行比较,确定出本次测试的测试目的。
(2)确定性能指标
此处确定的性能指标指的是性能需求中要求的,且通过性能测试直接得到的性能指标,主要包括响应时间、吞吐率、资源利用率、交易成功率等,是测试结果分析和判断的依据。性能测试需要有明确的性能指标,某些软件系统具有明确的性能指标,而有的软件系统则需要和用户一起,通过对软件系统的业务特点、技术特点、应用情况等进行综合分析来获得。
如,一软件系统,要求1个小时内必须完成7 200笔业务。可以得出每秒需要完成的业务为7 200/3 600=2笔,则可以得出该系统需要关注的性能指标为服务器处理请求的能力,即吞吐率,值为2笔/秒。
1.2 测试场景制定
测试场景是指导测试执行的依据。测试场景主要是模拟软件系统一些实际的应用情况,包括测试时执行的业务、每种业务执行的用户数量、模拟的总用户数、数据库数据量、用户增长方式、测试循环方式、用户退出方式、执行过程中的相关参数设定等,还包括测试中需要监视的性能计数器,主要是服务器端操作系统相关的计数器、应用服务器相关的计数器、数据库相关的计数器等。不同的测试目的,其测试场景是不同的。
符合性验证主要是验证软件性能是否符合用户使用的要求,则测试中应模拟软件系统的实际使用情况。如,在各功能操作中加入适当的思考时间和迭代间隔时间,用户增长方式采用逐渐加压方式等。软件实际使用时,主要是多用户执行多项功能操作,所以测试场景主要是多用户、多任务的并发测试。当软件系统有长时间连续运行的情况时,还需要有疲劳测试的测试场景。
性能考察中对于测试软件性能极限的情况,如支持的大用户数、大的数据量等,测试场景应该尽可能的模拟极限情况。为了保证测试中对软件施加足够的压力,用户增长方式采用同时加载,思考时间、迭代间隔时间都忽略等。测试软件性能极限,需要不断调整影响软件性能的要素,并分别进行并发测试。如,测试软件支持的大并发用户数,应不断调整并发用户数,在每组用户数下对系统进行并发测试。对于有长时间运行要求的软件系统,则需要进行疲劳测试。
性能考察中检测软件在不同条件下的性能状况时(非性能极限),测试场景应该尽可能与实际使用情况相接近,与符合性验证类似。
性能调优主要是为了软件实际应用中的性能优化,则测试中应模拟软件系统实际应用中的多用户、多任务的并发测试场景,与符合性验证类似。为了验证软件系统是否存在内存泄漏等问题,还需要对其进行疲劳测试。
本人结合自己的经验,从技术角度简单讨论一下软件性能测试的测试过程。软件性能测试过程分为三个阶段:
性能测试设计
性能测试执行
测试结果分析
1.性能测试设计
性能测试设计是性能测试过程中一个非常重要的环节,性能测试设计的好坏直接关系到测试的充分性和测试结果的有效性。
性能测试设计阶段主要包括性能需求分析、测试场景制定等。
1.1 性能需求分析
性能需求分析主要包括测试目的和性能指标确定。
进行性能需求分析,需要明确性能需求。性能需求可以从被测软件的相关文档中获得,也可以通过与用户沟通来获得。仔细阅读被测软件附带的相关文档,包括需求文档、使用文档、数据库设计文档等,提取有关软件性能相关的描述,例如"要求操作响应时间在……以内"、"要求……能够快速……"、"要求……能够支持……用户访问"、"要求……能快速稳定运行"、"要求系统连续……无故障运行"等,然后对提取的测试需求进行分析。
(1)确定测试目的
进行需求分析,首先要明确性能测试目的,测试目的不同直接影响后序的性能测试场景的制定。测试目的可以总结为三类:符合性验证、性能考察、性能调优。
符合性验证―主要验证软件是否满足规定的性能指标要求。如测试软件在某一条件下的平均响应时间,或者吞吐率,或者并发用户数等是否满足规定的要求。
性能考察―主要测试软件在某种条件下运行的性能状况。如测试软件所能支持的大并发用户数或者大数据量,软件在不同环境下的性能状况,随用户数量的变化或者数据量的变化情况下软件的性能变化状况等。
性能调优―主要是通过性能测试找出软件的性能瓶颈,分析出引起软件性能缺陷的原因,并进行针对性的性能优化,以改进软件性能。如对软件进行性能测试,确定是软件否存在性能方面的问题,并定位性能瓶颈,对其进行性能优化。
将测试需求与上述目的进行比较,确定出本次测试的测试目的。
(2)确定性能指标
此处确定的性能指标指的是性能需求中要求的,且通过性能测试直接得到的性能指标,主要包括响应时间、吞吐率、资源利用率、交易成功率等,是测试结果分析和判断的依据。性能测试需要有明确的性能指标,某些软件系统具有明确的性能指标,而有的软件系统则需要和用户一起,通过对软件系统的业务特点、技术特点、应用情况等进行综合分析来获得。
如,一软件系统,要求1个小时内必须完成7 200笔业务。可以得出每秒需要完成的业务为7 200/3 600=2笔,则可以得出该系统需要关注的性能指标为服务器处理请求的能力,即吞吐率,值为2笔/秒。
1.2 测试场景制定
测试场景是指导测试执行的依据。测试场景主要是模拟软件系统一些实际的应用情况,包括测试时执行的业务、每种业务执行的用户数量、模拟的总用户数、数据库数据量、用户增长方式、测试循环方式、用户退出方式、执行过程中的相关参数设定等,还包括测试中需要监视的性能计数器,主要是服务器端操作系统相关的计数器、应用服务器相关的计数器、数据库相关的计数器等。不同的测试目的,其测试场景是不同的。
符合性验证主要是验证软件性能是否符合用户使用的要求,则测试中应模拟软件系统的实际使用情况。如,在各功能操作中加入适当的思考时间和迭代间隔时间,用户增长方式采用逐渐加压方式等。软件实际使用时,主要是多用户执行多项功能操作,所以测试场景主要是多用户、多任务的并发测试。当软件系统有长时间连续运行的情况时,还需要有疲劳测试的测试场景。
性能考察中对于测试软件性能极限的情况,如支持的大用户数、大的数据量等,测试场景应该尽可能的模拟极限情况。为了保证测试中对软件施加足够的压力,用户增长方式采用同时加载,思考时间、迭代间隔时间都忽略等。测试软件性能极限,需要不断调整影响软件性能的要素,并分别进行并发测试。如,测试软件支持的大并发用户数,应不断调整并发用户数,在每组用户数下对系统进行并发测试。对于有长时间运行要求的软件系统,则需要进行疲劳测试。
性能考察中检测软件在不同条件下的性能状况时(非性能极限),测试场景应该尽可能与实际使用情况相接近,与符合性验证类似。
性能调优主要是为了软件实际应用中的性能优化,则测试中应模拟软件系统实际应用中的多用户、多任务的并发测试场景,与符合性验证类似。为了验证软件系统是否存在内存泄漏等问题,还需要对其进行疲劳测试。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南