软件测试论文负载测试论文
摘要:针对目前互联网风靡的web系统,本文提出了一种基于web的性能测试方法,主要关注与web应用相关的负载测试和压力测试,并强调了测试过程管理的重要作用。
关键词:软件测试;负载测试;压力测试
web system performance optimization through index zhang wei
(school of softeware,central south
university,changsha410000,china)
abstract:in view of the present internet popular web system,this paper puts forward a method based on web performance test method,is mainly concerned with the web application related loading test and stressing test,and emphasized the testing process management role.
keywords:software testing;loading
testing;stressing testing
一、引言
随着web应用突飞猛进的普及应用,it互联网的应用布局架构已经多以面向客户的web方向发展。
然而在web应用能够正常投入运行前,系统的性能如何才能够控制在用户忍
受范围内,也就是说系统可以抓取到更多客户的眼球,从而提高更多客户的忠诚度。
二、网站的性能概述
(一)web系统的性能
web系统的性能在web系统的性能测试过程中,涉及到性能测试的主要有以下几种。
1.负载测试:在不同工作负载下系统的性能检验,目标是测试当负载逐渐增加时,系统各项性能指标的变化。
2.强度测试:确定在系统资源特别低的条件下软件系统运行情况。
3.压力测试:通过确定一个系统的瓶颈或者最大使用极限的测试。
4.海量测试:海量测试侧重点在于数据的量上,包括独立的数据量测试和综合数据量测试。
独立的数据量测试针对某些系统存储,传输、统计、查询等业务进行大数据量测试,而综合数据量测试一般和压力性能测试、负载性能测试、疲劳性能测试相结合。
(二)web性能对网站的重要意义
web应用的多样性决定了web性能测试方法的多样性,所有的测试活动都一定有其目的性,也只有让性能测试围绕其目标展开才能最大限度内的控制测试资源和测试时间的
成本。
第三方软件测试机构对一个网站的总体评估,主要从其功能性、可靠性、易用性、效率、可维护性、可移植性这六大软件特性进行测试和评估。
但是作为一个网站的管理者来说,他们最关心的是网站的性能问题,作为网站的使用者,首先面对的也是网站的响应度是否及时。
在时间如此宝贵的今天,用户不可能在某个网页的响应上等待超过半分钟甚至几分钟,因为在当今社会,效率是高效生活的一部分。
由此可见,网站性能是吸引并抓住用户的重要因素,只有提高网站的性能响应度能将潜在用户转换为自己的顾客,才能提高网站的市场竞争力。
三、web服务器性能指标
通过对web系统的性能测试,我们主要关注的web服务器端的性能指标,而这些性能指标的体现可以反映web系统的“健康”情况,已经需要继续优化的弱点。
下面是web服务器端我们需要重点关注的性能计数器。
memory:系统性能中最重要的因素之一即内存使用情况。
假如系统“页交换”频繁,即表明内存不足。
“页面”的单位称作“页交换”,为了释放内存空间儿将固定大小的代码与数据块一并从ram移动到磁盘。
若要监视内存不足,则需从以下的对象计数器开始:
available mbytes:可用物理内存数.如果available
mbytes的值很小(4mb甚至更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
page/sec:表示因硬件页面错误而从磁盘取出的页面数,或者因页面错误而写入磁盘以释放工作集空间的页面数。
一般若pages/sec持续高于几百,则应该进一步研究页交换活动。
有可能需要增加内存,以减少换页的需求(可将该数字乘以4k得出由此引起的硬盘数据流量)。
processor:指处理器执行非闲置线程时间的百分比。
这个计数器设计成用来作为处理器活动的主要指示器。
它通过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值来得出,可将其视为范例间隔用于做有用工作的百分比。
这个计数器显示在范例间隔时所看到的忙时平均值。
这个值是用100%减去该服务不活动的时间计算出来的。
正常值<90,此值过大表示处理器的性能已经不能应付程序的要求,要换更快的处理器.
average disksec/read:指代以秒计算的在该盘上读取数据所需的平均时间。
average disk sec/transfer:指代以秒计算的在该盘上写入数据所需的平均时间。
四、web性能测试
(一)性能测试方案
软件性能测试的初始阶段,应先对业务模型与系统架构进行相关调研,收集测试需求。
再生成性能测试计划。
业务调研和系统调研,需要性能测试团队提前了解被测试项目的业务功能和系统架构。
在此其间。
开发部门应协助提供被测系统相关的文档和说明,如系统总体介绍、系统规格书、用户使用手册、网络拓扑结构图和系统配置说明、关键服务器及应用部署与配置等文档。
通过与业务部门协商明确本次测试需针对哪些业务行为,从而制定此次测试的目标,细化测试的关注点和性能指标要求。
通过上述途径制定详细的测试方案,并制定详细测试计划和各阶段目标。
有了第三段得性能指标的分析,我们的测试方案要有所针对性,针对某些特定的性能关键点,要设计不同的性能测试场景来完成我们的web系统的业务操作,这样得出的性能指标才能够真正反映web系统的真实水平。
进而为下一步的系统优化提供更有力的数据证据和优化方向。
(二)性能测试环境搭建
测试环境的搭建有:软硬测试系统的环境搭建、测试相关的数据准备工作。
在进行性能测试之前,我们首先会要搭建出合理的性能测试环境,前期的准备工作包括以下几个方面。
1.性能测试硬件的搭建,比如网络拓扑如何构造,采用
什么样的后台架构。
2.性能测试场景的设计,这里主要考虑的是如何模拟出真实用户的操作习惯,这样才会做出有意义的性能测试。
3.性能测试数据的设计。
在我们设计完性能测试场景后,就需要设计出合理的测试数据来填充我们的测试场景,使其能够真正的通过数据来模拟压力等测试手段的执行效果。
其实在整个性能测试过程中,最重要也是最需要细心考虑的环节就是性能测试环境的搭建环节。
(三)性能测试环境开发
性能测试环境的开发需要结合两大关键点:第一个是我们的被测web系统,首先要把整个web系统的业务操作流程形成我们的测试步骤,最终以打压的方式来对我们的web系统进行负载和压力等各种方式的测试;第二个关键点就是我们要重点关注的性能计数器。
在不同的测试场景中,我们要获取不同的性能计数器,并最终形成平均值,在测试报告中,我们要把测试环境的部署数据和测试得出来的性能计数器
数据关联起来。
目的就是为了把业务的薄弱关键点最终以后台服务器的性能计数器数据体现出来。
(四)性能测试执行和报告分析
性能测试执行是基于上面一段步骤进行完毕后的一个
操作,也是最不需要技术含量的一个环节,我们需要做的就是不断的调整和丰富我们的测试场景,使其能够结合其测试数据来完成一系列的模拟实验,在这一过程中,我们需要关注的是测试数据的搜集和服务器性能指标的采集。
最终以报告分析的形式展现出来,如性能指标图,测试数据趋势分析等。
一个好的测试工程师并不是等测试执行完毕就结束了。
更有挑战性的是要结合报告分析来得出被测系统的性能瓶颈。
最终通过研发和测试一起来优化该系统。
五、总结
本文详细分析介绍了网站的性能测试步骤,针对网站的特点,介绍了如何对网站进行压力测试的大体操作步骤。
参考文献:
[1]iso标准.iso/iec15939-2002软件工程.软件测量程序[s].国际标准化组织,2002
[2]国家标准.gb-t18905:软件工程产品评价[s].北京:中国标准出版社,2002
[3]朱少民.全程软件测试[m].北京:电子工业出版
社,2008。