测试经典学习文档

上传人:M****1 文档编号:568594042 上传时间:2024-07-25 格式:PPT 页数:171 大小:1.13MB
返回 下载 相关 举报
测试经典学习文档_第1页
第1页 / 共171页
测试经典学习文档_第2页
第2页 / 共171页
测试经典学习文档_第3页
第3页 / 共171页
测试经典学习文档_第4页
第4页 / 共171页
测试经典学习文档_第5页
第5页 / 共171页
点击查看更多>>
资源描述

《测试经典学习文档》由会员分享,可在线阅读,更多相关《测试经典学习文档(171页珍藏版)》请在金锄头文库上搜索。

1、高级性能测试高级性能测试 1课程内容介绍课程内容介绍 4测试策略制定策略制定4测试结果指果指标分析分析4测试典型案例分析典型案例分析 4测试技技术讨论4测试工具的使用技巧工具的使用技巧2测试策略制定测试策略制定2概念概念2测试计划划2测试流程包括哪些步流程包括哪些步骤2测试要达到什么目的要达到什么目的2选择什么什么协议进行行测试2如何如何编写一个完整的写一个完整的测试方案方案 2测试指指标包括哪些内容包括哪些内容2自自动化化负载压力力测试策略策略3测试结果指标分析测试结果指标分析4客客户端端负载压力指力指标 4服服务器器资源使用指源使用指标4网网络监控指控指标4测试典型案例分析测试典型案例分析

2、4系系统故障定位与分析故障定位与分析4数据数据库服服务器典型性能器典型性能调优与与评估估4Oracle数据数据库性能性能调优4案例案例测试经验交流交流5测试工具的使用技巧测试工具的使用技巧2负载压力力测试工具:工具:LoadRunner8.02功能回功能回归测试工具:工具:WinRunner7.62测试管理工具:管理工具:TestDirector8 .06性能测试性能测试 系系统的性能是一个很大的概念,覆盖面非常的性能是一个很大的概念,覆盖面非常广泛,广泛,对一个一个软件系件系统而言包括而言包括执行效率、行效率、资源占用、源占用、稳定性、安全性、兼容性、可定性、安全性、兼容性、可扩展性、展性、

3、可靠性等等,我可靠性等等,我们这里重点里重点讨论的的负载压力力是是系系统性能的一个重要方面。性能的一个重要方面。 性能性能测试用来保用来保证产品品发布后系布后系统的性能的性能满足用足用户需求。性能需求。性能测试在在软件件质量保量保证中起重中起重要作用。要作用。 7负载测试负载测试负载测试是确定在各种工作是确定在各种工作负载下系下系统的性能,的性能,目目标是是测试当当负载逐逐渐增加增加时,系,系统组成部分成部分的相的相应输出出项,例如通,例如通过量、响量、响应时间、CPU负载、内存使用等如何决定系、内存使用等如何决定系统的性能,例如的性能,例如稳定性和响定性和响应等。等。负载测试通常描述一种特定

4、通常描述一种特定类型的型的压力力测试,即增加用即增加用户数量以数量以对应用程序用程序进行行压力力测试。8压力测试压力测试 压力力测试通通过确定一个系确定一个系统的瓶的瓶颈或者不能或者不能接收的性能点,来接收的性能点,来获得系得系统能提供的最大的服能提供的最大的服务级别的的测试。通俗地。通俗地讲,压力力测试是是为了了发现在什么条件下您的在什么条件下您的应用程序的性能会用程序的性能会变得不得不可接受。可接受。9负载压力测试负载压力测试负载压力力测试是性能是性能测试的重要的重要组成部分,成部分,负载压力力测试包括:包括:4并并发性能性能测试(重点)(重点)4疲疲劳强度度测试4大数据量大数据量测试 1

5、0负载压力测试负载压力测试11负载压力测试负载压力测试4并并发性能性能测试 考察客考察客户端端应用的性能,用的性能,测试的入口是客的入口是客户端端并并发性能性能测试的的过程,是一个程,是一个负载测试和和压力力测试的的过程。即逐程。即逐渐增加并增加并发虚虚拟用用户数数负载,直到系,直到系统的的瓶瓶颈或者不能接收的性能点,通或者不能接收的性能点,通过综合分析交易合分析交易执行行指指标、资源源监控指控指标等来确定系等来确定系统并并发性能的性能的过程。程。并并发性能性能测试是是负载压力力测试中的重要内容。中的重要内容。 12负载压力测试负载压力测试4疲疲劳强度度测试 通常是采用系通常是采用系统稳定运行

6、情况下能定运行情况下能够支持的最大并支持的最大并发用用户数或数或 者日常运行用者日常运行用户数,持数,持续执行一段行一段时间业务,通,通过综合分析交易合分析交易执行指行指标和和资源源监控指控指标来确定系来确定系统处理最理最大工作量大工作量强度性能的度性能的过程。程。 疲疲劳强度度测试案例制定的原案例制定的原则是保是保证系系统长期不期不间断运断运行的行的业务量,并且量,并且应该尽量去尽量去满足足该条件。条件。 13负载压力测试负载压力测试4大数据量大数据量测试 2大数据量大数据量测试的两种的两种类型型 4独立的数据量独立的数据量测试 针对某些系某些系统存存储、传输、统计、查询等等业务进行大行大

7、数据量数据量测试 4综合数据量合数据量测试 和和压力性能力性能测试、负载性能性能测试、并、并发性能性能测试、疲、疲劳性能性能测试相相结合的合的综合合测试方案方案 14测试计划测试计划 4分析分析应用程序用程序 4定定义测试目目标 4计划方案划方案实施施4检查测试目目标 15制定测试计划的目的制定测试计划的目的4构建能构建能够精确地模精确地模拟您的工作您的工作环境的境的测试方案。方案。 4了解了解测试需要的需要的资源。源。 4以可度量的指以可度量的指标定定义测试成功条件。成功条件。 16分析应用程序分析应用程序4确定系确定系统组件件4描述系描述系统配置配置 4分析使用模型分析使用模型 4任任务分

8、布分布 17确定系统组件确定系统组件客客户机、网机、网络、中、中间件和服件和服务器器 18描述系统配置描述系统配置4连接到系接到系统的用的用户数数4应用程序客用程序客户端端计算机的配置情况(硬件、内算机的配置情况(硬件、内存、操作系存、操作系统、软件、开件、开发工具等)工具等)4使用的数据使用的数据库和和Web 服服务器的器的类型(硬件、型(硬件、数据数据库类型、操作系型、操作系统、文件服、文件服务器等)器等)4服服务器与器与应用程序客用程序客户端之端之间的通信方式的通信方式4前端客前端客户端与后端服端与后端服务器之器之间的中的中间件配置和件配置和应用程序服用程序服务器器4可能影响响可能影响响

9、应时间的其他网的其他网络组件(件(调制解制解调器等)器等)19分析使用模型分析使用模型4考考虑哪些用哪些用户使用系使用系统4每种每种类型用型用户的数量的数量4每个用每个用户的典型任的典型任务 20任务分布任务分布4确定数据确定数据库活活动峰峰值期的期的发生生时间4负载峰峰值期期间的典型活的典型活动 21定义测试目标定义测试目标22定义测试目标定义测试目标4以可度量的指以可度量的指标制定目制定目标4确定确定测试的的时间 23确定测试的时间确定测试的时间24计划方案实施计划方案实施4定定义性能度量的范性能度量的范围4定定义Vuser活活动 4选择Vuser 4选择测试硬件和硬件和软件件25定义性能

10、度量的范围定义性能度量的范围4度量度量应用程序中不同点的响用程序中不同点的响应时间。4根据根据测试目目标确定在哪里运行虚确定在哪里运行虚拟用用户4运行哪些虚运行哪些虚拟用用户26应用程序中不同点的响应时间应用程序中不同点的响应时间度量端到端的响度量端到端的响应时间:27应用程序中不同点的响应时间应用程序中不同点的响应时间度量网度量网络和服和服务器响器响应时间: 28应用程序中不同点的响应时间应用程序中不同点的响应时间度量度量GUI 响响应时间:GUI 响响应时间= 端到端响端到端响应时间- 网网络和服和服务器响器响应时间 29应用程序中不同点的响应时间应用程序中不同点的响应时间度量服度量服务器

11、响器响应时间:30应用程序中不同点的响应时间应用程序中不同点的响应时间度量中度量中间件到服件到服务器的响器的响应时间:31选择选择Vuser32选择测试硬件和软件选择测试硬件和软件硬件和硬件和软件件应该具有具有强大的性能和大的性能和足足够快的运行速度,以模快的运行速度,以模拟所需数所需数量的虚量的虚拟用用户 。33检查测试目标检查测试目标度量最度量最终用用户响响应时间 定定义最最优的硬件配置的硬件配置 检查可靠性可靠性 确定瓶确定瓶颈 度量系度量系统容量容量 34定义最优的硬件配置举例定义最优的硬件配置举例例如,您可以例如,您可以设置三种不同的服置三种不同的服务器配置,并器配置,并针对各个配置

12、运行相同的各个配置运行相同的测试,以确定性能上,以确定性能上的差异:的差异:. 配置配置1:200MHz、64MB RAM. 配置配置2:200MHz、128MB RAM. 配置配置3:266MHz、128MB RAM35检查可靠性检查可靠性举例举例确定系确定系统在在连续的高工作的高工作负载下的下的稳定性定性级别。强制系制系统在短在短时间内内处理大量任理大量任务,以模,以模拟系系统在数周或数月的在数周或数月的时间内通常会遇到内通常会遇到的活的活动类型。型。36确定瓶颈确定瓶颈举例举例您可以运行您可以运行测试以确定系以确定系统的瓶的瓶颈,并确定哪些因素,并确定哪些因素导致性能下降,例如,致性能下

13、降,例如,文件文件锁定、定、资源争用和网源争用和网络过载。37度量系统容量度量系统容量举例举例查看看现有系有系统中性能与中性能与负载间的关系,并确定出的关系,并确定出现响响应时间显著延著延长的位置的位置 “拐点拐点”。可以确定是否需要增加。可以确定是否需要增加资源以支持源以支持额外的用外的用户。38测试流程步骤测试流程步骤2测试需求分析测试需求分析 2测试案例制定测试案例制定 2测试环境、工具、数据准备测试环境、工具、数据准备 2测试脚本录制、编写与调试测试脚本录制、编写与调试2负载压力场景制定负载压力场景制定 2测试执行测试执行 2结果分析与定位问题结果分析与定位问题 2测试报告与测试评估测

14、试报告与测试评估 39测试目的测试目的2在真在真实环境下境下检测系系统性能,性能,评估系估系统性能以及服性能以及服务等等级的的满足情况足情况2预见系系统负载压力承受力力承受力,在在应用用实际部部署之前,署之前,评估系估系统性能性能 2帮助帮助软件厂商或用件厂商或用户分析系分析系统瓶瓶颈、优化系化系统 40测试目的测试目的实现目的的目的的测试方法:方法: 性能检测 性能调优 41性能检测4在真实生产环境下,检测系统性能,评估并报告整个系统的性能和健壮情况4检查服务等级的满足情况4对系统的未来容量作出预测和规划 42性能调优4查找系统瓶颈的根本原因4评估性能调整的效果4在测试环境下再现性能问题 4

15、3选择测试协议客户端与直接压力承受的服务器之间的通讯协议是选择测试协议的唯一标准 44测试协议 Client/Server: MS SQL, ODBC, Oracle (2-tier), DB2 CLI, Sybase Ctlib, Sybase Dblib,infomix,Windows Sockets及及DNS定制定制: C templates, Visual Basic templates, Java templates, Javascript 及及 VBscript. 分布式组件分布式组件: : COM/DCOM, Corba-Java, 及及Rmi -Java.E-business:

16、E-business: FTP, LDAP, Palm, SOAP, Web (HTTP/HTML), 及及the dual Web/Winsocket.Enterprise Java Beans:Enterprise Java Beans: EJB Testing及及Rmi-Java.Legacy:Legacy: Terminal Emulation (RTE).Mailing Mailing Services:Services: Internet Messaging (IMAP), MS Exchange (MAPI), POP3, 及及SMTP.Middleware:Middleware

17、: Jacada及及Tuxedo (6, 7).Streaming:Streaming: MediaPlayer及及RealPlayer. Wireless:Wireless: i-Mode, VoiceXML, 及及WAP45编写一个完整的测试方案编写一个完整的测试方案 应用在客用在客户端性能的端性能的测试 应用在网用在网络上性能的上性能的测试 应用在服用在服务器上性能的器上性能的测试一个一个测试方案的例子方案的例子一个一个测试计划的例子划的例子46测试指标测试指标2 客客户端交易端交易处理性能指理性能指标 2 服服务器器资源源监控,例如:控,例如: UNIX2 数据数据库资源源监控,例如:

18、控,例如: Oracle2 Web服服务器器监控,例如:控,例如: Apache2 中中间件件监控,例如:控,例如: TUXEDO等等等等47自动化负载压力测试自动化负载压力测试利用或开利用或开发负载压力力测试的的自自动化化测试方法,包括:程序、工方法,包括:程序、工具、流程等等。具、流程等等。48自动化负载压力测试优势自动化负载压力测试优势自动化测试优势分析快速快速比手工操作绝对快比手工操作绝对快可靠可靠每一次运行精确地执行相同的操作,可以排除手工操每一次运行精确地执行相同的操作,可以排除手工操作错误作错误可重复可重复测试相同操作重复执行时软件如何响应测试相同操作重复执行时软件如何响应可编程

19、的可编程的可以编程实现得到应用系统隐藏信息的复杂测试可以编程实现得到应用系统隐藏信息的复杂测试综合测试综合测试可以实现覆盖应用系统每个特征的一套综合测试方案可以实现覆盖应用系统每个特征的一套综合测试方案可重用的可重用的针对应用系统的不同版本,测试脚本可重复使用,即针对应用系统的不同版本,测试脚本可重复使用,即使用户界面发生变化使用户界面发生变化49选择自动化负载压力测试方法选择自动化负载压力测试方法4利用自动化负载压力测试工具4 开放资源(OpenSource)测试4 自主开发代码测试 50自动化负载压力测试概念通通过在一台或几台在一台或几台PC机上模机上模拟成百或上千的虚成百或上千的虚拟用用

20、户同同时执行行业务的情景,的情景,对应用程序用程序进行行测试,通,通过可重复可重复的、真的、真实的的测试能能够彻底地度量底地度量应用的性能,确定用的性能,确定问题所在。工程所在。工程项目目实践践证明明,其其测试结果与果与实际情况完全符情况完全符合。合。51自动化负载压力测试实现机制自动负载测试自动负载测试52自动化负载压力测试工具4LoadRunner美国Mercury Interactive公司4QALoad美国Compuware(康博)公司4Rational Robot 美国IBM公司4SILK PERFORMER V 美国Segue 公司4Benchmark Factory美国Quest

21、软件公司4WAS美国Mcrosoft 公司53自动化负载压力测试工具自自动化化负载压力力测试工具工具对比比54自动化负载压力测试工具选择依据2模模拟您的客您的客户机机2运行多个模运行多个模拟的客的客户机机 2脚本化脚本化执行并能行并能编辑脚本脚本 2支持会支持会话 2可配置的用可配置的用户数量数量 2报告成功、告成功、错误和失和失败 55自动化负载压力测试工具缺陷4缺乏功能点的校缺乏功能点的校验4对有些控件支持得不好有些控件支持得不好4不能达到真不能达到真实模模拟负载4脚本的支持不脚本的支持不够灵活灵活4报错定位不定位不够详细56自动化负载压力测试工具盲点在在负载测试中,不中,不进行功能校行功

22、能校验,就是当功能,就是当功能错误发生生时,测试工具不能工具不能够记录产生的功能性生的功能性错误,这就忽略了就忽略了负载压力情况下的功能不力情况下的功能不稳定定问题。在在负载压力力测试过程中程中记录所有虚所有虚拟用用户的操作及服的操作及服务器的器的响响应是当前是当前负载压力力测试技技术发展的最大挑展的最大挑战。但但测试过程中的附加程中的附加记录会会导致致资源消耗、操作行源消耗、操作行为增加以增加以及及产生大量日志等生大量日志等问题。 57开放资源(开放资源(OpenSource)测试)测试4 开放系统测试体系OpenSTA )4 TestMaker() 4 Apache JMeter () 5

23、8开发测试工具举例开发测试工具举例Web服服务器通用性能器通用性能测试系系统的的设计与与实现实际系系统由四部分由四部分组成:成:2模板文件模板文件2数据文件数据文件2性能性能测试程序程序2结果果处理程序理程序59开发测试工具举例开发测试工具举例系系统结构示意构示意图60开发测试工具举例开发测试工具举例主流程主流程图61开发测试工具举例开发测试工具举例通用通用应用系用系统性能性能评测环境境设计62开发测试工具举例开发测试工具举例通用通用应用系用系统性能性能评测环境境设计63开发测试工具举例开发测试工具举例通用通用应用系用系统性能性能评测环境境设计接口名称功能接口函数原型(C语言描述)事务处理逻辑

24、类型此接口提供应用系统相关的事务类型ID,通常情况下应用系统由多种事务组成,评测系统应该能够区分它们Int Perf_GetTransactionID(void);接口初始化初始化应用系统。诸如创建数据库连接等操作在此接口中进行int Perf_InitLib(void);执行事务处理实际事务处理接口,事务执行的起止时间和执行状态在此记录int Perf_DoTransaction(void* pBuffer,int nBufferSize);接口资源释放释放应用系统资源。诸如关闭数据库连接等操作在此函数int Perf_FreeLib(void);64开发测试工具举例开发测试工具举例通用通用

25、应用系用系统性能性能评测环境境设计操作系统开发环境Win32(WindowsNT4/2000/XP)Visual C+ 6.0 SP5SUN Solaris8(x86)Forte C+ 6 Update 2Linux(x86 kernel 2.4.7 glibc 2.2.4)KDevelop 2.065测试结果指标分析测试结果指标分析4客客户端端负载压力指力指标为了完成一个任了完成一个任务,用,用户对应用程序用程序执行的一行的一组操作,例如登操作,例如登陆一个一个Web站点、搜索一个站点、搜索一个飞机票信息、在网上机票信息、在网上买一本一本书等等。等等。2虚虚拟并并发用用户数(数(Total

26、Virtual Users)2交易响交易响应时间(Response Time) 2每分每分钟交易数(交易数(Trans Rate)2吞吐量吞吐量图 (ThroughOut)66测试结果指标分析测试结果指标分析4客客户端端负载压力指力指标-交易交易处理指理指标2. 平均事平均事务响响应时间图2. 每秒事每秒事务数数图2. 每秒事每秒事务总数数2. 事事务摘要摘要图2. 事事务性能摘要性能摘要图2. 事事务响响应时间(负载下)下)图2. 事事务响响应时间(百分比)(百分比)图2. 事事务响响应时间(分布)(分布)图67测试结果指标分析测试结果指标分析4客客户端端负载压力指力指标-Web请求指求指标

27、4. 每秒点每秒点击次数次数图4. 点点击次数摘要次数摘要图4. 吞吐量吞吐量图4. 吞吐量摘要吞吐量摘要图4. HTTP 状状态代代码摘要摘要图4. 每秒每秒HTTP 响响应数数图4. 每秒下每秒下载页面数面数图4. 每秒重每秒重试次数次数图4. 重重试次数摘要次数摘要图4. 连接数接数图4. 每秒每秒连接数接数图4. 每秒每秒SSL 连接数接数图68测试结果指标分析测试结果指标分析4客客户端端负载压力指力指标-Web页面面组件指件指标2. 激活网激活网页细分分图2. 页面面组件件细分分图2. 页面面组件件细分(随分(随时间变化)化)图2. 页面下面下载时间细分分图2. 页面下面下载时间细分

28、(随分(随时间变化)化)图2. 第一次第一次缓冲冲细分分时间图2. 第一次第一次缓冲冲时间细分(随分(随时间变化)化)图2. 已下已下载组件大小件大小图69测试结果指标分析测试结果指标分析服服务器器资源使用指源使用指标-UNIX70测试结果指标分析测试结果指标分析服服务器器资源使用指源使用指标-Windows2000 Server71测试结果指标分析测试结果指标分析服服务器器资源使用指源使用指标-Windows2000 Server(续)72测试结果指标分析测试结果指标分析服服务器器资源使用指源使用指标-Windows2000 Server(续)看一个例子73测试结果指标分析测试结果指标分析服

29、服务器器资源使用指源使用指标-数据数据库SQLServer74测试结果指标分析测试结果指标分析服服务器器资源使用指源使用指标-中中间件件Tuxedo75测试结果指标分析测试结果指标分析网网络监控指控指标:2吞吐量吞吐量2容量容量(信道容量或信道容量或带宽)2利用率利用率2最最优利用率利用率2可提供可提供负载2有效率有效率2延延迟2延延迟变化量化量2响响应时间76测试典型案例分析测试典型案例分析系系统故障定位与分析故障定位与分析最最难的的问题77系统瓶颈分析举例系统瓶颈分析举例经验举例例1交易的响应时间如果很如果很长,远远超超过系系统性能需求,性能需求,表示耗表示耗费CPU的数据的数据库操作,例

30、如排序,操作,例如排序,执行行aggregate functions(例如(例如sum、min、max、count)等)等较多,可考多,可考虑是否有索引以及索引建立的是否有索引以及索引建立的是否合理;尽量使用是否合理;尽量使用简单的表的表联接;水平分割大表格接;水平分割大表格等方法来降低等方法来降低该值。 78系统瓶颈分析举例系统瓶颈分析举例经验举例例2分段排除分段排除错误。测试工具可以模工具可以模拟不同的虚不同的虚拟用用户来来单独独访问Web服服务器、器、应用服用服务器和数器和数据据库服服务器,器,这样,就可以在,就可以在Web端端测出的响出的响应时间减去以上各个分段减去以上各个分段测出的出

31、的时间就可以知就可以知道瓶道瓶颈在哪并着手在哪并着手调优。 79系统瓶颈分析举例系统瓶颈分析举例经验举例例3UNIX资源源监控(控(NT操作系操作系统同理)中指同理)中指标内存页交换速率(Paging rate),如果),如果该值偶偶尔走高,表明当走高,表明当时有有线程程竞争内存。如果持争内存。如果持续很高,很高,则内存可能是瓶内存可能是瓶颈。也可能是内存。也可能是内存访问命中率低。命中率低。“S rate”和和“S rate”也有也有类似的似的解解释。 80系统瓶颈分析举例系统瓶颈分析举例经验举例例4UNIX资源源监控(控(NT操作系操作系统同理)中指同理)中指标CPU占用率(CPU uti

32、lization),如果),如果该值持持续超超过95%,表明瓶,表明瓶颈是是CPU。可以考。可以考虑增加一个增加一个处理器或理器或换一个更快的一个更快的处理器理器 。合理。合理使用的范使用的范围在在60%至至70%。81系统瓶颈分析举例系统瓶颈分析举例经验举例例5UNIX资源源监控(控(NT操作系操作系统同理)中指同理)中指标磁盘交换率(Disk rate),如果),如果该参数参数值一直一直很高,表明很高,表明I/O有有问题。可考。可考虑更更换更快的硬更快的硬盘系系统、重新部署、重新部署业务逻辑等,另外等,另外设置置Tempdb in RAM,减低,减低max async IO,max laz

33、y writer IO等措施都会等措施都会降低降低该值。 82系统瓶颈分析举例系统瓶颈分析举例经验举例例6Tuxedo资源源监控中指控中指标队列中的字节数(Bytes on queue),),队列列长度度应不超不超过磁磁盘数的数的1.52倍。要提高性能,可增加磁倍。要提高性能,可增加磁盘。注意:一个注意:一个Raid Disk实际有多个磁有多个磁盘。83系统瓶颈分析举例系统瓶颈分析举例经验举例例7SQLServer资源源监控中指控中指标缓存点击率(Cache Hit Ratio),),该值越高越好。如果越高越好。如果持持续低于低于80%,应考考虑增加内存。增加内存。 注意注意该参参数数值是从是

34、从SQL Server启启动后,就一直累加后,就一直累加记数,所以运行数,所以运行经过一段一段时间后,后,该值将不能反将不能反映系映系统当前当前值。 84优化调整设置 2CPU问题:4考考虑使用更高使用更高级的的CPU代替目前代替目前的的CPU4对于多于多CPU,考,考虑CPU之之间的的负载分配分配4考考虑在其它体系上在其它体系上设计系系统,例,例如增加前置机、如增加前置机、设置并行服置并行服务器器等。等。85优化调整设置 4内存和高速缓存内存的内存的优化包括操作系化包括操作系统、数据、数据库、应用程序的内存用程序的内存优化。化。2过多的分多的分页与交与交换可能降低系可能降低系统的性能的性能2

35、内存分配也是影响系内存分配也是影响系统性能的主要原因性能的主要原因2保保证保留列表具有保留列表具有较大的大的邻接内存接内存块2调整数据整数据块缓冲区大小(用数据冲区大小(用数据块的个数表示)的个数表示)是一个重要内容是一个重要内容2将最将最频繁使用的数据保存在存繁使用的数据保存在存储区中区中86优化调整设置 4磁盘(I/O)资源问题2磁磁盘读写写进度度对数据数据库系系统是至关重要的,数据是至关重要的,数据库对象在物象在物理理设备上的合理分布能改善性能上的合理分布能改善性能2磁磁盘镜像会减慢磁像会减慢磁盘写的速度写的速度2通通过把日志和数据把日志和数据库对象分布在独立的象分布在独立的设备上可以提

36、高系上可以提高系统的性能的性能2把不同的数据把不同的数据库放在不同的硬放在不同的硬盘上,可以提高上,可以提高读写速度。写速度。经常把数据常把数据库、回、回滚段、日志放在不同的段、日志放在不同的设备上上2把表放在一把表放在一块硬硬盘上,把非簇的索引放在另一上,把非簇的索引放在另一块硬硬盘上,保上,保证物理物理读写更快写更快87优化调整设置 4调整配置参数2包括操作系包括操作系统和数据和数据库的参数配置的参数配置2并行操作并行操作资源限制的参数(并源限制的参数(并发用用户的数目、的数目、会会话数)数)2影响影响资源开源开销的参数的参数2与与I/O有关的参数有关的参数88优化调整设置 4优化应用系统

37、网络设置2可以通可以通过数数组接口来减少网接口来减少网络呼叫。不是一次呼叫。不是一次提取一行,而是在提取一行,而是在单个往来往返中提取个往来往返中提取10行,行,这样做效率做效率较高高2调整会整会话数据数据单元的元的缓冲区大小冲区大小2共享服共享服务进程比程比专用服用服务进程提供程提供较好的性能好的性能89故障定位与分析 一个一个测试实例例90测试典型案例分析测试典型案例分析 数据数据库服服务器典型性能器典型性能调优与与评估估91数据库服务器典型性能问题数据库服务器典型性能问题2数据库服务器性能问题及原因分析数据库服务器性能问题及原因分析 4单一类型事务响应时间过长单一类型事务响应时间过长 4

38、数据库服务器负载数据库服务器负载 4糟糕的数据库设计糟糕的数据库设计 4事务粒度过大事务粒度过大 4批任务对普通用户性能的影响批任务对普通用户性能的影响 4并发处理能力差并发处理能力差 4锁冲突严重锁冲突严重 4资源锁定造成的数据库事务超时资源锁定造成的数据库事务超时 4数据库死锁数据库死锁 92数据库服务器典型性能问题数据库服务器典型性能问题数据库性能问题的一般解决办法数据库性能问题的一般解决办法 4监视性能相关数据;监视性能相关数据;4定位资源占用较大的事务并做出必要的优化或调整;定位资源占用较大的事务并做出必要的优化或调整;4定位锁冲突,修改锁冲突发生严重的应用逻辑;定位锁冲突,修改锁冲

39、突发生严重的应用逻辑;4对对规规模模较较大大的的数数据据或或者者无无法法通通过过一一般般优优化化解解决决的的锁锁冲突进行分布。冲突进行分布。93Oracle与提高性能有关的特性与提高性能有关的特性 4索引索引4并行执行并行执行4簇与散列簇簇与散列簇4分区分区4多线程服务器多线程服务器4同时读取多块数据同时读取多块数据 94Oracle配置的关键参数配置的关键参数 4MAX_DSPATCHERS:这这个个参参数数指指定定了了系系统统允允许许同同时时进进行行的的调调度度进程的最大数量。进程的最大数量。4MAX_SHARED_SERVERS:这这个个参参数数指指定定了了系系统统允允许许同同时时进进行

40、行的的共共享享服服务务器器进进程程的的最最大大数数量量。如如果果系系统统中中出出现现的的人人为为死死锁锁过过于于频繁,那么管理员应该增大这个参数的值。频繁,那么管理员应该增大这个参数的值。4PARALLEL_ADAPTIVE_MULTI_USER: 当当 这这 个个 参参 数数 的的 值值 为为TRUE时时,系系统统将将启启动动一一个个能能提提高高使使用用并并行行执执行行的的多多用用户户系系统统性性能能的的自自适适应应算算法法。这这个个算算法法将将根根据据查查询询开开始始时时的的系系统统负负载载自自动动降降低低查询请求的并行度。查询请求的并行度。95Oracle配置的关键参数配置的关键参数 4

41、PARLLEL_MIN_SERVERS:这这个个参参数数指指定定了了实实例例并并行行执执行行进进程程的最小数量。其值就是实例启动时的最小数量。其值就是实例启动时Oracle创建的并行执行进程数。创建的并行执行进程数。4PARLLEL_THREADS_PER_CPU:这这个个参参数数指指定定了了实实例例默默认认的的并并行行度度和和并并行行自自适适应应以以及及负负载载平平衡衡算算法法。它它指指明明了了并并行行执执行行过过程程中一个中一个CPU能处理的进程或线程数。能处理的进程或线程数。4PARTITION_VIEW_ENABLED:这这个个参参数数指指定定了了优优化化器器是是否否使使用用分分区区视

42、视图图。Oracle推推荐荐用用户户使使用用分分区区表表(这这是是在在Oracle8之之后后引引入入的的)而而不不是是分分区区视视图图。分分区区视视图图只只是是为为了了提提供供Oracle的的后后向向兼兼容容性。性。4REVOVERY_PARALLELISM:这这个个参参数数指指定定了了恢恢复复数数据据库库系系统统时使用的进程数。时使用的进程数。 96Oracle的索引的索引 4索引和降低系统处理的数据量索引和降低系统处理的数据量 4索引和更新索引和更新 4在字段选择性很低的情况下适用索引在字段选择性很低的情况下适用索引97OracleOracle的并行执行特性的并行执行特性 RDBMS的绝大

43、多数操作都可分为以下的绝大多数操作都可分为以下3类:类:4被被CPU限限制制的的操操作作:这这类类操操作作的的速速度度和和单单CPU运运行行速速度度一一样样。通通过过并并行行化化操操作作,多多个个CPU可可并并行行处处理理系系统统负负载载,因因此此可可以以更更快快完完成该操作。成该操作。4被被I/O限限制制的的操操作作:这这类类操操作作花花了了绝绝大大部部分分时时间间等等待待系系统统完完成成I/O操操作作。当当系系统统中中同同时时出出现现多多个个I/O请请求求时时,绝绝大大多多数数RAID控控制制器器将将很很好好工工作作。另另外外,当当一一个个线线程程需需要要等等待待完完成成I/O操操作作时时

44、,可可充充分分利利用用CPU来处理另一线程的来处理另一线程的CPU部分。部分。4被竞争限制的操作:并行处理不能改善由资源竞争所限制的操作。被竞争限制的操作:并行处理不能改善由资源竞争所限制的操作。98OracleOracle的并行执行特性的并行执行特性 应当首先根据如下一些因素考虑并行度应当首先根据如下一些因素考虑并行度 :4计计算算机机的的CPU能能力力:CPU的的数数量量和和能能力力将将影影响响系系统统能能运运行行的的查查询询进进程程数数量。量。4系系统统处处理理大大量量进进程程的的能能力力:一一些些操操作作系系统统能能处处理理很很多多并并发发进进程程,而而另另一一些些操作系统则没有这方面

45、的能力。操作系统则没有这方面的能力。4系系统统负负载载:如如果果系系统统现现在在的的运运行行已已经经达达到到了了极极限限,那那么么对对并并行行度度的的调调整整不不会会有有太太大大效效果果。如如果果系系统统运运行行已已达达其其能能力力极极限限的的90%,那那么么太太多多的的查查询询进进程将使系统不堪重负。程将使系统不堪重负。4系系统统处处理理的的查查询询数数量量:如如果果系系统统的的大大部部分分操操作作是是更更新新操操作作,但但仍仍有有少少量量的的重要查询存在,那么开发人员可能希望系统运行多个查询进程。重要查询存在,那么开发人员可能希望系统运行多个查询进程。4系系统统的的I/O能能力力:如如果果

46、磁磁盘盘上上的的数数据据是是分分片片或或是是使使用用磁磁盘盘阵阵列列存存储储的的,那那么系统能够处理多个并行查询。么系统能够处理多个并行查询。4操操作作类类型型:系系统统是是否否需需要要处处理理很很多多的的全全表表扫扫描描或或排排序序?并并行行查查询询服服务务器器非非常有助于这类操作。常有助于这类操作。99OracleOracle的并行执行特性的并行执行特性 4并行查询处理并行查询处理 4并行创建索引并行创建索引 4并行加载数据并行加载数据 4并行恢复并行恢复 100OracleOracle的并行执行特性的并行执行特性 关于并行度的一些建议关于并行度的一些建议 :4诸诸如如排排序序之之类类的的

47、需需要要大大量量CPU资资源源的的操操作作应应当当采采用用较较低低的的并并行行度度。其其原原因因是是这这类类受受限限于于CPU的的操操作作已已经经充充分分利利用用了了CPU,而而不不需需等等待系统的待系统的I/O操作。操作。4诸诸如如全全表表扫扫描描之之类类的的需需要要大大量量磁磁盘盘I/O的的操操作作应应当当采采用用较较高高的的并并行行度。需要等待磁盘度。需要等待磁盘I/O的操作越多,系统就越能受益于并行操作。的操作越多,系统就越能受益于并行操作。4如如果果系系统统中中有有大大量量的的并并发发进进程程,那那么么应应当当采采用用较较低低的的并并行行度度。因因为太多的进程将使系统不堪重负。为太多

48、的进程将使系统不堪重负。 101Oracle的簇与散列簇的簇与散列簇 4有利有利 4不利不利102Oracle的同时读取多块数据的同时读取多块数据 当当系系统统执执行行表表扫扫描描时时,Oracle具具备备同同时时读读取取多多个个数数据据块块的的能能力力,这这种种能能力力提提高高了了系系统统的的I/O速速度度。通通过过同同时时读读取取多多块块数数据据,Oracle能能够够从从磁磁盘盘上上读读取取更更大大的的数数据据块块,从从而而避避免免了了对对磁磁盘盘上上数数据据进进行行搜搜索索的的操操作作。通通过过降降低低磁磁盘盘搜搜索索和和读读取取更更大大的的数数据据块,可以降低系统的块,可以降低系统的I

49、/O开销和开销和CPU开销。开销。 103Oracle的分区的分区 分区方案:分区方案:4Range Partitioning:这这种种方方案案根根据据数数据据的的范范围围,比比如如月、年等等对表中的数据进行分区。月、年等等对表中的数据进行分区。4List Partitioning:这这种种方方案案和和Range Partitioning分分区区方方案案很很类类似似,但但这这种种方方案案是是按按照照数数据据的的值值而而不不是是数数据据的范围来进行分区划分的。的范围来进行分区划分的。4Hash Partitioning:这这种种分分区区方方案案使使用用散散列列函函数数来来实实现对数据的自动分区。

50、现对数据的自动分区。4Sub- Partitioning:这这种种方方法法就就是是开开发发人人员员熟熟悉悉的的复复合合分分区区方方法法。这这种种方方法法允允许许开开发发人人员员同同时时使使用用多多种种分分区区方方案。案。104Oracle的分区的分区 分区有以下几方面的好处分区有以下几方面的好处 :4对能被分区的大尺寸表进行扫描时,分区可降低对能被分区的大尺寸表进行扫描时,分区可降低I/OI/O操作操作和和CPUCPU的使用率。的使用率。4可在分区的层次上而不是表的层次上加载数据。可在分区的层次上而不是表的层次上加载数据。4能以删除分区的方式删除数据,而不必使用能以删除分区的方式删除数据,而不

51、必使用SELECT语语句来删除大量数据。句来删除大量数据。4对用户和应用程序而言,分区是完全透明的。对用户和应用程序而言,分区是完全透明的。4可在分区层次上而不是在表层次上维护数据。可在分区层次上而不是在表层次上维护数据。105Oracle的多线程服务器的多线程服务器 用用户户可可通通过过专专用用服服务务器器进进程程连连接接到到OracleOracle实实例例,也也可可以以通通过过多多线线程程服服务务器器进进程程连连接接到到OracleOracle实实例例。因因为为每每一一个个专专用用服服务务器器进进程程都都将将占占用用大大量量内内存存资资源源和和系系统统资资源源,所所以以有有必必要对多用户连

52、接采用多线程服务器进程。要对多用户连接采用多线程服务器进程。 多多线线程程服服务务器器进进程程允允许许多多个个用用户户使使用用一一定定数数量量的的共共享享服服务务器器进进程程。共共享享服服务务器器进进程程使使用用共共享享缓缓冲冲池池对对用用户户请请求求进进行行排队并返回数据,从而大大减少排队并返回数据,从而大大减少CPU和内存的使用。和内存的使用。 106测试典型案例分析测试典型案例分析硬件配置与系硬件配置与系统性能性能测试实例例107测试典型案例分析测试典型案例分析服服务器集群与系器集群与系统性能性能测试实例例108案例测试经验交流案例测试经验交流负载均衡与系均衡与系统性能性能测试实例例10

53、9案例测试经验交流案例测试经验交流负载均衡基均衡基础知知识4负载均衡策略:静均衡策略:静态方式、方式、动态方式:方式:4负载均衡均衡针对的的应用用4负载均衡均衡记录文件用文件用户表表4回回话保持概念保持概念4回回话保持方式保持方式4负载均衡器布置均衡器布置110测试典型案例分析测试典型案例分析案例案例测试经验交流交流111案例测试经验交流案例测试经验交流一个文档、一个文档、邮件接收与件接收与发送系送系统:4业务“下下传文档文档”录制不全,本地保存与打开不能制不全,本地保存与打开不能够录制上。制上。4Weblogic监控需要做的准控需要做的准备工作是工作是4系系统不能登不能登陆,IE问题4Win

54、dows 2000 Server的的资源源监控把握控把握3个重点个重点4Unix资源源监控,如果控,如果LoadRunner无法无法监控控 47.5的的license加到加到7.8上,出上,出现监控控counter全部全部丢失的失的现象象4在在结果文件果文件analysis中直接可以得到中直接可以得到excel格式的格式的结果果112案例测试经验交流案例测试经验交流一个多媒体一个多媒体处理系理系统:4出出现业务“登登陆”无法并无法并发的的现象象4 “登登陆”无法并无法并发并不影响后面交易的并并不影响后面交易的并发执行行4采用采用correlation技技术实现压力力4对于于“查询”操作操作验证

55、检查结果是否正确。果是否正确。4QALoad和和LoadRunner所所录的脚本不一致的脚本不一致4QALoad所所录脚本并脚本并发,交易都成功,但,交易都成功,但报400及及500错误113案例测试经验交流案例测试经验交流一个打一个打扫码信息信息处理系理系统:4Winsock连接要考接要考虑是否有必要做并是否有必要做并发性能性能测试?还是需要做疲是需要做疲劳测试?4默默认的分析中的分析中thinktime时间没有去掉没有去掉4加加压前系前系统的性能指的性能指标应该关注,否关注,否则没有参考依没有参考依据,例如据,例如CPU、内存、内存、Disk I/O等。等。4指指标Disk Time在磁在

56、磁盘阵列列时失效,其失效,其值大于大于100,应注意注意监控控“idle time”指指标。114案例测试经验交流案例测试经验交流一个工作流系一个工作流系统的的选型型测试:2测试数据的准数据的准备2集群的集群的验证115案例测试经验交流案例测试经验交流一个税一个税务测试:1. 关关闭视图降低系降低系统的交易平均响的交易平均响应时间;2. 并并发测试过程中,当大程中,当大规模并模并发时候,出候,出现服服务器拒器拒绝连接的情况,接的情况,connection refused(10061),被被测试系系统为WEBLOGIC应用服用服务器,器,调整整weblogic配置参数配置参数backlog的的值

57、,可以克服,可以克服该问题;3. 索引使用不当;索引使用不当;4. 代理的吞吐能力影响并代理的吞吐能力影响并发用用户数数116案例测试经验交流案例测试经验交流一个一个IC卡卡处理系理系统:2中中间件客件客户端端连接数接数2队列阻塞列阻塞问题2数据数据库优化化选项问题2负载均衡均衡问题117案例测试经验交流案例测试经验交流工具不能支持的被工具不能支持的被测对象:象:2Oracle Form2SMTPSSL2NC118案例测试经验交流案例测试经验交流负载压力性能指力性能指标的区的区别(CPU):):2LoadRunner2Vmstat命令命令2Iostat命令命令2Mpstat命令命令2Top命令

58、命令119案例测试经验交流案例测试经验交流不同的工具不同的工具监控性能指控性能指标(CPU):):2最大并最大并发用用户数数2最大最大连接数接数2最大在最大在线用用户数数2最大注册用最大注册用户数数120测试案例介绍测试案例介绍4并并发性能性能测试几个几个应用用实例例 2实例例1:计费帐务系系统V3.0 测试类型:并型:并发、疲、疲劳 系系统运行模式:三运行模式:三层结构中构中间件件TUXEDO、数据、数据库服服务器操作系器操作系统UNIX、数、数据据库Oracle 监测的的测试指指标包括:交易包括:交易处理性能、理性能、UNIX资源、源、TUXEDO资源源 并并发用用户数:数:50 测试工具

59、:工具: LoadRunner7.5.1 解决的解决的问题:业务执行平均响行平均响应时间在在100秒左右,秒左右,经过调优后,平均响后,平均响应时间降降为10秒秒 例例图如下如下121测试案例介绍测试案例介绍销帐,并,并发用用户数数50,平均响,平均响应时间122测试案例介绍测试案例介绍2实例例2:加油加油IC卡卡试点工程核心点工程核心软件件V2.0 测试类型:并型:并发 系系统运行模式:运行模式:发卡网点子系卡网点子系统采用三采用三层结构的运行模构的运行模 式,式,零管子系零管子系统采用采用C/S运行模式。中运行模式。中间件件TUXEDO、数据、数据库服服务器操作系器操作系统UNIX、数据、

60、数据库Sybase 监测的的测试指指标包括:交易包括:交易处理性能、理性能、UNIX资源、源、TUXEDO资源源 并并发用用户数:数:销售信息售信息查询100,单用用户卡充卡充值170 测试工具:工具:QALoad、 LoadRunner123测试案例介绍测试案例介绍2实例例2:加油加油IC卡卡试点工程核心点工程核心软件件V2.0 (续) 解决的解决的问题:销售信息售信息查询,当,当记录条数达到条数达到时,系,系统在在15分分钟内无任何响内无任何响应 。经分析确定分析确定为系系统数据数据库的架构存在的架构存在问题。 例例图如下:如下:124测试案例介绍测试案例介绍1100用用户 250用用户

61、330用用户 420用用户 510用用户 125测试案例介绍测试案例介绍4实例例3:高速公路高速公路联网收网收费系系统V1.1 测试类型:并型:并发、疲、疲劳系系统运行模式:运行模式: 该软件件为C/S结构,数据构,数据库Informix7.3 ,中,中间件件(自行开(自行开发)Winsock,各,各级服服务器均器均为IBM系列服系列服务器器监测的的测试指指标包括:包括: UNIX资源源并并发用用户数:数:100测试工具:工具:QALoad、 LoadRunner解决的解决的问题:CPU占用率基本保持在占用率基本保持在65,在并,在并发用用户数数为100,交易数,交易数为100的情况下达到的情

62、况下达到82%,最大,最大值达到达到90以上。可以上。可见CPU占用率将来有可能会成占用率将来有可能会成为系系统瓶瓶颈疲疲劳测试丢失数据失数据763条,中条,中间件的件的稳定性有待定性有待进一步提高一步提高 例例图如下:如下:126测试案例介绍测试案例介绍0309100_05F:虚:虚拟用用户数数100 0309100_060:虚:虚拟用用户数数100309100_061:虚:虚拟用用户数数30 0309100_062:虚:虚拟用用户数数50图:入口:入口车道往道往结算中心上算中心上传交易响交易响应时间分布分布图127测试案例介绍测试案例介绍4实例例4:多媒体数据多媒体数据库 V1.0 测试类

63、型:并型:并发、疲、疲劳系系统运行模式:运行模式:B/S运行模式,三运行模式,三层结构,构,web服服务器器为Apache,后,后台各服台各服务器操作系器操作系统为UNIX或者或者Linux,数据,数据库为Oracle监测的的测试指指标包括:包括: UNIX(Linux)、)、Oracle以及以及Apache资源源并并发用用户数:数:200测试工具:工具:QALoad、 LoadRunner解决的解决的问题:当并:当并发用用户数超数超过200时,监控到控到HTTP 500、connect以及超以及超时错误,且,且web服服务器器报内存溢出内存溢出错误,系,系统应进一步提高性能,一步提高性能,以

64、支持更大并以支持更大并发用用户数。数。 例例图如下:如下: 128测试案例介绍测试案例介绍129测试案例介绍测试案例介绍4实例例5:业务流程管理平台流程管理平台V1.0 测试类型:并型:并发、疲、疲劳系系统运行模式:运行模式:B/S运行模式,三运行模式,三层结构,构,web服服务器器为WebSphere ,后台各服后台各服务器操作系器操作系统为Windows2000 Server ,数据,数据库为DB2监测的的测试指指标包括:数据包括:数据库服服务器、器、应用服用服务器、器、Web服服务器的器的network interface、Windows2000 Server performance、数

65、据、数据库DB2、WebSphere等等资源源并并发用用户数:数:500测试工具:工具:QALoad、 LoadRunner解决的解决的问题:并:并发用用户数数为500时的系的系统交易响交易响应时间在不可接受的范在不可接受的范围内,内,数据数据库服服务器的器的资源占用源占用预计会成会成为系系统运行瓶运行瓶颈。 例例图如下:如下: 130测试案例介绍测试案例介绍1.业务:wokflow,总并并发用用户数:数:100; 2. 业务:wokflow,总并并发用用户数:数:300;3. 业务:wokflow,总并并发用用户数:数:500; 4. 业务:homepage,总并并发用用户数:数:100;5

66、. 业务:homepage,总并并发用用户数:数:300; 6. 业务:homepage,总并并发用用户数:数:500;7. 业务:mail,总并并发用用户数:数:100; 8. 业务:mail,总并并发用用户数:数:300;9. 业务:mail,总并并发用用户数:数:500; 10. 业务:mailsend,总并并发用用户数:数:100;11. 业务:mailsend,总并并发用用户数:数:300; 12. 业务:mailsend,总并并发用用户数:数:500131测试工具上机实习测试工具上机实习负载压力力测试工具:工具:LoadRunner7.8上机上机实习内容:内容:1.BS2.CS3.

67、自己开自己开发测试脚本脚本4.资源源监控控132测试工具的使用技巧测试工具的使用技巧1.面向目面向目标的的测试方案方案2.参数池技参数池技术 3.将事将事务插入到插入到Vuser脚本脚本 4.将集合点插入到将集合点插入到Vuser脚本脚本 5.动态数据关数据关联 6.IP数据池数据池 7.Web站点站点经验点滴点滴 8.脚本脚本调试技技术 9.测试工具配置技巧工具配置技巧 10.加加载GUI脚本脚本11.Oracle故障故障诊断断12.特殊的特殊的测试类型型133面向目标的测试方案面向目标的测试方案1.虚虚拟IP数据池用数据池用户目目标类型型 2.每秒点每秒点击次数、每分次数、每分钟页面数或每

68、秒事面数或每秒事务数数 3.事事务响响应时间目目标类型型 134参数池技术(参数池技术(1)135参数池技术(参数池技术(2)136Manual Correlation 提提问:系:系统的的输出出值需要需要为后后续操作提供操作提供输入:入:2系系统产生的生的SessionID;2每次每次访问Web页面的面的动态URL;2表表单提交期提交期间录制的制的Field(有(有时会会隐藏)藏)2这些些值只只对当前会当前会话有效。有效。解决解决办法:法:2从一个操作步从一个操作步骤中扑捉中扑捉输出出值2该值用于另一个步用于另一个步骤的的输入入137Manual Correlation这里我里我们提供几种关

69、提供几种关联数据的方法:数据的方法:2手工关手工关联2录制制结束后自束后自动关关联2录制制过程中自程中自动关关联138Manual Correlation在在Vuser脚本中关脚本中关联动态数据步数据步骤:2确定需要扑捉的确定需要扑捉的值2找到所扑捉找到所扑捉值的左右的左右边界界标识符符2决定决定应该使用哪个使用哪个边界界2将函数将函数web_reg_save_param加入脚本加入脚本2在函数中加入参数名称、左在函数中加入参数名称、左边界界标识符、右符、右边界界标识符以及函数事件符以及函数事件2在每次脚本运行在每次脚本运行时参数化参数化动态数据数据2校校验执行行结果果139IP数据池数据池2

70、运行运行负载生成器上的生成器上的“IP 向向导”添加指定数量的添加指定数量的IP 地址。地址。为UNIX 负载生成器生成器2计算机手算机手动配置新的配置新的IP 地址。地址。2重新启重新启动计算机。算机。2如有必要,用新地址来更新服如有必要,用新地址来更新服务器的路由表。器的路由表。2在在Controller 中启用中启用这项功能。功能。 140Web应用测试应用测试1.测试策略策略 2.设计测试 3.开开发测试4.应用用测试 141Web应用测试策略应用测试策略1.按系按系统架构:客架构:客户端端测试、网、网络上上测试、服、服务器器端端测试2.按面向按面向对象:功能象:功能测试、服、服务测试

71、、安全、安全测试、数据数据库测试3.按按质量特性:功能量特性:功能测试、性能、性能测试、安全性、安全性测试、兼容性兼容性测试和易用性和易用性测试4.按开按开发阶段:段:设计测试、开、开发测试、运行、运行测试142Web应用设计测试应用设计测试1.1.总体架构设计的测试总体架构设计的测试2.2.客户端设计的测试客户端设计的测试3.3.服务器端设计的测试服务器端设计的测试143Web应用应用总体架构设计的测试总体架构设计的测试1.1.采用瘦客户端或胖客户端是否适合需求采用瘦客户端或胖客户端是否适合需求2.2.确定确定Web架构的组成部分是否满足需求架构的组成部分是否满足需求3.3.服务器的配置及分

72、布是否满足需求服务器的配置及分布是否满足需求144Web应用应用总体架构设计的测试总体架构设计的测试序号模型单元1单元2单元31单单元模型基于NT的Web服务器基于NT的应用服务器基于NT的数据库服务器2双单元模型基于NT的Web服务器基于NT的应用服务器基于NT的数据库服务器3三单元模型基于NT的Web服务器基于NT的应用服务器基于NT的Web服务器基于NT的应用服务器基于NT的数据库服务器4单单元模型基于UNIX的Web服务器基于UNIX的应用服务器基于UNIX的数据库服务器5双单元模型基于UNIX的Web服务器基于UNIX的应用服务器基于UNIX的数据库服务器6三单元模型基于NT的Web

73、服务器基于NT的应用服务器基于NT的Web服务器基于NT的应用服务器基于UNIX的数据库服务器145Web应用应用客户端设计的测试客户端设计的测试1.1.功能设置功能设置2.2.信息组织结构设计信息组织结构设计 3.3.页面设计页面设计146Web应用应用服务器端设计的测试服务器端设计的测试1.1.功能设置容量规划功能设置容量规划2.2.安全系统设计安全系统设计 3.3.数据库设计数据库设计147Web应用开发测试应用开发测试1.1.代码测试代码测试2.2.组件测试组件测试3.3.服务器端设计的测试服务器端设计的测试148Web应用运行测试应用运行测试1.1.功能测试功能测试2.2.易用性测试

74、易用性测试3.3.负载压力测试负载压力测试4.4.客户端配置与兼容性测试客户端配置与兼容性测试5.5.安全性测试安全性测试149Web应用安全性测试应用安全性测试1.1.部署与基础结构部署与基础结构2.2.输入验证输入验证3.3.身份验证身份验证4.4.授权授权5.5.配置管理配置管理6.6.敏感数据敏感数据7.7.回话管理回话管理8.8.加密加密9.9.参数操作参数操作10.10.异常管理异常管理11.11.审核与日值记录审核与日值记录150Web站点经验点滴站点经验点滴1.在在执行客行客户端并端并发性能性能测试的的过程中,需程中,需要同要同时监控数据控数据库服服务器、器、Web服服务器器以

75、及网以及网络资源等使用情况,以便源等使用情况,以便对系系统的的性能做全面性能做全面评估估 2.录制脚本和手工制脚本和手工编写脚本相写脚本相结合合 3.设置数据池,置数据池,实现变量加量加载4.业务批量批量执行行 151Web站点经验点滴站点经验点滴5.模模拟用用户数的数的递增增 6.合理合理设置交易之置交易之间时间间隔隔 7.模模拟IP地址地址变量的技量的技术 8.超超时(timeout)的)的设置置 9.并并发用用户连续执行交易数的行交易数的设置置 10.错误处理理152Web站点经验点滴站点经验点滴11.利用利用QALoad的的ActiveData技技术12.采用复合交易采用复合交易测试方

76、案方案13.尽量将尽量将执行行负载测试的机器合的机器合理分布理分布 14.并并发用用户数量极限点数量极限点15.加加压机器的机器的CPU使用率也有必使用率也有必要要监控控 16.设置并置并发点点 17.HTML与与URL录制方式制方式153脚本调试技术脚本调试技术4Winsock并并发性能性能测试 2关关键技技术 : 在脚本中如何用在脚本中如何用变量来代替定量来代替定值,即,即处理理Winsock应用用程序数据流。程序数据流。 看看下面的看看下面的实例脚本例脚本 !154原始脚本PLAYER_INFO *s_info;/* Declare Variables */SET_ABORT_FUNCT

77、ION(abort_function);DEFINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDefaultCheckpointsOn();DO_WSK_Init(s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM,

78、IPPROTO_IP);DO_WSK_Bind(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 172.22.24.125, 2100, AF_INET);/ The session id returned by the server is/ unique to each connection/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ This unique id is then used for subsequent/ requests/* 34 bytes */DO_WSK_Sen

79、d(S1,SessionID=jrt90847rn:BBA);/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);DO_WSK_Closesocket(S1);END_TRANSACTION();REPORT(SUCCESS);EXIT();return(0);155修改后的脚本PLAYER_INFO *s_info;/* Declare Variables */char Buffer64;char SendBuffer64;int nBytesReceived = 0;SET_ABORT_FUNCTION(abort_function);DE

80、FINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDefaultCheckpointsOn();DO_WSK_Init(s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM, IPPROTO_IP);DO_WSK_Bin

81、d(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 172.22.24.125, 2100, AF_INET);/ The reply from the server is read into/ the Buffer variable. We will then have/ the unique Session ID for this connection./ Also need to null terminate the buffer/ after receiving./DO_WSK_Recv(S1, Buffer, 64, 0, &nBytesRece

82、ived);BuffernBytesRecieved = 0;/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ Finally, substitute the Session ID received from/ the server with the one coded in the script./sprintf(SendBuffer, %s:BBA,Buffer);DO_WSK_Send(S1, SendBuffer);/* 34 bytes */DO_WSK_Send(S1,SessionID=jrt90847:BBA);

83、/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);Advanced Scripting Techniques for WinSock 7-5DO_WSK_Closesocket(S1);END_TRANSACTION();REPORT(SUCCESS);EXIT();return(0);156脚本调试技术脚本调试技术4SQLServer并并发性能性能测试 2关关键技技术 : 4从存从存储过程中扑程中扑获一个一个值4利用利用检索到的索到的值作作为一个参数一个参数传递给存存储过程程 看看下面的看看下面的实例脚本例脚本 !157脚本调试技术脚本调试

84、技术存储过程定义如下create procedure inc_test_sp(first_param int)asbeginselect second_param = first_param + 1end1584脚本代码如下:strcpy(sql_statement, /* 1 */execute inc_test_sp sample_param =01 );DO_substr(sql_statement, 1, 100 );BEGIN_CHECKPOINT(); /* #1: Stored Procedure */DO_dbcmd(0, sql_statement);DO_dbsqlexec

85、( 0 );while (DO_dbGetResults(0);END_CHECKPOINT(25); /* #25: Stored Procedure */第一步: 加入必要的变量说明在QALoad脚本的开始部分说明下面的变量 int rhobot_script(s_info)PLAYER_INFO *s_info;int rhobot_script(s_info)PLAYER_INFO *s_info;char szSecondParam20; /* 假设数字长度 1 2 2 */execute use_inc_value_sp inc_value =01);/* Note that sz

86、SecondParam was declared and received thevalue in the steps in Part 1 */DO_substr(sql_statement, 1, szSecondParam );BEGIN_CHECKPOINT(); /* #2: Stored Procedure */DO_dbcmd(0, sql_statement);DO_dbsqlexec( 0 );while (DO_dbGetResults(0);160脚本调试技术脚本调试技术1 两个参数互相有关联两个参数互相有关联 2 产生的动态值与参数有关的值产生的动态值与参数有关的值3 S

87、essionID在在Cookie中体现,并且与时中体现,并且与时间有关间有关4 自己编写的自己编写的Winsock脚本脚本 161测试工具配置技巧测试工具配置技巧2* Form Field Comments : No2 * Anchors as Comments : No2 * Client Maps as Comments : No2 * Debug Comments : No2 * Doc Title Verification : Yes2 * Compare By : Entire Document Title2 * Baud Rate Emulation : No2 * Encode

88、DBCS Characters : No2 * Cache : No2 * Dynamic Redirect : Yes2 * Dynamic Cookies : Yes2 * Process Subrequests : Yes2 * Persistent Connections : Yes2 * Max Concurrent Connection : 42 * Max Connection Retries : 42 * Server Response Timeout : 1202 * HTTP Version Detection : Auto2 * ActiveData : Yes2 * I

89、PSpoofing : Yes2 * Streaming Media : No2 * Hostnames as IP Addresses : No2 * Strip All Cookies From Requests : No2* Traffic Filters : No162Oracle故障诊断故障诊断数据库故障诊断通过获得系统数据库故障诊断通过获得系统SQL语句执行性能数据语句执行性能数据,例如每一条,例如每一条SQL语句在语句在Oracle数据库中执行的平均数据库中执行的平均时间,来识别问题发生位置。时间,来识别问题发生位置。 163Oracle故障诊断故障诊断为了分析故障位置,将故障诊

90、断数据(为了分析故障位置,将故障诊断数据(Oracle Diagnostics)与交易执行响应时间()与交易执行响应时间(Transaction Response Time)数据关联起来。)数据关联起来。例如:某交易例如:某交易 “enter”的平均响应时间高,使用故的平均响应时间高,使用故障诊断(障诊断(Oracle diagnostics),就可以查找到是什么),就可以查找到是什么原因导致了这个问题。原因导致了这个问题。 164Oracle故障诊断故障诊断利用故障诊断的方法(利用故障诊断的方法(Oracle DB Side Transactions by SQL Stage)可以将)可以将

91、SQL语句执行过程中的时间划分为四部分:语句执行过程中的时间划分为四部分:4解析时间(解析时间(Parse Time)4执行时间(执行时间(Execute Time)4读取时间(读取时间(Fetch Time)4其他时间(其他时间(Other Time),例如绑定时间(),例如绑定时间(bind time)。)。 165Oracle故障诊断故障诊断4SQL执行行时间分解分解166特殊的测试类型特殊的测试类型2建建设银行数据整合平台行数据整合平台2面向构件的平台中面向构件的平台中间件件测试2实时系系统的性能的性能测试2不能不能测试的的动态数据数据 167测试工具结果分析测试工具结果分析负载压力力测试工具:工具:LoadRunner7.8结果分析:果分析:2Vuser 日志文件日志文件2Controller 输出出2Analysis 图2图数据数据视图和原始数据和原始数据视图 2报告告168测试工具上机实习测试工具上机实习功能回功能回归测试工具:工具:WinRunner7.6上机上机实习内容:内容:1.录制制测试脚本脚本2.同步点同步点3.GUI对象象检查4.图像像检查点点5.建立数据建立数据驱动测试脚本脚本169总结总结 4测试策略制定策略制定4测试结果指果指标分析分析4测试典型案例分析典型案例分析 4测试技技术讨论4测试工具的使用技巧工具的使用技巧170 谢谢 !171

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号