软件性能测试概述(一)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
制定目标和分析系统 制定目标
确定客户需求和期望 确定实际业务需求 确定系统需求
分析系统
系统类别 系统构成 系统功能
选择测试度量的方法
制定规范
制定相关流程, 角色,职责
制定改进策略 制定结果对比标准
选择相关技术和工具
对各种性能测试工具进行评估 选择符合现有软件架构的性能测试工具
服务器资源占用
服务器资源占用反映在负载下系统的资源利用率。资源的占有率 低,说明系统越优秀。资源并不仅仅指运行系统的硬件,而是 支持整个系统运行程序的一切软硬件平台。在性能测试中,我 们需要监控系统在负载下的硬件和软件上各种资源的占用情况, 例如CPU的占有率、内存使用率、查询cache命中率等。
压力测试的目的
发现影响系统性能的瓶颈
评价系统性能
对系统资源进行优化 提高响应时间与吞吐量
压力测试的局限
不能穷尽所有的情况或案例
不能100%地达到需求
压力测试能够发现缺陷
原因
并发 运行时间长
压力测试能够发现缺陷
缺陷类型
线程内存泄漏 死锁
压力测试能够发现缺陷
缺陷特点
隐蔽 其他技术发现不了 最难解决
分析结果
分析内容
测试是否成功(失败原因) 响应时间是否满足要求 事务响应时间随用户变化图有无剧烈变化
优化调整设置
CPU问题
内存与高速缓存问题
磁盘(I/O)资源问题 调整配置参数
优化应用系统网络设置
测试报告
结果数据
图形说明
压力测试工具
压力测试工具
脚本处理 (脚本语句 生成与解释 器,包括脚 本编辑)
软件的性能的衡量
衡量一个软件的性能,需要从软件效率的以下3点考虑:
时间特性:在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间 以及吞吐率的能力。 资源利用性:在规定条件下,软件产品执行其功能时,使用合适数量和类别的资 源的能力。 效率依赖性:软件产品遵循与效率相关的标准或约定的能力
处理器(PROCESSOR)
Processor Time
User Time
Processor Queue Length
网络
Bytes Total/sec
Packets/sec
课程目录
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
压力测试
网络性能测试
测试网络带宽、延迟、负载和端口的变化对用户的响应时间的影响 主要是测试用户数目与网络带宽的关系
课程目录
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
性能测试的步骤 制定目标和分析系统 选择测试度量的方法 选择相关技术和工具 制定评估标准 设计测试用例 运行测试用例 分析测试结果
控制 (多进程运 行脚本控 制)
系统资源 监控
结果分析 (测试、 自动生成)
脚本处理
捕捉用户操作
解释为运行脚本语言
编辑脚本语言 自动运行模拟用户操作
直接调用API,避免延迟
控制
控制并发
多台计算机之间协调控制
多台计算机之间并发控制
系统资源监测
监测内容
脚本运行状态 事务处理的时间变化 事务处理的资源变化
性能测试的定义
综上所述:
性能测试(performance testing)的定义为:在一定的负载情 况下,系统的响应时间等特性是否满足特定的性能需求。从某 些角度来说,性能其实是功能的一种。
定义中包含了负载,响应时间等 一些基础知识和概念
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
ຫໍສະໝຸດ Baidu
内存(MEMORY)
Committed Bytes in Use
Available Bytes
Page Faults/sec Pages/sec
磁盘(PHYSICAL DISK)
Disk Time
Idle Time
Avg. Disk Queue Length Current Disk Queue Length
性能测试的概念
性能测试是系统测试的一种 。
在软件质量模型中,性能测试是属于效率一类
质量模型:一组特性及特性之间的关系,他提供规定质量需求和评价质量的基础。 软件效率:在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力, 其中资源可能包括其他软件产品、系统的软件和硬件配置,以及物质材料。
压力测试流程图
测 试 计 划
测 试 用 例
模拟 多用户
设 置 并 发 点
执行测试 用例/监测 系统资源
分析 结果
是否 接受 结果
N
Y
测 试 报 告
压力测试计划
分析应用系统
定义压力测试对象与目标
选择压力测试工具
评审修改压力测试计划
压力测试用例
明确测试目的
准备测试环境
确定测试数据 确定测试运行程序(脚本等)
结果分析
分析内容
数据导出 各事务随用户增多的时间响应变化 每个事务完成的最快、最慢、平均时间、大部分完成(90%)的时间 测试结果比较 ……
性能测试主要是测试软件运行中的各项指标是否符合需求 压力测试是性能测试的重点 压力测试是通过工具产生并运行并发事务来模拟软件系统的实际运 行状态,从而获得各种性能指标
软件性能测试培训
----负载测试工具Loadrunner之培训 第一章:软件性能测试概述
概述
在本次培训,我们将学习: 性能测试简介及工具介绍 性能测试的入门知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试 性能测试存在问题 性能测试需求分析
课程目录
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
压力测试概述
压力测试流程
压力测试工具
压力测试的概念 压力
在同一时间内或某一时间内,向系统发送预期数量的 交易请求 并发交易请求 递增交易请求 并发递增交易请求
压力测试
测试系统在不同压力情况下的效率状况,以及系统可 以承受的压力情况
压力测试的对象
B/S系统
C/S系统
其他复杂系统
本课总结
结果自动记录
监测系统资源 监测的对象
网络阻塞情况 主机CPU使用情况 内存使用情况 缓存使用情况 数据库系统的数据锁 ……
监测系统资源
监测的结果
图像文件 实时显示 运行结束 数据文件
分析结果 分析对象
测试使用的时间 被测事务的响应时间(并发) 进程数(成功数、失败数) 进程失败原因 事务响应时间随用户增加的变化图 资源限制
明确预期结果
模拟多用户
方法
通过多进程运行相同或不同的测试脚本来模拟多用户执行相同或不同的任务 通过发包程序发送数据包
测试数据参数化
找到需要参数化的域 合理的设置输入数据
设置并发点
原因
被测事务不能同时运行
实现原理
等待 释放 唤醒
执行测试用例
运行测试脚本
根据情况,调整并发的进程数
负载测试是指在一定的软件、硬件及网络环境下,运行一种或多种业务, 在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的 要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数 及不同用户数下的系统响应时间及服务器的资源利用率。 目的:发现系统的负载极限 负载测试强调的是在一定的环境下系统能够达到的峰值指标,大多数的 性能测试都是负载测试
评估系统的能力
识别体系中的弱点
系统调优 验证可伸缩性(resilience)和可靠性(reliability)
课程目录
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
性能测试的内容
负载测试
压力测试
容量测试 网络性能测试
……
负载测试(LOAD TESTING )
课程目录
什么是负载
系统实际用户 :可能会有很多人使用同一个系统,但并不是所有 的用户都会同时使用该系统,所以系统的实际用户是一个容量 的问题,而不是负载的问题。
系统在线用户:当系统用户对系统进行操作时,我们认为该用户为 在线用户,这些用户对系统形成了负载,在线用户和实际用户 的比例是根据系统特性决定的。
压力测试(STRESS TESTING)
压力测试是指在一定的软件、硬件及网络环境下,模拟大量的虚 拟用户向服务器产生负载,使服务器的资源处于极限状态下并 长时间的持续运行,以测试服务器的高负载情况下是否能够稳 定工作。与负载测试获得峰值性能数据不同,压力测试强调在 极端情况下系统的稳定性,这个时候处理能力已经不重要了。
吞吐量
吞吐量反映单位时间内能够处理的事务条目。
例如对于系统来说一个用户登陆需要1秒钟,如果系统同时支持 10个用户登陆,且相同时间是1秒,那么系统的吞吐量就是10 个/秒。
在性能测试工具中,吞吐量也被称为TPS(transaction per second, 每秒事务数)也就是说在单位时间内能完成的事务数目。TPS 的计算一般是通过的事务除以时间。
在不同的测试环境上运行
分析测试结果
收集相关信息
进行数据统计分析
寻找性能瓶颈 不同的体系结构分析测试结果的方法也不同
课程目录
性能测试概述 性能测试的基础知识 性能测试的内容 性能测试的步骤 性能测试的指标 压力测试
性能指标种类
响应时间
吞吐量 服务器资源占用
内存(Memory) 磁盘(Physical Disk) 处理器(Processor)
响应时间
有调查统计,对于一个用户来说,如果访问某系统的响应时间小于2秒, 那么用户会感觉系统很快,比较满意;如果访问某系统的响应时间在 2~5秒,那么用户可以接受,但是对速度有些不满;如果系统的响应 时间超过10秒,用户将无法接受。 对于一个系统来说,需要尽可能保证每一个操作的响应时间控制在 5秒 以内,当然某些特殊的操作可能会大大超出这个响应时间,可以通过 loading bar的方式来提前告诉用户。
容量测试(VOLUME TESTING) 容量测试是指在一定的软件、硬件及网络环境下, 在数据库中构造不同的数量级别的数据记录,运 行一种或者多种业务在一定的虚拟用户数量的情 况下,获取不同数量级别的服务器性能指标,以 确定数据库的最佳容量和最大容量。容量测试不 仅可以对数据库进行,还可以对硬件处理能力、 各种服务器的连接能力等进行,以此来测试系统 在不同容量级别下是否能达到指定的性能。 容量测试和负载测试的区别在于,容量测试主要关 心how much,而负载测试同时强调how much 和 how fast.
网络
响应时间
在某数据量的情况下,完成某功能模块所需要的时间 例如:从单击登陆按钮到登陆完成返回登陆成功页面需要消耗1秒钟, 那么就说这个操作的响应时间是1秒. 在性能测试中是通过事务函数来完成对响应时间的统计,事务是指做某 件事情的操作,事务函数会记录开始做这件事情和该事情做完之间的 时间差,使用transaction response time这个词来说明,也称为事务响 应时间
性能测试的基础知识
负载的产生
并发操作:用户在线后会对系统产生负载,但是用户和用户之间的 操作却不是并发的,这是因为首先用户的操作需求延时等待, 其次每个用户的操作并不是完全相同。并发操作会对系统产生 很大的负载,当多个用户同时对某个功能进行操作时,服务器 必须对这些请求进行队列管理,依次处理。
性能测试的目的
制定评估标准 用大量过去的,扩展的或者将来可能发生的数 据组成散布图,利用这个图表不断和系统的 当前状况对比
定义最初的测试作为标准,利用它和所有后来 进行的测试结果进行对比
设计测试用例
了解软件业务流程
测试工具可以实现
一次尽可能的包含多个测试要素 尽可能发现软件的性能瓶颈
执行测试用例
通过性能测试工具运行测试用例