版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章章 系统测试系统测试Kerry ZhuZhu.KerryGhttp:/ Broderick)是一个疯狂的电脑游戏迷,一次他不经意地闯入了五角大楼的一个绝对机密的电脑系统中 更多例子更多例子各种系统测试各种系统测试本章内容本章内容v8.1 什么是系统测试v8.2 概念:负载测试、压力测试和性能测试v8.3 负载测试技术v8.4 性能测试v8.5 压力测试v8.6 性能测试工具v8.7 兼容性测试v8.8 安全性测试v8.9 容错性测试v8.10 可靠性测试本章内容本章内容8.1 什么是系统测试什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.
2、5 压力测试8.6 性能测试工具8.7 兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试什么是系统测试?什么是系统测试?v 用户的需求可以分为功能性需求功能性需求和非功能性需求非功能性需求,而非功能性的需求被归纳为软件产品的各种质量特性,如安全性、兼容性和可靠性等v 系统测试系统测试就是针对这些非功能特性展开的,就是验证软件产品符合这些质量特性的要求,从而满足用户和软件企业自身的非功能性需求。所以,系统测试分为负载测试、性能系统、容量测试、安全性测试、兼容性测试和可靠性测试等 系统测试的内容系统测试的内容详见表8-本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、
3、压力测试和性能测试概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.5 压力测试8.6 性能测试工具8.7 兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试背景及其分析背景及其分析v系统性能的改善是测试、调整、再测试、再调整、一个持续改进的过程性能调优v性能调优需要借助负载测试方法的帮助 v负载测试和性能测试有较多相似之处,例如,测试方法比较接近、都关注系统的性能,而且多数情况下使用相同的测试工具 v负载测试可以看作是性能测试所采用的一种技术 v压力测试可以被看作是负载测试的一种,即高负载下的负载测试 v容量测试也采用负载测试技术来实现定义定义v负载测
4、试负载测试是通过模拟实际软件系统所承受的负载条件、改变系统负载大小和负载方式来发现系统中所存在的问题 v压力测试压力测试是在强负载情况下(如大数据量、大量并发用户连接等)稳定性进行测试,查看应用系统在峰值(瞬间使用高峰)使用情况下的行为表现,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等,确认系统是否具有良好的容错能力和可恢复能力。 v性能测试性能测试是为获取或验证系统性能指标而进行的测 本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术负载测试技术8.4 性能测试8.5 压力测试8.6 性能测试工具8.7 兼容性测试8.8 安
5、全性测试8.9 容错性测试8.10 可靠性测试8.3 负载测试技术负载测试技术v8.3.1 负载测试过程负载测试过程v8.3.2 输入参数输入参数v8.3.3 输出参数输出参数v8.3.4 场景设置场景设置v8.3.5 负载测试的执行负载测试的执行v8.3.6 负载测试的结果分析负载测试的结果分析负载测试过程负载测试过程v确定所要模拟的角色及其对应的关键业务操作路径。v确定输入/输出参数,制定负载测试方案。v准备测试环境,并完成相应的测试脚本的开发。v设计具体的测试场景,如负载水平、加载方式等。v执行测试,监控输出参数,如数据吞吐量、响应时间、资源占有率等。v对测试结果进行分析。v结果不满意,
6、需要调整测试场景,进入下一个循环。负载测试的构成负载测试的构成输入参数输入参数v并发用户数、并发连接数等。v思考时间(think time),用户发出请求之间的间隔时间v加载的循环次数或持续时间v每次请求发送的数据量。v加载的方式或模式,如均匀加载、峰值交替加载等负载测试是通过模拟用户的操作方式来考察系统的行为,所以人们肯定会问:如何模拟用户的行为? 参数实例参数实例负载负载v RPS (Request Per Second)v 并发连接数 (Simultaneous Browser Connections) 最大数据容量v 思考时间 (Thinking Time)v RPS + SBC +
7、Thinking Time = Concurrent users?http:/ 加载模式加载模式加载模式举例加载模式举例v 动态模式动态模式 v 全天模式全天模式 v 队列模式队列模式 v 验证模式验证模式 负载模式负载模式p 递增p 恒值p 动态p 整天p 队列http:/ DemovJMeterhttp:/ 输出参数输出参数v 数据传输的吞吐量(Transactions)v 数据处理效率(Transactions per second)v 数据请求的响应时间(Response time)v 内存和CPU使用率v 连接时间(Connect Time)、发送时间(Sent Time)v 处理时
8、间(Process Time)、页面下载时间v 第一次缓冲时间v 每秒(SSL)连接数v 每秒事务总数、每秒下载页面数v 每秒点击次数、每秒HTTP 响应数v 每秒重试次数举例举例图8-7 JMeter性能测试结果示意图场景设置场景设置 v 启动启动(Ramp up) v 持续期间持续期间(Duration) v 结束结束(Ramp down) 在性能测试执行前,以什么样方式启动负载方式、如何持续进行负载测试直至负载测试结束,这个过程的负载大小和方式、负载启动和结束以及各种检查点、验证点等设计,被称为场景设置。 场景类型场景类型http:/ v可以分为静态和动态两部分。静态部分是指设置模拟用户
9、生成器、用户数量、用户组等,动态部分主要指添加性能计数器、检查点、阀值等,从而获得负载测试过程中反回来馈的数据系统运行的动态状态。 v可以依据业务模式变化、随时间段变化来进行设置 v也可分为手工场景也可分为手工场景 和面向目标的场景面向目标的场景 举例举例依据业务模式变化来设计负载模式(来源MSDN)同步点同步点 v同步点(或称集合点)用于同步虚拟用户恰好在某一时刻执行任务,确保众多的虚拟并发用户更准确、集中地进行某个设定的操作,达到更理想的负载模拟效果 负载测试执行负载测试执行 v大量的虚拟用户要运行在多个客户端,并由控制器管理、代理(agent)驱动 v负载测试的执行,需要针对不同维度的变
10、化进行,包括时间维、负载维和系统维v监控、详细的记录和适当的分析是十分重要的 时间维时间维:尝试观察系统在一段较长时间上的行为变化 负载维负载维:尝试在系统上改变负载来进行对比分析 系统维系统维:负载测试也可以针系统的不同组件、不同配置等进行 结果分析结果分析要善于捕捉被监控的数据曲线发生突变的地方拐点 本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试性能测试8.5 压力测试8.6 性能测试工具8.7 兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试8.4 性能测试性能测试v8.4.1 如何确定性能需求如何确
11、定性能需求v8.4.2 性能测试类型性能测试类型v8.4.3 性能测试的步骤性能测试的步骤v8.4.4 一些常见的性能问题一些常见的性能问题v8.4.5 容量测试容量测试示例示例确定性能需求确定性能需求v最终用户的体验最终用户的体验,如2-5-10原则 v商业需求商业需求,如“比竞争对手的产品好” v技术需求技术需求,如CPU使用率不超过70 v标准要求标准要求 只有具备了清楚而量化的性能指标,性能测试才能开始实施。 响应时间是用户的关注点,容量和数据吞吐量是(产品市场团队)业务处理方面的关注点,而系统资源占用率是开发团队的技术关注点 性能测试类型性能测试类型v 性能验证测试性能验证测试,验证
12、事先已定义的系统性能指标、系统能否满足系统的性能需求v 性能基准测试性能基准测试,在系统标准配置下获得有关的性能指标数据,作为将来性能改进的基准线v 性能规划测试性能规划测试,在多种特定的环境下,获得不同配置的系统的性能指标,从而决定在系统部署时采用什么样的软、硬件配置v 容量测试容量测试可以看作性能的测试一种,因为系统的容量可以看作是系统性能指标之一性能测试的步骤性能测试的步骤v确定性能测试需求;v计划和设计测试;包括确定关键业务流程、测试类型和测试方法、选择合适的测试工具、设计测试场景等 v测试工具的选择;v配置测试环境,尽量接近实际运行环境,即建立仿真环境作为性能测试环境,测试结果才能可
13、信;v实现测试设计(开发测试脚本);v执行测试;v分析测试结果;v重复上述(4) (6)步骤,直至测试计划完成,结果满意;v提交性能测试报告。示例示例v加载v结果分析一些常见的性能问题一些常见的性能问题v资源泄漏资源泄漏,包括内存泄漏 v资源瓶颈资源瓶颈,内部资源(线程、放入池的对象)变得稀缺 vCPU使用率达到使用率达到100%、系统被锁定等、系统被锁定等 v线程死锁、线程阻塞等线程死锁、线程阻塞等 v数据库连接成为性能瓶颈数据库连接成为性能瓶颈 v查询速度慢或列表效率低查询速度慢或列表效率低 v受外部系统影响越来越大受外部系统影响越来越大 容量测试容量测试v容量测试(Capacity te
14、st),通过负载测试或其它测试方法,预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),在其极限值状态下系统主要功能还能保持正常运行 v容量测试属于性能测试中的一种,一般采用逐步加载的负载测试方法,也可以先采用逐步加载方式,获得一个基本的容量值或容量范围,然后再考虑用一次性加载方式,来决定实际可支持的容量值。 本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.5 压力测试压力测试8.6 性能测试工具8.7 兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试压力测试压力测试压力
15、测试是在系统(如CPU、内存和网络带宽等)处于饱和状态下,测试系统是否还具有正常的会话能力、数据处理能力或是否会出现错误,以检查软件系统对异常情况的抵抗能力,找出性能瓶颈、功能不稳定性等问题。 压力测试的类型压力测试的类型v 稳定性压力测试稳定性压力测试,高负载下持续运行24小时以上的压力测试 v 破坏性压力测试破坏性压力测试,通过不断加载的手段,快速造成系统的崩溃,让问题尽快地暴露出来 v 渗入测试渗入测试(soak test),通过长时间运行,使问题逐渐渗透出来,从而发现内存泄漏、垃圾收集(GC)或系统的其他问题,以检验系统的健壮性 v 峰谷测试峰谷测试(peak-rest test),采
16、用高低突变加载方式进行,先加载到高水平的负载,然后急剧降低负载,稍微平息一段时间,再加载到高水平的负载,重复这样过程,容易发现问题的蛛丝马迹,最终找到问题的根源。本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.5 压力测试8.6 性能测试工具性能测试工具8.7 兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试8.6 性能测试工具性能测试工具v8.6.1 特性及其使用特性及其使用v8.6.2 开源工具开源工具v8.6.3 商业工具商业工具特性及其使用特性及其使用 v能模拟实际用户的操作行为,记录和回放多用户
17、测试中的事务处理过程,自动生成相应的测试脚本v能针对脚本进行修改,增加逻辑控制、完成参数化和数据关联 v可以设置不同的应用环境和场景,通过虚拟用户执行相应的测试脚本 v通过系统监控工具获得系统性能的相关指标的值 JMeter-JMeter-JMeter-开源工具开源工具v Siege(/JoeDog/Siege)是一个开源的Web压力测试和评测工具。v OpenSTA,可以模拟大量的虚拟用户来完成性能测试,并通过scrpt来完成丰富的自定义设置。详见/index.php。v DBMonster是一个生成随机
18、数据、用来测试SQL数据库的压力测试工具,详见http:/dbmonster.kernelpanic.pl/。v LoadSim网络应用程序的负载模拟器。v 更多的性能测试工具,可访问/performance.php HP LoadRLoadRunner系统架构系统架构商业工具商业工具 vHP LoadRunnervIBM Rational Performance TestervRadview WebLoad vCompuware QA Load vQuest Benchmark Factory v微软微软WAS(Web Acces
19、s Stress test) vPaessler Webserver Stress Tool vMINQ PureLoad 本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.5 压力测试8.6 性能测试工具8.7 兼容性测试兼容性测试8.8 安全性测试8.9 容错性测试8.10 可靠性测试8.7 兼容性测试兼容性测试v8.7.1 兼容性测试的内容兼容性测试的内容v8.7.2 系统兼容性测试系统兼容性测试v8.7.3 数据兼容性测试数据兼容性测试什么是兼容性测试什么是兼容性测试v兼容性测试是在特定的或不同的硬件、网络环境和操作
20、系统平台上、不同的应用软件之间,验证软件系统能否正常地运行,以及能否正确存取原先版本的用户数据所进行的测试 p 与硬件兼容p 与操作系统、平台的兼容p 与数据库系统的兼容p 与浏览器的兼容p 与第三方系统的兼容p 与内部业务系统的兼容p 与自身系统的不同版本的用户数据兼容等 兼容性测试的内容兼容性测试的内容硬件兼容性测试数据兼容性测试系统版本之间的兼容性向后兼容是指新发布的软件版本可以使用该软件的以前版本所产生的数据。向前兼容是指在设计和开发软件一个新版本时,考虑如何和未来版本的数据兼容。系统兼容性测试系统兼容性测试vB/S系统兼容性测试系统兼容性测试 vC/S系统兼容性测试系统兼容性测试 数
21、据兼容性测试数据兼容性测试v是否遵守统一的国际标准、国家标准或业界认可的事实标准等 v提供相应的导入和导出功能 v剪贴板或ODBC等类似方法 本章内容本章内容8.1 什么是系统测试8.2 概念:负载测试、压力测试和性能测试8.3 负载测试技术8.4 性能测试8.5 压力测试8.6 性能测试工具8.7 兼容性测试8.8 安全性测试安全性测试8.9 容错性测试8.10 可靠性测试8.7 兼容性测试兼容性测试v8.8.1 安全性测试的范围安全性测试的范围v8.8.2 Web安全性的测试安全性的测试v8.8.3 安全性测试工具安全性测试工具什么是安全性测试什么是安全性测试v 跨站点脚本(cross-s
22、ite scripting,XSS)攻击;v SQL注入式漏洞;v 缓冲区溢出;v 不安全的数据存储或传递;v 不安全的配置管理;v 有问题的访问控制,权限分配有问题;v 口令设置不严,包括长度、构成和更新频率;v 暴露的端口或入口;软件安全性测试就是检验系统权限设置有效性、防范非法入侵的能力、数据备份和恢复能力等,设法找出上述各种安全性漏洞 安全性测试的范围安全性测试的范围v系统级别的安全性v应用程序级别的安全性 (重点)用户权限数据输入验证敏感数据加密数据存储安全性用户口令验证系统的日志文件是否得到保护 Web安全性测试安全性测试v跨站脚本攻击跨站脚本攻击 vSQL注入式攻击注入式攻击 v
23、URL和和API的身份验证的身份验证 v其它其它 3-D3-D ( defacing, destruction, denial of service DoS )丑化、破坏、拒绝服务跨站脚本攻击跨站脚本攻击在页面某些输入域中使用跨站脚本(写入一段 javascript )来发送恶意代码给没有发觉的用户,让浏览器执行document.write等危险指令 ,窃取用户的资料或信息。输入域验证输入域验证v HTML标签: v 转义字符:&(&);<(); (空格) ;v 脚本语言,如JavaScript v 特殊字符: /防止:防止:最好进行更严格的保护和验证最好进行更严格的保护和验
24、证 SQL注入式攻击注入式攻击 v根据SQL语句的编写规则,附加一个永远为“真”的条件,使系统中某个认证条件总是成立,从而欺骗系统、躲过认证,进而侵入系统 Username=Request.from(“username”)Password=Request.from(“password”)xSql=”select * from admin where username=”&usename&” and password=”&password &” ”Rs.open xS.0.3If not rs.eof thenSession(“login”)=trueResponse.redirect(“nex
25、t.asp”)End ifor 1 = 1 安全性测试工具的评估标准安全性测试工具的评估标准 支持常见的Web服务器平台 能同时提供对源代码和二进制文件进行扫描的功能 漏洞检测和纠正分析 检测实时系统的问题 不改变被测试的软件,不影响代码 良好的报告 非安全专业人士也易于上手 可管理部署的多种扫描器、尽可能小的错误误差等常见的安全性测试工具常见的安全性测试工具vAcunetix Web Vulnerability Scanner是一款商业级的Web漏洞扫描程序。vBurp suite是一个可以用于攻击Web应用程序的集成平台,vNikto是开源的Web服务器扫描程序。vN-Stealth是一款
26、商业级的Web服务器安全扫描程序。vParos proxy是基于Java的web代理程序,可以评估Web应用程序的漏洞。vSPI Dynamics WebInspect是功能强大的Web应用程序扫描程序vTamperIE 是一个小巧的XSS漏洞检测辅助工具vTripwire是一款最为常用的开放源码的完整性检查工具vWapiti是由Python语言编写的、开源的安全测试工具,直接对网页进行扫描vWatchfire AppScan是一款商业的Web漏洞扫描程序,可以扫描许多常见的漏洞。vWebScarab可以分析使用HTTP 和HTTPS协议进行通信的应用程序vWhisker是使用LibWhisker的扫描程序,适合于HTTP测试vWikto可以检查Web服务器中的漏洞,和Nikto比较接近。v常用的网络监控工具主要有Nessus、Ethereal/Wireshark、Snort、Swit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三、精彩游戏玩中学教学设计小学信息技术粤教版B版三年级下册-粤教版(B版)
- 新教材高中化学 第1章 化学反应的热效应 第1节 第2课时 热化学方程式 燃烧热教案 新人教版选择性必修第一册
- 康复综合考卷题目及答案展示
- 2026年生产智能化高级研发师招聘笔试试卷 招录12人王牌题库
- 2026年三维地理高级建模师招聘笔试试卷 招录12人
- 写护士长述职报告(28篇)
- 八年级语文浙教版上学期第三单元同步测试卷基础版A卷
- 八年级语文湘教版总复习第三单元同步测试卷基础版A卷
- 转正述职集合(3篇)
- 储能电站电气设备交接试验方案
- 人行天桥钢结构安装施工方案
- 2026年北师大版数学新教材五年级上册教学计划(含进度表)
- 2026部编人教版一年级道德与法治一年级上道德与法治教案
- 某钢铁厂质量制度
- 2026秋小学湘艺版音乐一年级上册(新教材)教学计划含教学进度表
- 2026年秋季开学高中开学第一课(消防安全)课件
- 路灯照明系统故障排查维修手册
- 重症监护病房感染防控指南
- 前列腺癌快速康复
- 2025-2026学年广东省中山市七年级(下)期末数学试卷(含答案)
- 地铁票务系统运维员岗位招聘考试试卷及答案
评论
0/150
提交评论