性能测试的重要意义
随着社会的发展,科技的进步,信息技术的飞速发展,计算机的普及,软件产品已经应用到社会的各个行业领域,加上网络的发展,信息的共享性等,人们对计算机及网络的依赖性越来越大。软件产品的使用者对高质量、高效率的工作方式的要求越来越高,因此对于工作和生活中息息相关的IT系统服务,他们也要求提供更快、更高效的服务品质。
网络的发展,让人们对网络的依赖越来越大,对外界新事物的好奇心等也越来越强烈,成千上万的用户在庞大的网络系统中游转。网络时代的到来,也给提供服务的系统带来严重的系统负荷,这就是系统网络发展中最明显的特征:"高并发"、"数据集中"。
数据越来越集中于后台系统服务器中,众多系统同时为成千上万的网络用户提供服务,如银行、电信、社交网站等公司的软件系统随处可见,影响着我们生活的方方面面。随着各个企业的业务发展、用户访问量的增加,其服务系统承载的负荷也会随着增加,系统性能的好坏将严重影响企业的利益,因此对于IT服务系统的性能测试与优化也越来越受业界的重视。
目前典型的企业信息服务系统的架构大致如图1.1所示。
图1.1 典型的企业信息服务系统的架构
一般是由客户端、网络、防火墙、负载均衡服务器(硬件如F5、软件Apache等)、Web服务器、应用服务器(中间件WebLogic、Tomcat等)、数据库服务器等各个环节组成。
在交付给客户上线使用之前,业务系统的每个环节都要进行性能测试和优化,才能保证上线后的质量。每个环节都要有专业人士协助性能的诊断和优化,这些专业人士包括:性能测试工程师、系统管理员、网络工程师、DBA、程序设计人员等。
IT服务系统的性能测试与优化是一项复杂、富有挑战性的工作,对于一个专业的测试人员而言,性能优化技术的学习和研究有利于性能测试工作的顺利、深入开展。
功能测试和性能测试
功能测试主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。
性能测试则是通过某种特定的方式对被测试系统按照一定的测试策略进行施压,获取该系统的响应时间、运行效率、资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。
通俗地说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成了任务。
项目组不同角色眼中的软件性能
1、系统管理员眼中的软件性能
系统管理员作为软件系统的运维人员,主要关注服务器的资源使用状况、系统的扩展性、系统支持的最大用户量、系统稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理等。
2、研发人员眼中的软件性能
作为研发人员,他们会更关注软件系统架构设计的合理性、数据库的设计是否存在问题、代码是否存在性能方面问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争等。
3、测试人员眼中的软件性能
测试人员是软件性能质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分的准备。
1秒的性能对于顾客的意义
根据2008年Aberdeen Group的研究报告,对于Web网站,1秒的页面加载延迟相当于少了11%的PV(page view),相当于降低了16%的顾客满意度。如果从金钱的角度计算,就意味着:如果一个网站每天挣10万元,那么一年下来,由于页面加载速度比竞争对手慢1秒,可能导致总共损失25万元的销售额。
Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。
由此可见,网站性能与业务目标有着直接的关系,对网站进行负载测试非常重要。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/