一.软件测试分类
二 狭义与广义的性能测试
三 测试类型介绍
四 负载测试与压力测试的区别
五 性能测试、负载测试和压力测试三者的关系和区别
六 为何要进行性能测试(性能测试的目的,性能测试的好处)
七 性能测试步骤
八 常见性能测试工具及常见性能监控工具
========================================================
一 软件测试分类
二 狭义与广义的性能测试
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.预测系统未来性能、稳定性
------------------------------------------------
七 性能测试步骤
1.性能测试注意事项
2.性能测试步骤
3.常见性能指标
4.性能计数器
5.LoadRunner 工具性能测试的步骤
1.性能注意事项
1.1 优化性能
1.2 最小化成本
1.3 最小化风险
• 评价系统当前性能
• 寻找瓶颈,优化性能
• 预测系统未来性能、稳定性
-----------------------------------Start----------------------------------
2.性能测试步骤
-----------------------------------One----------------------------------
——软件架构
了解软件的工作过程,比如这个是提供页面访问功能的还是提供API接口服务的,或者是其他的一些原创调用服务
——通信协议
了解通信协议,才能根据通信协议选择合适的工具,选择对的协议进行后期的脚步编写、执行等工作
——逻辑功能
了解逻辑功能,才能对需求有进一步理解:如需求说要满足1000人在线,但是这1000人都在做什么,每种功能事务的人数是多少?
-----------------------------------Two----------------------------------
——需求分解
对一句话需求进行分解、分解到各个功能的需求:如该论坛系统支持10W人同时在线:你需要根据现有的论坛的在线人数、发帖数、PV数进行计算、得到新系统的10W在线对于的每秒发帖数、每秒PV数等具体到单一功能、单一事务的性能需求
——需求理解
针对分解的需求在根据其他的需求或者行业规则,制定出每种事务、单一功能具体的性能指标:如响应时间、每秒事务数等数据,比如页面打开速度遵循1、3、5原则
------------------------------------------------------------------------
3.常见性能指标
-----------------------------------Three----------------------------------
——选择理念
专业、稳定、高效
现在性能测试工具:个人建议选择loadrunner
——特点
专业--工业级性能测试解决方案
稳定—HP国际公司提供
高效—使用范围广、完善的帮助文档
-----------------------------------Four----------------------------------
------------------------------------------------------------------------
4.性能计数器
-----------------------------------Five----------------------------------
-----------------------------------Six----------------------------------
——验证
回归测试主要验证性能问题解决情况
——优化
对于解决上轮测试未发现的问题
-----------------------------------------------------------------------
5.LoadRunner 工具性能测试的步骤
1.Ø规划负载测试
定义性能测试要求,例如并发用户数量、典型业务流程和要求的响应时间
2.Ø创建 Vuser脚本
在自动化脚本中录制最终用户活动
3.Ø定义场景
使用 LoadRunner Controller 设置负载测试环境、手动、面向目标
4.Ø运行场景
使用 LoadRunner Controller 驱动、管理并监控负载测试
5.Ø分析结果
使用 LoadRunner Analysis 创建图和报告并评估性能
-----------------------------------------------------------------------
内容回顾
------------------------------------------------
八 常见性能测试工具及常见性能监控工具
A商用
–HPMercury LoadRunner
–IBMRational Robot
–QALoad
–IBMPerformance Tester
–WAS-MicrosoftWeb Application Stress Tool
–BorlandSilk Performer
–RadviewWebload
–PureLoad
B开源
–Jmeter
–OpenSTA
–ABApache Bench
------------------------------------------------
系统监控
-NMON
-Top
-ProcessMonitor
-Windows自带性能监控工具
-Sitescope
-loadrunner
------------------------------------------------