♦我是一下下面几个方面来理解的:
1.秒的性能对于顾客的意义?
2.性能测试的重要意义
3.什么是软件的性能?
4.软件的性能测试是什么?
5.功能测试和性能测试对比?
6.项目组不同角色眼中的软件性能?
7.性能测试的目的是什么?
8.性能测试分类是什么?
9.性能测试指标是什么?
10.性能测试基本流程是什么?
11.性能测试的方法有哪些?
12.影响软件性能的因素有哪些?
1.秒的性能对于顾客的意义?
根据2008年Aberdeen Group的研究报告,对于Web网站,1秒的页面加载延迟相当于少了11%的PV(page view),相当于降低了16%的顾客满意度。如果从金钱的角度计算,就意味着:如果一个网站每天挣10万元,那么一年下来,由于页面加载速度比竞争对手慢1秒,可能导致总共损失25万元的销售额。
Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。
由此可见,网站性能与业务目标有着直接的关系,对网站进行负载测试非常重要。
再结合我的实际体验,启动一个软件如果很卡,就不太想用了,如果在中间使用时再很卡时,下次再想使用的欲望就会强烈减少,甚至会产生排斥心理。
2.性能测试的重要意义?
♦随着社会的发展,科技的进步,信息技术的飞速发展,计算机的普及,软件产品已经应用到社会的各个行业领域,加上网络的发展,信息的共享性等,人们对计算机及网络的依赖性越来越大。软件产品的使用者对高质量、高效率的工作方式的要求越来越高,因此对于工作和生活中息息相关的IT系统服务,他们也要求提供更快、更高效的服务品质。
♦网络的发展,让人们对网络的依赖越来越大,对外界新事物的好奇心等也越来越强烈,成千上万的用户在庞大的网络系统中游转。网络时代的到来,也给提供服务的系统带来严重的系统负荷,这就是系统网络发展中最明显的特征:"高并发"、"数据集中"。
♦数据越来越集中于后台系统服务器中,众多系统同时为成千上万的网络用户提供服务,如银行、电信、社交网站等公司的软件系统随处可见,影响着我们生活的方方面面。随着各个企业的业务发展、用户访问量的增加,其服务系统承载的负荷也会随着增加,系统性能的好坏将严重影响企业的利益,因此对于IT服务系统的性能测试与优化也越来越受业界的重视。
♦目前典型的企业信息服务系统的架构大致如图1.1所示。
♦一般是由客户端、网络、防火墙、负载均衡服务器(硬件如F5、软件Apache等)、Web服务器、应用服务器(中间件WebLogic、Tomcat等)、数据库服务器等各个环节组成。
♦在交付给客户上线使用之前,业务系统的每个环节都要进行性能测试和优化,才能保证上线后的质量。每个环节都要有专业人士协助性能的诊断和优化,这些专业人士包括:性能测试工程师、系统管理员、网络工程师、DBA、程序设计人员等。
♦IT服务系统的性能测试与优化是一项复杂、富有挑战性的工作,对于一个专业的测试人员而言,性能优化技术的学习和研究有利于性能测试工作的顺利、深入开展。
3.什么是软件的性能?
♦软件性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。由于感受软件性能的主体是人,不同的人对于同样的软件能有不同的主观感受,而且不同的人对于软件性能关心的视角也不同。由于目前网络应用非常普遍,因此下面将介绍网络应用软件性能的指标和软件性能的视角。
4.软件的性能测试是什么?
♦百度词条定义:性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试。通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统提供的最大服务级别的测试。
♦维基百科定义:在计算机领域,软件性能测试被用来判断计算机、网络、软件程序或者驱动的速度和效率。这一过程会在同一实验环境下进行大量测试,以便于衡量系统功能的相应时长或者MIPS(每秒执行指令数目)等指标,其他系统特性,如可靠性、可量测试、互用性等,也可以用性能测试来衡量,性能测试通常与压力测试一起进行。
我理解:1.性能测试需要围绕影响软件几个因素,并结合客户提出的一些性能要求,来展开性能测试,
2.还有一些在特定环境下的性能测试,如:集群环境,网络不稳,电源不稳定下,等等是否达到一个客户需求的一个指标。
5.功能测试和性能测试对比?
♦功能测试主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。
♦性能测试则是通过某种特定的方式对被测试系统按照一定的测试策略进行施压,获取该系统的响应时间、运行效率、资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。
通俗地说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成了任务。
所以笔者认为:可以不做自动化,但是在保证功能的前提下,下来就是要考虑性能了,因为面对挑剔的使用群体,我们要做到快,准,狠。
6.项目组不同角色眼中的软件性能?
1、系统管理员眼中的软件性能
系统管理员作为软件系统的运维人员,主要关注服务器的资源使用状况、系统的扩展性、系统支持的最大用户量、系统稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理等。
2、研发人员眼中的软件性能
作为研发人员,他们会更关注软件系统架构设计的合理性、数据库的设计是否存在问题、代码是否存在性能方面问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争等。
3、测试人员眼中的软件性能
测试人员是软件性能质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分的准备。
7.性能测试的目的是什么?
性能测试目的验证软件系统是否能够达到用户提供的性能指标,同时发现存在的性能瓶颈,最好起到优化的目的。
1、评估系统的能力:主要从测试结果中的负荷和响应时间,并发用户等数据验证系统的各项指标达到用户需求
2、识别体系中的弱点:根据测试过程中的负荷或代码走差方式找出系统的极端或繁琐的代码逻辑,从而找到体系中的瓶颈或薄弱地方
3、系统调优:重复进行性能测试,验证系统活动是否达到预期结果,从而进行改进
4、检测软件中的问题:主要查找一些隐含的问题或者硬件引发的问题。主要方法大量的重复测试验证
5、验证稳定性和可靠性:不但要验证系统的稳定性和可靠性,还要验证人为因素的稳定性。
8.性能测试分类是什么?
1、负载测试::闲时负载量。通过测试系统在资源超负荷情况下的表现来发现设计上的错误或验证系统的负载能力。目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。还用来评估性能特征,如响应时长、事务处理速度等
2、压力测试:极限负载量。对系统不断施加压力的测试,判断系统能提供的最大服务级别。例如测试一个web站点,经过不断加压判断出达到多少用户并发的时候服务响应失效。
3、容量测试:支持的最大数量
9.性能测试指标是什么?
系统指标:
1、并发用户数:某一物理时刻同时向系统提交请求的用户数
2、平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间小于2秒
3、事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务
4、平均响应时间:对于客户端用户来说,最直观的体验就是访问该页面快或者慢,即响应时间的长短。比如在持续并发性能测试过程中,客户感知访问应用很慢,监控到的平均响应时间也逐渐变长,这时就需要先借助于监控到的资源指标
资源指标:
1、CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%
2、内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%
3、磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能
4、网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
10.性能测试基本流程是什么?
1、确性能测试需求
2、制定性能测试方案
重点描述如何进行性能测试,和功能测试方案基本一致,但是必须明确关键功能的相应时长和用户数,例如查询功能平均使用次数xx,平均用户数xx,高峰段用户数xx,平均相应小于xx秒,可接受最长响应时长小于xx秒,使用时间段8点到12点
3、编写性能测试案例
和功能测试用例基本一致
4、执行性能测试案例
5、分析结果
6、生成性能测试报告
测试报告尽量写的非专业人士也可以读懂。主要的部分要有测试基本信息、测试环境、执行情况、结果分析、总结说明。还可以给出一些建议方案
11.性能测试的方法有哪些?
1.使用工具:jmeter,.Loadrunner11(适合做大并发)
2.性能测试的几种方法后面详细写出来。
12.影响软件性能的因素有哪些?
在下面中讲到影响软件性能的因素(二)。
部分摘自:什么是性能测试(二)