第8章 应用负载压力测试newWord文件下载.docx
- 文档编号:22243331
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:52
- 大小:1.09MB
第8章 应用负载压力测试newWord文件下载.docx
《第8章 应用负载压力测试newWord文件下载.docx》由会员分享,可在线阅读,更多相关《第8章 应用负载压力测试newWord文件下载.docx(52页珍藏版)》请在冰豆网上搜索。
指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试
二.负载压力测试的目的
1.在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况
2.预见系统负载压力承受力,在应用实际部署之前,评估系统性能
3.分析系统颈,优化系统
(1)瓶颈:
应用系统中导致系统性能大幅下降的原因。
硬件(CPU、内存、磁盘、网络),操作系统、数据库或开发的应用程序中都有可能存在瓶颈。
(2)建议首先消解决软件瓶颈,原因有三个:
●软件瓶颈往往导致系统性能衰减更快,消除软件瓶颈,系统性能提升更快
●人为因素更易导致软件瓶颈要消除软件瓶颈,开发人员会更主动,并且可以节省资源
●盲目增加硬件则无形中增加维护费用,将来,软硬件不匹配的问题终究会暴露出来
(3)负载压力性能问题分为需要优化的性能问题和非系统优化所能解决的性能问题。
4.为企业项目的实施提供信心,帮助用户正确地进行容量规划,实现软硬件投资合理化,最终交付高质量的系统,避免项目投产失败,保证用户的投资得到相应的回报
三.负载压力测试策略
1.可以利用手工进行测试和利用自动化工具进行测试两种测试策略
(1)手工测试:
无法解决同步问题,无法捕捉程序内部的变化情况
(2)自动化工具测试:
可以解决手工测试中无法解决的问题
2.自动化工具测试策略
(1)利用商业化测试工具:
LoadRunner,QALoad
(2)利用开放资源测试工具:
开放系统测试体系OpenSTA、TestMaker、ApacheJmeter
(3)利用自主开发工具:
核心内容是对与服务器的交互计时,
四.产品生命周期中负载压力测试计划(有5点计划)
1.在需求分析中充分关注负载压力性能;
2.从设计中得到负载压力性能指标;
3.开发阶段创建一个负载压力性能测试环境;
需要做以下工作:
(1)确保合理精确的测试环境,并且此环境可重用
(2)为测试环境制定规则的负载压力性能测试的时间表,如果测试环境是共享的,负载压力性能测试不能与其他活动同时发生
(3)选择一个负载压力性能测试工具
(4)验收阶段在多等级范围内测试并调优
(5)运行阶段持续监控系统负载压力性能
4、验收阶段在多等级范围内测试并调优
5、运行阶段持续监控系统负载压力性能
五.负载压力测试的盲点
在负载压力测试时,不进行功能校验,当功能发生错误时,测试工具不能够记录产生的错误,忽略了负载压力情况下的功能不稳定问题。
所以负载压力测试期间必须要进行必要的功能内容校验,即在测试过程中记录所有虚拟用户的操作,及服务器的响应,才有助于判断功能错误,这是当前负载压力测试的最大挑战
第二节负载压力测试解决方案
一.并发性能测试
并发:
同时操作。
并发压力过程与测试定位
(1)并发负载压力的实施:
客户端――应用客户端的测试
(2)负载压力的传输介质:
网络――应用网络上的测试
(3)压力到达:
各类服务器――应用服务器端的测试
(一).并发性能测试-应用客户端测试
1.目的:
模拟大量并发用户执行不同业务操作,达到实施负载压力的目的
2.测试环境
(1)测试工具主控台(1个)的作用:
负责管理各个代理并收集各代理测试数据,代理负责模拟虚拟用户加压。
在每次并发性能测试中,只有一台主控台,但可以有多个代理。
(2)负载生成器(多个)的作用:
即代理,模拟虚拟用户
(3)服务器
3.测试过程(以LoadRunner)
(1)创建方案:
方案信息包括虚拟用户组(Vuser)、Vuser将运行的测试脚本、用于运行脚本的负载生成器
(2)定义测试五种目标类型:
虚拟用户数、每秒点击次数、每分钟页面数、每秒事务数、事务响应时间。
测试应用程序可以同时运行多秒个Vuser测试服务器稳定性
测试应用程序可以同时运行多秒个Vuse;
测试在期望的事务响应时间内可以同时运行多少个Vuser,在脚本中指定要测试的事务名称以及Vuser的范围。
(3)制定方案执行计划:
制定方案执行的时间安排,如开始时间、执行持续时间、启动/停止多少个Vuser数量等。
注:
如果脚本中包含有集合点,方案将不会按计划运行;
集合点:
在方案中指定Vuser,各Vuser执行的脚本,运行的时间,启动方案后,并不能保证所有的Vuser能够达到同步操作的效果,设置集合点,Vuser执行到集合点时,会被Controller滞留在集合点,等待所有Vuser全部到达后,执行某一项指定操作,从而达到同步并发的效果
(4)影响服务器的负载级别
1选择在方案运行过程中活动的集合
2选择加入每个集合的Vuser数
(5)控制服务器上的负载峰值
●创建Vuser脚本,插入必要的集合点(采用录制功能将操作过程录制形成脚本,插入某一项操作的集合点)
●创建方案(建立Vuser组,指定每组的user及数量、运行的脚本等信息)
●向方案中添加Vuser组,搜索设置的集合点,并将集合点名称添加到‘集合信息’列表中
●设置虚拟用户负载的级别
●通过选择加入到方案中的集合点及加入每个集合的Vuser数,可以确定负载的精确级别
●设置集合的属性
●对于每一个集合,都可以设置集合策略
●运行方案(在此之前,可以同时配置负载生成器和Vuser行为)
(二)、客户端交易处理性能指标
并发用户数指标
交易处理指标:
平均事务响应时间、每秒事务数、每秒事务总数、事条摘要、事务性能摘要、事务响应时间(负载下、百分比、分布)
Web请求指标:
每秒点击次数、吞吐量、吞吐量摘要、HTTP状态代码摘要、每秒HTTP响应数、每秒下载页面数、每秒重试次数,重试次数摘要、连接数、每秒连接数、每秒SSL连接数
Web页面组件指标:
激活网页细分、页面组件细分(随时间变化)、页面下载时间细分(随时间变化)、第一次缓冲时间细分(随时间变化)、已下载组件大小
(三)、并发性能测试-应用网络上性能测试
应用网络上性能测试包括:
应用网络故障分析和网络应用性能监控。
1.应用网络故障分析
(1)测试目标:
显示网络带宽,延迟、负载和TCP端口的变化是如何影响用户的响应时间的。
(2)作用:
●优化性能
●预测系统响应时间
●确定网络带宽需求
●定位应用程序和网络故障
(3)网络故障分析工具
●作用(解决问题):
1使应用跨越多个网段的活动过程变得清晰
2提供有关应用效率的统计数据
3模拟用户在不同网络配置环境下的响应时间,决定应用投产的网络环境。
●网络故障分析工具工作原理:
“多个捕捉点,一个分析”。
多个捕捉点:
即Agent,利用主控台被动监听数据包来实现实时数据采集、一个分析:
AgentManager进行对所跟踪的数据的分析。
有哪些信息可以辅助我们做网络故障分析?
●监控不同探针之间的连接状态,传输的字节数以及通信往返行程次数
●会话性能概要,监控哪段网络延迟大,带宽对网络双向性能的影响,节点用于处理和用于传输的时间
●服务器与客户端之间帧传输情况统计,监控到与应用相关的帧的分布,对每一个帧可以与相关的数据包关联,并且可以对帧解码
●服务器与客户端之间传送包信息统计,监控包的详细信息,并且可以将包与帧及线程相关联
●线程信息统计,监控线程的内容和生存周期,以及线程与数据包的关系
●负载的高峰时刻,负载的平均值,高峰时刻可以与相关的线程、数据包、帧相关联
●故障错误总结:
应用级错误、TCP错误、IP错误、其他错误
2.网络应用性能监控指标
在系统试运行之后,需要及时准确地了解网络上正在发生什么事;
什么应用在运行,如何运行;
多少PC正在访问LAN或WAN;
哪些应用程序导致系统瓶颈或资源竞争
●分析关键应用程序的性能
●定位问题的根源是在客户端、服务器、应用程序还是网络
●哪些应用程序占用大量带宽
●哪些用户产生了大量的网络流量
(3)网络应用性能监控工具
●
组成:
探针:
采集与存储数据,并根据应用对数据进行分类,设置的原则是根据网络组成和监控要求
探针管理器:
管理配置探针,设定数据采集与上传时间,合并收集的数据;
时间服务器:
对探针进行时针同步
交互界面:
数据展示平台
监控信息:
应用监视:
关键特性:
客户和服务器通信量,应用响应时间和资源应用的业务水平等
按会话统计传输负载:
测试应用和会话级响应时间,以及自动为通过网络中每一个联网设备的每一个应用程序生成负载图
应用、会话级、事务响应时间
延迟在何处被引入网络,瓶颈在哪里
趋势分析
四、并发性能测试-应用服务器端的测试
(一)概述
1.对应用服务器端的测试主要包括三方面:
操作系统、数据库和中间件的监控
2.监控手段:
可以采用工具自动监控,也可以使用操作系统、数据库、中间件本身提供的监控工具
3.利用工具监控的优点
(1)减少故障诊断和分析时间
(2)减少手工定位的时间和避免误诊
(3)在问题发生前定位故障
(4)验证可达到的性能水平和服务水平协议
(5)持续的服务器、数据库和应用性能和可用性监控
(6)故障诊断和恢复:
自动报警、故障恢复程序、故障恢复信息
(7)服务器、应用可用性和性能报告
(二)操作系统监控
操作系统的监控涉及后台重要服务器的操作系统监控,对于主流的操作系统,主要关注:
内存、CPU、硬盘
监控建议:
1.磁盘管理
(1)采集物理读/写和逻辑读/写信息
(2)收集操作系统和其他平台上的磁盘忙信息
(3)监控I/O
2.文件系统
(1)显示每个文件系统的使用率,检测文件系统空闲空间的大小
(2)剪裁文件系统-删除指定的CORE(核心)文件和其他文件
(3)显示文件系统的mountondevice、type、size
(4)可以监控特殊的文件系统,如NFS(网络文件系统),CD-ROM
(5)检测特定文件的存在及超出特定期限的文件存在
3.内存
(1)显示可用的内存数量
(2)决定当前的内存短缺量
(3)帮助分析内存问题
(4)显示内存的实存、所有虚存和kernel(核心内存)的状态等信息
4.CPU
(1)记录CPU的使用率
(2)监测CPU参数,包括CPUidle(空闲),CPUwaits,CPUsystemusage,CPUuserusage,runqueuelength(运行队列长度)
(3)显示CPUcontext(上下关系)switches的总数
(4)显示CPU处理系统任务和完成用户任务的时间比例
5.操作系统举例
(1)UNIX操作系统
(2)Windows操作系统
(三)数据库监控
1.共性的指标
(1)监控数据库系统中关键的资源
(2)监测读写页面的使用情况
(3)监控超出共享内存缓冲区的操作数
(4)监测上一轮询期间作业等待缓冲区的时间
(5)跟踪共享内存中物理日志和逻辑日志的缓冲区的使用率
(6)监控磁盘的数据块使用情况以及被频繁读写的热点区域
(7)监控用户事务或者表空间监控事务日志
(8)监控数据库锁资源
(9)监测关键业务的数据表的表空间增长
(10)监控SQL执行情况
2.监控建议-针对监控内存缓冲区、会话及磁盘等方面
(1)监控超出共享内存缓冲区的操作:
可以调整缓冲区大小,更好的支持系统运行
(2)扩展的会话/用户检查以及参数控制:
发现不合理顺序扫描操作,从而分配附加的资源,修改应用程序,降低对系统资源的要求
(3)磁盘:
监控数据块的使用情况以及被频繁读写的热点区域,可以平衡数据量的存储分配及I/O分配
3.数据库举例
(1)Oracle:
内存统计、SQL分析、会话统计、事件统计
(2)Sysbase:
(3)DB2:
(4)SQLServer:
(四)中间件监控
1.中间件分类
(1)Web服务器:
Apache
(2)Web应用服务器:
Websphere、WebLogic
(3)应用服务器:
tuxedo
2.中间件举例
(1)TUXEDO:
(2)WebSphere:
队列性能计数器、通道性能计数器
(3)WebLogic:
LogBaroadcasterRuntime、ServerSecurityRuntime
五.负载压力测试解决方案-疲劳强度测试
疲劳强度测试:
强调长时间的考核,主要是过长时间运行系统,发现问题。
①日常强度疲劳强度测试②高峰业务疲劳强度测试
1.日常强度疲劳强度测试
模拟系统的日常业务(正常情况),持续执行‘一段时间’,暴露系统的性能问题,如内存泄露、资源争用
2.高峰业务疲劳强度测试
(1)模拟系统的高峰业务(最大业务量),持续执行‘一段时间’,暴露系统的性能问题
(2)时间指标要满足:
①这段模拟时间所处理的交易量要达到系统疲劳强度需求的业务量
②在这段测试周期中必须通过加大负载,以及尽可能长的测试周期来保证疲劳强度测试
六.负载压力测试解决方案-大数据量测试
1.大数据量测试类型
(1)独立数据量测试:
针对某些系统存储、传输、统计、查询等业务进行单用户大数据量测试,如大量的批处理任务
(2)综合数据量测试:
采用并发测试、疲劳强度测试以及大数据量测试相结合的综合测试方案
2.自动生成大数据量
(1)借助自动化测试工具,利用数据库测试数据自动生成工具,如TESTBytes
(2)利用自动化负载压力测试工具,模拟用户业务操作,同时并发数百个或数千个用户生成相关数据
(3)自主开发数据生成工具
(4)数据库本身的辅助工具
3.大数据量管理
(1)手工管理:
(2)自动化工具管理:
File-Aid/CS数据库管理工具,完成比较数据和数据库结构;
转换关系数据库数据成XML数据;
比较XML数据与关系数据库数据;
比较XML文件;
数据迁移
第三节应用负载压力测试-负载压力测试实施
负载压力测试的实施过程分为:
制定测试计划→制定测试需求分析→制定测试方案→测试环境、工具、数据准备→测试脚本录制、编写与调试→场景制定→测试执行→获取测试结果→结果评估与测试报告
一.测试计划
1.作用
(1)是负载测试成功的关键,明确的测试计划能够确保制定的方案能完成负载测试目标
(2)构建能够精确地模拟工作环境的测试方案
(3)了解测试需要的资源,如硬件、软件及人力资源
(4)以可度量的指标定义测试成功条件,有助于确保测试成功
2.制定步骤
步骤名称
内容
分析应用程序
(1)确定系统组件:
绘制或提取应用程序示意图,说明系统的整体结构
(2)描述系统配置:
描述各系统组件的配置,如连接用户数,客户端计算机配置,数据库和Web服务器的类型、server与client的通信方式、中间件配置、可能影响响应时间的其他网络组件、通信设备的吞吐量及每个设备可以处理的并发用户数
(3)分析使用模型:
定义系统的典型使用方式,并确定需要重点测试的功能
(4)任务分布:
查看常规用户任务的分布情况,以确定数据库活动峰值及负载峰值期间的典型活动
定义测试目标
(1)以可度量的指标制定目标:
精确的确定、区分可接受和不可接受测试结果的标准
(2)确定测试的时间:
应贯穿于产品的整个生命周期
●计划和设计:
评估新产品、度量响应时间
●开发:
度量响应时间、检测最优的硬件配置、检测硬件和软件升级、检查可靠性
●部署:
检查可靠性、度量响应时间、度量系统容量
●生产:
度量响应时间、确定瓶颈
●升级:
检测硬件或软件升级、度量系统容量
计划方案实施
(1)定义性能度量范围:
确定系统中不同点的响应时间
●度量端到端的响应时间:
通过client端运行GUI/RTEVuser度量整个网络的响应时间(client-server)RTE终端用户
●度量网络和服务器响应时间:
通过client端运行Vuser(非GUI/RTE)度量网络和服务器的响应时间,即不包括用户界面的响应时间;
大量Vuser可以度量负载对网络和服务器响应时间的影响
●度量GUI响应时间:
端到端响应时间-网络/服务器响应时间
●度量服务器响应时间:
通过在与server直连的Client上运行Vuser来度量服务器响应时间
●度量中间件到服务器的响应时间:
通过使用中间件API创建Vuser,度量中间件到服务器的响应时间
(2)定义Vuser活动:
根据对Vuser类型的分析以及它们的典型任务和测试目标来创建Vuser运行的脚本,包括典型任务,设置集合点等
(3)选择Vuser:
确定需要的Vuser的数量和类型,一般性选择规则:
●使用一个或多个GUI用户来模拟每一种类型的典型用户连接
●使用RTEVuser来模拟终端用户
●运行多个非GUI或非RTEVuser来生成每个用户类型的其余负载
(4)选择测试硬件和软件:
硬件和软件应具有强大的性能和足够快的运行速度,来模拟所需数量的用虚拟用户,需考虑事项:
●建议在一台单独的计算机上运行测试工具主控台
●在一台Windows计算机上只能运行一个GUIVuser,在一台UNIX计算机上则可以运行几个GUIVuser
●GUIVuser模拟机的配置尽量与用户实际计算机配置相同
检查测试目标
附:
下表为不同公司的不同类型的测试工具列表:
表1-1测试工具分类
功能测试
性能测试
白盒
测试管理
缺陷管理
MI
QTP
WinRunner
LoadRunner
TestDirector
Rational
Robot
Purify
TestManager
clearquest
Compuware
QARun
QALoad
DevPartner
QACenter
TrackRecord
Telelogic
LOGISCOPE
TelelogicDOORS
Parasoft
C++test
Jtest
Radview
Webload
TestViewManager
Microsoft
was
Sun
Junit
第四节负载压力测试指标分析
1.负载压力测试指标分析
主要包括客户端交易处理性能指标、服务器资源监控指标、数据库资源监控指标、Web服务器监控指标、中间件监控指标
2.负载压力测试实施
测试计划
分析应用程序:
系统组件、系统配置、分析使用模型、分析任务分布
定义测试目标:
以可度量的指标制定目标、确定测试时间
检查测试目标:
响应时间、最优硬件配置、可靠性、瓶颈、系统容量
测试需求分析
采用80~20原理测试强度估算及UCML压力需求分析、任务分布图、交易混合图方法
注第275例子
测试案例制定
测试策略:
对比测试环境和真实业测试环境;
测试案例:
表格形式显示数据案例;
测试内容:
并发、疲劳、资源监控
测试环境、工具、数据准备
测试脚本录制、编写与调试
场景制定
创建Vuser组、配置Vuser组中的Vuser、配置Vuser运行时的设置、配置负载生成器、配置终端服务设置、配置WAN仿真设置、配置脚本
测试执行
运行场景、在执行期间查看Vuser、监视场景、
获取测试结果
结果评估与测试报告
交易处理性能评估、资源占用性能评估、故障分析、数据库服务器性能问题及原因分析
3.软件自动化测试基本概念
定义
通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试
优点
提高测试质量、提高测试效率、缩短测试工作时间、提高测试覆盖率、执行手工测试不能完成的测试任务、更好的重现软件缺陷能力、更好的利用资源、增进开发人员与测试人员的合作伙伴关系
缺点
对于定制型项目、周期短的项目不适于;
业务规则复杂的对象工具很难实现;
人体感观与易用性测试无法实现、不稳定的软件、涉及与物理设备交互
4.选择自动化测试工具
分类
负载压力测试工具、功能测试工具、白盒测试工具、网络测试工具、测试管理测试工具、测试辅助工具
应用策略
从功能、价格、测试工具的长期投资三个方面考虑
5.功能自动化测试
作用
帮助测试工程师自动处理测试开发到测试执行的整个过程中的问题,可以创建可修改且可复用的测试脚本,随时执行脚本,减少劳动量、提高测试效率
原理
采用录制回放的方式来模拟用户的实际操作;
采用环境判断录制模式或模拟模式
步骤
创建脚本、调试脚本、执行测试、结果分析
6.负载压力自动化测试
可以记录客户端的操作,模拟上百或上千虚拟用户同时操作的情景,对系统进行性能测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 应用负载压力测试new 应用 负载 压力 测试 new