一.软件测试分类
二 狭义与广义的性能测试
三 测试类型介绍
四 负载测试与压力测试的区别
五 性能测试、负载测试和压力测试三者的关系和区别
六 为何要进行性能测试(性能测试的目的,性能测试的好处)
七 性能测试步骤
八 常见性能测试工具及常见性能监控工具
========================================================
一 软件测试分类
二 狭义与广义的性能测试
1.狭义的性能测试
A. 性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求。即在特定的运行条件下验证系统的能力状况
。
B. 狭义的性能测试主要是测试系统是否满足要求,是一种验收测试其中一项功能。主要针对关心业务指标的测试
2.广义的性能测试
广义的性能测试包含负载
测试、压力测试
、
配置测试、并发测试、可靠性测试、性能测试(狭义)
------------------------------------------------
三 测试类型介绍
1.性能测试
A. 性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求。即在特定的运行条件下验证系统的能力状况。
B. 主要强调在固定的软硬件环境、确定的测试业务场景下,其主要意义是获得系统的性能指标。
2.负载测试
A. 在给定的测试环境下,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,目的是了解系统性能容量和处理能力极限。负载测试的主要用途是发现系统性能的拐点,寻找系统能够支持的最大用户、业务等处理能力的约束。
B. 也可以理解为扩展性测试(
Scalability Testing
),即在固定测试环境,在其它测试角度(负载方面)不变的情况下,变化一个测试角度并持续增加压力,查看系统的性能曲线和处理极限,以及是否有性能瓶颈存在(拐点)。主要意义是从多个不同的测试角度去探测分析系统的性能变化情况,配合性能调优。测试角度可以是并发用户数、业务量、数据量等不同方面的负载。
3.压力测试
A.
测试系统在一定饱和状态下系统能够处理的会话能力,以及是否出现错误,一般用于稳定性测试。
B.
可以理解为资源的极限测试。测试关注在资源处于饱和或超负荷的情况下,系统能否正常运行,是一种在极端压力下的稳定性测试。
C. 压力测试的目的是调查系统在其资源超负荷的情况下的表现,尤其是对系统的处理时间有什么影响。主要验证系统的可靠性。
4.配置测试
A. 通过对被测系统的软硬件环境的调整,了解各种不同环境对性能影响的程度,从而找到系统各项资源的最有分配原则。
B. 主要用于
性能调优,在经过测试获得了基准测试数据后,进行环境调整(包括硬件配置、网络、操作系统、应用服务器、数据库等),再将测试结果与基准数据进行对比,判断调整是否达到最佳
状态
5.并发测试
A. 模拟并发访问,测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题。
B. 测试目的并非为了获得性能指标,而是为了发现并发引起的问题。比如系统死锁、资源竞争。
6.可靠性测试
A. 通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。
B.
需要和压力测试区分开,两者的测试环境和测试目的不一样。压力测试强调在资源极限情况下系统是否出错,可靠性测试强调在一定的业务压力下长时间(如
24×7
)运行系统,关注系统的运行情况(如资源使用率是否逐渐增加、响应是否是否越来越慢),是否有不稳定征兆。
------------------------------------------------
四 负载测试与压力测试的区别
负载测试:在一定的
工作负荷
下,给系统造成的负荷及系统响应的时间。是测试软件
本身所能承受的最大负荷
的性能测试;
压力测试:在一定的
负荷条件
下,
长时间连续
运行系统给系统性能造成的影响。是一种
破坏性
的性能测试。
五 性能测试、负载测试和压力测试三者的关系和区别
负载测试和压力测试,都属于性能测试的子集。下面举个跑步的例子进行解释。
——性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间或者说你最快的速度(这里,没有负重是基准)
——负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在
50
公斤、
100
公斤
……
等负载的情况下,你跑
100
米需要花多少时间?
——压力测试,是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑
100
米需要花多少时间?
性能测试是动力,负载测试是载重,压力测试是强度
------------------------------------------------
六 为何要进行性能测试(性能测试的目的,性能测试的好处)
目的
是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的
。
1.评估
系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策
。
2.识别
体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统
调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题:
长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突
。
4.
验证稳定性、可靠性:
在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一
方法
实际体现(需要注意性能测试成本因素)
1.优化
性能
2.最小
化成本
3.最小
化风险
4.交付
高质量的系统
性能测试目标
1.评价系统当前性能
2.寻找瓶颈,优化性能
3.预测系统未来性能、稳定性
------------------------------------------------
七 性能测试步骤
------------------------------------------------
八 常见性能测试工具及常见性能监控工具
A商用
–HPMercury LoadRunner
–IBMRational Robot
–QALoad
–IBMPerformance Tester
–WAS-MicrosoftWeb Application Stress Tool
–BorlandSilk Performer
–RadviewWebload
–
PureLoad
B开源
–Jmeter
–OpenSTA
–ABApache Bench
------------------------------------------------
系统监控
-NMON
------------------------------------------------