2008年8月18日

性能测试的一些见解

一般需要进行性能测试的都是使用人数多,而且数目不确定,将响应时间限制的一定范围内的应用系统。如面对公共服务的系统,如果门户网站,大型的商业购物网站,大型多人在线网络游戏(当然也有使用人数少,实时要求比较对应的系统需要性能测试,这个不在本文讨论范围内)。在测试的时候不可能召集这么多的用户,所以一般的测试会通过模拟用户自动化的方式来执行。
性能测试是系统测试的一个子集,这种测试是针对整个产品系统进行的,目的是验证系统是否满足了需求规定的定义,找出并发现影响这些定义的地方,也就是普通意义上说的性能瓶颈。由于一般的系统性能包括有几个方面,比如压力性能,负载性能,稳定性等,在实际执行的时候我们一般将它进行一些分解成为对应的,可执行性比较强的测试步骤,如负载测试、压力测试等,而将这些测试行为的总称为性能测试。
这些所谓的“性能指标”在项目需求阶段就应当提出,套用软件行业一般的说法,可以说这个就是“性能需求”。跟系统设计一样,在设计阶段需要将这些需求分解和细化到具体的数值。性能测试执行是需要搭建与实际使用环境相接近的测试环境,通过模拟业务场景来验证应用程序在设置的的测试条件下服务器的运行状况,这些运行的状况可以通过服务器的一些计数器统计出来,如CPU利用率状况、内存占用率等、网络流量、响应时间等。将这些测试数据跟细化后的性能指标进行对比,就可以知道被测试的系统是否满足了“性能需求”。通过实际的性能测试可以发现系统中存在一些在开发和设计阶段没有考虑到问题,是这些隐藏的问题导致了系统存在性能瓶颈。一般刚开发出来的应用软件很少能不经任何调整优化就可以通过性能测试的。
在性能测试的执行中,可以根据具体的性能指标,通过设置不同的场景,就可以演绎出负载测试、压力测试等不同目标的测试,在不同的时间和不同的机器上执行。具体方法是:将一个测试用例写成脚本后,在不同的测试阶段,都可以执行同样的测试脚本,但要配置不同的测试场景跟测试数据。因为在测试场景、测试数据等条件中有一个测试条件有变化的话,都有可能会引起系统在性能响应的变化。通过对测试数据、系统配置、设计指标等进行数据上的对比对比,可以看到那些配置的组合是系统性能的最佳点。
在开始进行执行测试的时候,不管开始时候的测试的硬件环境怎么样,到最后提交测试报告的时候,必须具有运行环境接近的测试环境。对一般的公司而言,搭建测试环境中服务器群都不难实现,实现难度大的地方是运行的时候需要的是互联网的环境。这个也要通过模拟来实现,至于这个差别之间存在的风险,一个比较好的解决方法是专业的评估和在运行环境中不断观察、对比和总结。

若需转载或其他需要,请跟作者朱汉强联系。
联系邮箱:johannes_zhu@yahoo.com
广州益标软件技术有限公司为您提供高质量的软件测试和咨询服务。
欢迎访问:http://www.3rdtest.com/

没有评论: