1、文 档 号:WPTP0001 版 本 号: 1.0 保密级别: 研发部RealmeShow(1.0)压力测试手册影元设计(苏州工业园区)有限公司9月11日研发部RealmeShow压力测试报告编制: 审核:批准:9月11日 修改历史日期动作人物版本号-3-10创立 V1.目 录压力测试报告I1简介11.1目11.2项目信息11.3测试范畴12测试资源12.1人力资源12.2测试环境12.3测试工具22.4测试方案21 简介1.1 目为了跟踪项目压力测试状况,让开发人员和测试人员查看项目测试成果,更好对后期工作进行安排。1.2 项目信息项目名称:RealmeShow版本:1.0基线号:Realm
2、eShow1.0_09111.3 测试范畴重要是测试服务器性能,在各种客户端同步连接时系统性能指标,以及客户端运营状况。2 测试资源2.1 人力资源下表列出了此项目在测试中筹划人员安排:人员详细职责或注释布置和执行测试2.2 测试环境下表列出了测试系统环境: 测试环境(有关硬件、软件、操作系统等)网络设备:Cisco Catelyst 3550 L3 Switch服务器:秀服务器:Dell 1425 SC P4 Xeon(TM) 2.8 G ,1G RAM ,双千兆网卡商城服务器:Dell 1425 SC P4 Xeon(TM) 2.8 G ,1G RAM ,双千兆网卡数据库服务器:DELL
3、1850 2P4 Xeon(TM) 3.0 G ,2G RAM ,双千兆网卡操作系统: Windows Enterprise Server SP1数据库: MYSQL 5Web服务器:IIS 6.0 + PHP 5.1.2 其她必要软件:.NET Framework 1.1 SP1,VS.NET SP1客户端:操作系统: Microsoft Windows XP Professional SP2浏览器:IE 6.0以上其她必要软件:Office 2.3 测试工具下表列出了测试要使用到工具:表2-1 测试工具工具用途生产厂商/自产版本Bugzilla缺陷跟踪开源2.20ApplicationCe
4、nterTest 压力测试工具微软1.0.536.0性能监视器监视服务器性能参数微软5.22.4 测试方案压力测试使用5台客户端,分别在不同网口,每台客户端模仿120,100,80,60个连接,运营时间为30分钟,分别运营了5个顾客场景(首页、论坛页面、等几种重要页面)。察看不同连接时服务器响应状况,服务器性能指标、网络带宽消耗指标等,并作记录,找出潜在问题,以便下一轮系统优化。 Web网站压力测试教程详解07月06日09:29IT文本Tag: 软件测试 性能测试 Web测试 压力测试 【IT168技术文档】Web 服务处在分布式计算核心位置,它们之间交互普通很难测试。分布式开发、大型开发者团
5、队以及对代码日益组件化盼望均有也许使 Web 服务开发变得越来越容易隐藏错误。这些类型错误很难检测出来。压力测试是检测此类代码错误一种有效办法,但是只有在压力系统设计得比较有效状况下才干发挥作用。本文将让您进一步理解一下这种压力系统基本规定。测试办法老式测试办法涉及某种形式简朴单元测试,普通由开发人员执行。设计这些测试需要理解软件内部知识,并且这些测试几乎总是针对产品非常小、特定某些。这些类型测试非常适合与其她代码组件很少交互,甚至没有交互简朴 Web 服务。功能验证(Functional Verification) 也是一种测试过程,在这个过程中,对产品源代码理解有限设计者进行测试以确认产品
6、或服务核心功能。设计这种测试是为了证明这个核心功能符合某个规范。举个例子,我在线拍卖显示是输入对的出价吗?我保险经纪人系统找到最便宜报价了吗?如果这些测试失败,普通就意味着检测到了产品一种基本问题(这个问题普通是可以直接修复)。这种测试也是适合简朴 Web 服务,使您可以检查服务与否可以对的执行它各个功能。系统测试(System Test) 普通是在功能验证阶段完毕,验证了核心功能后进行。它倾向于把整个系统作为一种整体来查找问题 弄清 Web 服务作为系统一某些如何运作,以及 Web 服务互相之间如何交互。由于系统测试是在开发生命周期快结束时才进行,因此普通不能给它分派足够时间来完毕。又由于紧
7、张发行日程安排以及开发各个重要阶段后移,系统测试阶段经常被忽视,并且某些普通都可以发现、少见错误都不能被检测到。虽然发现了这种错误,这时也来不及拟定错误因素并设法修复它们了。因而,在查找代码错误时,必须把系统测试应用设计得尽量高效。系统测试普通由三某些构成,它们是:性能(Performance): 这涉及到拟定有关产品记录数据过程。例如:每秒有多少条消息?一种服务可同步接受多少个顾客?案例(Scenario): 这是重新创立客户所需确切配备过程。因而在案例中发现任何问题都可以在客户使用该产品之前被检测出来。压力(或称工作负载平衡): 它与另两个某些不同,由于它被设计为通过应用很大工作负载来使软
8、件超负荷运转。如果压力测试通过对产品保持高强度使用(但不超过性能记录数字拟定限制)能有效地执行,那么它就经常可以发现许多隐蔽错误,而这些错误用上面提到任何其她技术都是发现不了(这些错误也经常是最难修复)。从检测代码错误这方面来说,可以证明这三个系统测试组件中效率最高是压力测试某些。但由于这个过程经常跟系统其她要素或功能测试混淆在一起,因此这个过程涉及到办法还没有被对的着手解决或实现。压力下错误使用压力测试,您有但愿找到诸各种用其她测试办法更难发现错误。有两种错误类型是:内存泄漏(Memory leak): 一种很难检测现象。内存泄漏经常发生在已发行产品中,因素很简朴,很难设计测试用例来检测它们
9、。使用简朴功能测试,几乎发现不了内存泄漏问题,由于在产品完毕之前测试没对产品进行足够多使用。内存泄漏普通规定操作作要重复非常多次数以使内存消耗达到能引起注意限度。尽管与其他编程语言(如 C/C+)相比,Java 程序更难引入内存泄漏错误,但只要程序仍保持着对对象引用,该对象仍有也许被实例化并且它占用内存永远不会被释放。并发与同步(Concurrency and Synchronization): 压力测试在查找并发性问题上非常出众,这是由于在任何一种测试生命周期中,它都应用了许多不同代码途径和定期条件。普通规则是,压力测试运营时间越长,涉及并应用代码途径组合和定期条件就越多。固然,这也确使得这
10、些问题很难再现(错误可以在 5 分钟或 5 天后发生)。死锁、线程泄漏以及任何普通同步问题普通只能在压力测试阶段被检测出来。这些类型问题很难通过执行单元测试来发现。开发人员不会始终考虑她或她代码将与其她地方代码(在执行单元测试时这些代码也许还没写出来)进行交互。既有压力测试工具有许多声称可以对产品进行压力测试可用工具当前正在开发中。被广泛应用是针对 Web 服务那些工具。然而,这些工具中有许多只是简朴 HTML/SOAP 生成器,它们模仿许多客户机连接,并因而对 Web 服务器生成高负载(这对于查找 Web 服务器问题很有用,但对于查找 Web 服务问题就没那么有用了)。这些工具对基本压力测试
11、比较有用,但它们经常是仅仅扩展功能验证阶段来重复地执行相似功能任务。如果足够时间和资源可用,就可以通过创立定制构建压力测试系统来实现更有效测试。由于压力系统设计者普通对要测试产品和 Web 服务有更多理解,因此她们将可以保证压力系统可以用于哪些详细代码区域。设计压力应用设计试图对 Web 服务进行压力测试压力测试系统时,要让它们以某种特定方式运营代码。这些风格超越了功能验证,目是要弄清晰被测试 Web 服务是不是不但能做咱们以为它能做事,并且在被施加了某些高强度压力状况下依然继续正常运营。压力测试必要对 Web 服务应用四个基本条件。许多已建立压力系统应用了这些条件。有效压力测试系统将应用如下
12、这些核心条件:重复 (Repetition): 或许最明显且最容易理解压力条件就是测试重复。换句话说,测试重复就是一遍又一遍地执行某个操作作或功能,例如重复调用一种 Web 服务。功能验证测试可以用来被弄清晰一种操作作能否正常执行。而压力测试将拟定一种操作作能否正常执行,并且能否继续在每次执行时都正常。这对于推断一种产品与否合用于某种生产状况至关重要。客户普通会重复使用产品,因而压力测试应当在客户之前发当代码错误。许多最简朴压力系统只实现这一种条件,但简朴地扩展功能验证测试来多次重复并不能构成一种有效压力测试。当与下面某些原则结合起来使用时,重复就可以发现许多隐蔽代码错误。并发(Concurr
13、ency): 并发是同步执行各种操作作行为。换句话说,就是在同一时间执行各种测试,例如在同一种服务器上同步调用许多 Web 服务。这个原则不一定合用于所有产品(例如无状态服务),但是多数软件都具备某个并发行为或多线程行为元素,这一点只能通过执行各种代码示例才干测出来。功能测试或单元测试几乎不会与任何并发设计结合。压力系统必要超越功能测试,要同步遍历多条代码途径。至于怎么做到这一点取决于详细产品。例如,一种 Web 服务压力测试需要一次模仿各种客户机。Web 服务(或者任何多线程代码)普通会访问各种线程实例间某些共享数据。因额外方面编程而增长复杂性普通意味着代码会具备许多因并发引起错误。由于引入
14、并发性意味着一种线程中代码有也许被其她线程中代码中断,因此错误只在一种指令集以特定顺序(例如以特定定期条件)执行时才会被发现。把这个原则与重复原则结合在一起,您可以应用许多代码途径和定期条件。量级(Magnitude): 压力系统应当应用于产品另一种条件考虑到了每个操作作中负载量。压力测试可以重复执行一种操作作,但是操作作自身也要尽量给产品增长承担。例如,一种 Web 服务容许客户机输入一条消息,您可以通过模仿输入超长消息客户机来使这个单独操作作进行高强度使用。换句话说就是,您增长了这个操作作量级。这个量级总是特定于应用,但是可以通过查找产品可被顾客计量和修改值来拟定它。例如,数据大小、延迟长
15、度、资金数量转移、输入速度以及输入变化等等。单独高强度操作作自身也许发现不了代码错误(或者仅能发现功能上缺陷),但与其她压力原则结合在一起时,您将可以增长发现问题机会。随机变化: 最后一点,任何压力系统都多多少少具备某些随机性。如果您随机使用前面压力原则中简介无数变化形式,您就可以在每次测试运营时应用许多不同代码途径。下面是几种关于如何在测试生命周期内变化测试示例。使用重复时,在重新启动或重新连接服务之前,您可以变化重复操作作间时间间隔、重复次数,或者也可以变化被重复 Web 服务顺序。使用并发,您可以变化一起执行 Web 服务、同一时间运营 Web 服务数目,或者也可以变化关于是运营许多不同
16、服务还是运营许多同样实例决定。量级或许是最容易更改 每次重复测试时都可以更改应用程序中浮现变量(例如,发送各种大小消息或数字输入值)。如果测试完全随机话,由于很难一致地重现压力下错误,因此某些系统使用基于一种固定随机种子随机变化。这样,用同一种种子,重现错误机会就会更大。一种压力测试普通会结合上述所有原则,并且在容许范畴内尽量长时间地运营。测试被容许执行时间越长,就可以遍历越多代码途径,并且发现错误也越多。固然,一旦找到错误就必要诊断并修复它。由于一种代码错误可以在压力测试运营多日后来自己显示出来,因此系统必要保证当浮现错误时所有可用调试信息都被生成,否则也许就必要耗费同样多时间来重现这个错误
17、。结束语测试是软件开发过程中至关重要某些,并且一种重要、经常被曲解或忽视某些是压力测试。遵循上面详细阐明原则,您就可以设计并实既有效压力测试系统,用来查找某些与您代码有关、比较隐蔽问题。无论是运用预先写好工具,还是创立一种完全专用压力系统,压力测试都是用于查找 Web 服务(或其她任何程序)问题本质办法。 网站压力测试工具简介(想懂得你网站稳定么?)Microsoft Web Application Stress Tool Microsoft Web Application Stress Tool 是由微软网站测试人员所开发,专门用来进行实际网站压力测试一套工具。透过这套功能强大压力测试工具,
18、您可以使用少量Client端计算机仿真大量顾客上线对网站服务所也许导致影响,在网站事实上线之前先对您所设计网站进行犹如真实环境下测试,以找出系统潜在问题,对系统进行进一步调节、设立工作。Microsoft Web Application Stress具备如下几种特性:* 可以数种不同方式建立测试指令:包括以手动、录制浏览器操作环节、或直接录入IIS记录文献、录入网站内容及录入其他测试程序指令等方式。* 支持各种客户端接口:原则网站应用程序C+客户端,使用Active Server Page 客户端,或是使用Web Application Stress对象模型建立您自定接口。.* 支持多顾客运用
19、各种不同认证方式仿真实际状况,包括了DPA,NTLM 及 SSL等。* 支持使用动态cookie仿真定制网站实际运作场景及对话(session)支持。* 在客户端计算机以NT 服务方式执行仿真工作,可在不中断测试状况下将某些客户端测试计算机删除。* 透过集中式Microsoft Web Application Stress 管理员,您可以使用任意数目客户端计算机同步进行测式工作。* 具备Bandwidth throttling (带宽遏流)功能以仿真顾客使用调制解调器上线效果。* 内建query-string 编辑器可协助您建立name-value pair组合模板,并可在不同场景测试中重复使
20、用。* 可程序化对象模式让您可以建立您自己测试客户端。* 汇总测试报告及丰富性能测试资料。* 支持域名系统(DNS)让您可以测试整个群集(Cluster)机器。* 使用Page group方式来控制文献组及测试指令执行程序。* 可自定header让您可以仿真各种不同种类浏览器。* 可自定指令延迟让您以更接近真实环境方式进行测试。网站测试概述为了对的使用WAS进行网站压力测试,您需要对于网站测试办法有一初步理解。如下讨论将包括某些基本概念以供参照。网站测试可大略提成三个重要类别:* 网站性能测试 (Performance testing)* 压力测试下网站稳定性 (Stability or st
21、ress testing)* 网站承受能力评估 (Capacity planning)网站性能测试第一件工作就是使用测试工具对网站加压以测量网站服务器每秒可以承受祈求(Request Per Second) 最大值。第二件工作就是找出系统性能限制因素所在,举例来说,CPU、内存、或是后端系统所导致反映延迟等。在许多状况下,网站服务器CPU是重要性能瓶颈。测试时您可以持续加压直到性能体现开始下降,再慢慢减少压力限度。此时您所测试出来最大性能即为该网站所能达到最高值。在实际测试时,您可以通过增长压力线程(thread),或是增长执行WAS测试程序客户端来加压。在网站服务器端,您可以使用性能监视工具
22、如Performance Monitor来监视如 System:% Total Processor Time 及 Web Service:Connection Attempts/sec 或 Active Server Pages:Requests Queued等指针。如果CPU资源指针已达到80%到85%,则CPU解决能力最有也许就是整个系统瓶颈所在。若是在压力测试过程中CPU所被使用比例不高而”Requests Queued”指针始终居高不下,也许是程序正在调用服务器上COM组件而这个组件无法有效执行完所有命令,因而导致了系统性能减少。在这种情形下,服务器上COM组件才是真正瓶颈。当前市场上
23、最热门定制网站应用程序也会对网站性能表既有重大影响。WAS包括了数种特性可有效协助您测试定制网站应用程序。例如,您可以建立顾客,让WAS可以设立并储存每一种顾客cookie。您也可以使用QueryString 编辑器协助您建立并储存数个不同name-value pair以便在每一次执行request时进行测试。普通网站测试问题* 错误测试平台,和事实上线 production server(生产环境服务器)不同,无法测出实际问题。* 错误测试指令,无法对的仿真出事实上线系统真正反映。* 线程安全性问题以及不稳定服务器COM组件。* Active Server Page 错误及GLOBAL.ASA 设立问题。