Web Tours网站性能测试计划
作者:llr
发布日期:2014
文档版本:
文档编号:
文档历史:
变更记录
相关文档
文档目的
描述Web Tours性能测试流程、范围、环境、风险等因素作为性能测试实施依据。
项目背景介绍
Web Tourd是HP LoadRunner软件自带一个飞机订票系统网站,是一款基于ASP..NET平台的网站。基于先进的.NET Framework,默认支持SOL Server数据库,可扩展支持ACCESS、MySql等多种数据库。支持基于IE、Chrome、Firefox、Opera等浏览器。
Web Tours网站主要是提供方全世界用户进行网上订票、查看订票信息、预订机票、修改预订机票的功能支持。
术语及缩写
性能测试(Performance Testing):在一定负载的情况下,系统响应时间、吞吐量等性能是否满足用户特定的性能需求。
负载测试(Load Testing):在一定的软件、硬件及网络环境下,在不同虚拟用户数量的情况下进行一种或多种业务,测试服务器的性能指标是否在用户要求的范围内,用于确定系统所能承受的最大用户数、最大有效用户数以及不同用户数下的系统响应时间和服务器的资源利用率。
压力/强度测试:(stres Testing):在一定软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间持续运行,以测试服务器在高负载情况下是否能够稳定工作。
配置测试(Configuration Testing):在不同软件、硬件及网络环境下,在一定的虚拟用户数量的情况下运行一种或者多种业务,获得不同配置的性能指标,用于选择最佳的设备及参数配置。
输入
《项目计划文档》
《性能需求规格说明书》
《系统架构计划文档》
其他性能测试文档
入口标准
系统运行环境
1)网络拓扑图
2)软硬件配置
测试内容
根据需求,在本次测试中我们需要对Web Tours网站进行注册、登陆、订票、查询以及退票功能进行性能测试,得到该功能在一定的负载的数据处理能力
非测试内容
由于以下功能在真实情况中使用较少,并对响应时间无明确需求,故不进行测试
? 网站后台管理功能
?测试策略
业务抽取(测试脚本)
需要进行测试的主要业务
用户行为模型及性能指标
混合模式用户行为模型及性能指标(测试场景)
注:受测试平台影响,我们需要对负载用户进行调整
角色和职责
性能测试工具列表
进度安排
出口标准
1、并发测试功能正常
2、压力测试连续72小时无故障
3、负载测试在代码已经配置管理情况下,测试结果达到用户要求
交付件
风险
列出测试过程中存在的风险
假设
列出假设内容
电脑型号 X64 兼容 台式电脑
操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 )
处理器 英特尔 第三代酷睿 i5-3470 @ 3.20GHz 四核
主板 七彩虹 B75AK (英特尔 Ivy Bridge - B75 Express 芯片组)
内存 4 GB ( 威刚 DDR3 1600MHz )
主硬盘 西数 WDC WD5000AAKX-00ERMA0 ( 500 GB / 7200 转/分 )
显卡 ATI Radeon HD 7770 Series ( 1 GB / 镭风 )
显示器 康冠 KTC1550 DC L151S ( 14.6 英寸 )
声卡 英特尔 Panther Point High Definition Audio Controller
网卡 瑞昱 RTL8168F PCI-E Gigabit Ethernet NIC
Web性能测试方法及其应用
冯行武 G2009225426
摘要:针对Web应用软件的特征,提出了一种基于目标的性能测试方法,其关注的主要内容包括与Web应用相关的负载测试和压力测试两个方面。不但对这两个方面的测试方法进行了全面的分析和探讨,还强调了测试过程管理的重要作用,最后给出了这种方法在Web应用性能测试实践中的一个具体应用。
关键词: 性能测试; 负载测试; 压力测试; 软件测试
目前,随着电子商务和电子政务等Web应用的兴起,基于B/S结构的软件日益强劲发展,正在成为未来软件模式的趋势。然而,当一个Web应用被开发并展现在用户、供应商或合作伙伴的面前时,尤其是即将被部署到实际运行环境之前,用户往往会疑问:这套Web应用能否承受大量并发用户的同时访问?系统对用户的请求响应情况如何?在长时间的使用下系统是否运行稳定?系统的整体性能状况如何?如果存在性能瓶颈,那么是什么约束了系统的性能?而这些正是Web性能测试解决的问题,如何有效进行Web性能测试,目前并没有一个系统和完整的回答。此外,由于紧凑的开发计划和复杂的系统架构,Web应用的测试经常是被忽视的,即使进行了测试,其关注点也主要放在功能测试上。但是,近年来Web性能测试越来越引起重视,成为Web系统必不可少的重要测试内容。
本文的研究就是基于这种需求,从已进行过的Web性能测试实践中总结一套基于目标的Web性能测试方法,该方法已在大量的软件测试项目实践中被证明是有效的和可操作的。其具体测试实施方面包括负载测试和压力测试。
1概述
1.1基本概念
一般来说,性能测试包括负载测试和压力测试两个方面: 负载测试是为了确定在各种级别负载下系统的性能而进行的测试,其目标是测试当负载逐渐增加时,系统组成部分的相应输出项,如响应、连接失败率、CPU负载、内存使用等如何决定系统的性能。压力测试是为了确定Web应用系统的瓶颈或者所能承受的极限性能点而进行的测试,其目标是获得系统所提供的最大服务级别的测试。
1.2 Web性能测试的目标
Web性能测试的目标是什么?它不仅是用测试工具去运行一些测试脚本来证明产品是否可以达到性能指标,更关键是要发现产品性能上的缺陷,并解决定位问题,这才是软件性能测试的真正目的。其目标可分为以下两种级别:
(1)性能测试总体目标。找出Web应用系统可能存在的性能瓶颈或者软件缺陷,确认其是否可以达到用户的使用需求。收集测试结果并分析产生缺陷原因,提交总结报告,让软件开发方对Web应用进行性能改进。
(2)性能测试具体目标。此目标又可以分为:
①确定Web应用系统的总体性能参数,包括所支持的最大并发用户数、事务处理成功率、请求相应的往返延迟等。②确定在各个级别的负载及压力测试下服务器输出的具体性能参数。
这些测试目标驱动了整个测试过程的进行,因而在Web性能测试中起着至为关键的核心作用,因此在软件性能测试之前一定要有一份《软件性能测试需求规格说明书》,用于定义详细的测试目标,这是检查软件性能是否符合要求的基本依据。
1.3 基于目标的Web性能测试
系统的负载测试需要采用负载工具进行,真实模拟大量用户访问Web应用系统来测试系统的表现,包括测试静态HTML页面的响应时间,甚至测试动态网页的响应时间等,看是否满足预期的设计指标要求,为服务器的性能优化和调整提供数据依据, 负载测试不会以使系统崩溃为目的,因此负载测试的期望值一般以满足使用需求为主,不需要太夸张的数值。
系统的压力测试也需要使用压力测试工具,主要是对Web服务器进行压力测试。测试可以帮助找到一些大的问题,如死机、崩损、内存泄漏等。因为有些存在内存泄漏问题的程序在运行一两次时可能不会出现问题,但是如果运行了成千上万次后,内存泄漏得越来越多,就会导致系统崩溃。
2 Web应用性能测试环境建立
目前比较流行的负载测试和压力测试工具有LoadRunner、WebLoad、QALoad、JMetert等,本文就WebLoad的性能测试过程进行讨论。
webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。
2.1工作原理
webload提供巡航控制器cruise control的功能,利用巡航控制器,可以预定义web应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标;cruise control能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。
图一 Webload的应用框架
2.2软件安装
双击应用程序,点Next|Yes|Next。
选择安装路径D:\Program Files\RadView\WebLOAD|Next|Next
正在安装
安装完毕
2.3 Webload人通信设置
配置SNMP协议使多个压力机之间互相通信:
在windows里进入[控制面板]->[添加删除程序]->[添加删除windows组件]选择[管理和监控工具],[下一步]后选择windows安装文件路径,[完成]。
2.4 TestTalk安装
TestTalk在测试会话里监测压力机间的信息传递,如果通信不成功则报错TestTalk自动安装,测试执行时在后台自动运行,注意不要将它关闭。
3 Web应用性能测试流程
3.1 web录制脚本
Webload提供便捷的脚本录制工具,测试人员可以用这个工具来捕捉Web访问行为,这些行为被录制成标准的JavaScript脚本,测试人员可以修改脚本这中的参数来达到预期的测试目的。
3.1.1 创建一个项目:运行WebLoad,首先创建一个项目。
创建项目
3.1.2 开始录制:单击工具条中的按键开始录制脚本,录制脚本的时候会打开一个浏览器窗口,只有在这个窗口内录制的内容才会生成脚本,在这个窗口中输入被测软件的地址:http://www.baidu.com,在IDE中的Script窗口将会生成相应的脚本。
录制生成的脚本
更改数量级到500,再次访问这个地址,从录制脚本的变化,我们可以看出WebLoad自动捕捉了中间的访问间隔Sleep(9356)。
改变访问对象后录制脚本的变化
3.1.3 创建事务:展开左侧的“Load”工具组,拖放“beginTransaction”到第一个URL之前,起名为:“Transaction1”;拖放“EndTransaction”,选择“Transaction1”完成事务的创建。
创建事务后脚本的变化
3. 2 运行测试
3.2.1打开刚才的项目,单击“run test”,对刚才录制的脚本开始进行测试。在执行窗口中可以看两次访问已经被执行了。
事务的执行结果
3.2.2在“Logic View”中可以牛二珠运行善,最后一行显示已经运行通过。
3.2.3 在“Browser View”中可以牛二中大恒基暂不的网页,以及网页的DOM树结构de“HTMLVEW”中可以看到网页的HTML代码;在“HTTP Headers View”中可以看到HTTP的头信息。
访问成功后网页的结构
3.3 进行压力测试
3.3.1 运行WebLoad console,创建一个新模板。压力测试可以只执行单一Agenda测试,也只可以运行多个Agenda一起测试,在本例中选择“Single Agenda”,选择最初保存的Agenda。
创建压力测试模板,执行单一Agenda测试
3.3.2 单击“easurements Manager”添加压力测试的监控器,监控器的不同会导致在压力测试过程中不同的显示输出结果;然后,单击“Add Data Source”添加数据源,本例中选择Windows平台;最后,选择监控主机。
3.3.3 选择要监控的性能指标,本例中我们关心的是系统处理时间。
3.3.4 为本次测试选择主机,其中localhost是我们刚创建的测试主机,用它来进行测试。
3.3.5 配置主机在某个时间点进行测试。首先, 单击“Load Profiler”更改压力属性;然后选择总共测试时间为5分钟,开始测试的虚拟机数为1,最终虚拟机数为5;最后,单击“Replace”更新属性。测试属性配置完成后,单击开始测试。
配置主机测试方案
3.3.6 在测试结果中,横坐标为并发用户数量,纵坐标为数值。窗口中默认有4种性能指标:加载大小、每秒单击率、周期时间和吞吐量。单击,可查看数据结果。
查看测试结果
从统计数字上可以看出,平均加载时间为0.1秒,周期时间为4.8秒,有1个周期等等。
4 Web工具小结
WebLoad中的参数使用非常灵活,能满足实际应用测试的需要。在Web应用测试过程中,不同客户剖端的行为是不同的,因此需要将行为变量化。WebLoad提供了智能拷贝和参数化行为的方法,以模拟出不同行为的多个客户端同时在线的场景。
WebLoad的另一个重要组件是WebLoad Console。WebLoad IDE侧重于脚本的录制及编辑调试等功能,而WebLoad Console侧重于加载生成的脚本。包括:定义Load客户端的策略,例如线性提高、随机变化加载虚拟客户端的数量;设定Load时间,而且可以生成随时间和Load数量的报告,帮助我们找出系统瓶颈;在测试时可以动态加载监视对象,例如响应时间、CPU处理时间、内存占用率等等。
WebLoad的Mix of Agendas可以在一个测试方案中添加多个测试脚本,这样便能模拟多个客户端的使用。例如:我们可以模拟10个客户端在登录,10个客户端在浏览网页,10个客户端在添加商品到购物车,然后每种功能的客户端还在不断地增长,这样的测试方案可以尽量地接近真实的环境。
WebLoad不公可以进行性能测试,而且可以进行功能测试。功能测试的原理是查找相应的HTMLk的信息来判断测试脚本是否成功。例如:如果用户登录失败,我们通过查找,如果发现失败在HTMLr响应文本中,我们就认为测试用例失败了。另外这对HTML的学习也是有帮助的。
最后,WebLoad 与JMeter相比具有如下优点:
1、 JMeter只提供了可视化编辑方式,跟提供的编辑方式相比,WebLoad在创建测试JavaScript脚本方面更加灵活。
2、 JMeter只适用于Java程序,因此不能在测试脚本中调用COM对象。
3、 JMeter比WebLoad支持的服务器监控协议要少。
4、 JMeter不支持对HTTPS网站进行脚本录制。
5、 WebLoad的分析和报告能力要超过JMeter。
5 总结
Web应用的多样性决定了Web性能测试方法的多样性,但无论其表现,所有的测试活动都一定有其目的性,也只有让性能测试围绕其目标展开才能使投入的测试资源产生最大的效益。本文围绕所提出的基于目标的性能测试而展开,同时强调了测试管理的作用,并给出了一个邮件系统测试的实例。本文提出的性能测试方法已经在许多项目实践中得到了良好的应用,但Web性能测试模型的总结和深入研究还有待进一步进行,这也是我们下一步的主要工作计划。
网站测试计划目录1测试计划211项目背景介绍212系统分析2121确定协议2122系统流程分析213确定测试目标3131用户性能需…
电子商城的测试计划1引言11目的测试网上购物系统中的各个功能模块是否满足用户需求并测试是否存在bug预期达到能够使系统进行快速的改…
购物网站测试计划姓名刘昕学号19班级计软1001班指导老师汤旭蓉1简介11编写目的根据软件的功能及结构设计出相应的测试用例通过测试…
湖南万众一网通科技有限公司购物网络后台界面项目开发单位湖南万众一网通科技有限公司项目测试单位湖南万众一网通科技有限公司一网通网上电…
毕业设计指导网站项目测试计划1引言11编写目的本测试计划用来对招聘网毕业设计指导网站设计项目V10的测试进行规划包括测试过程范围时…
网上订餐系统性能测试报告帅哥小组我帅你帅他也帅性能测试报告目录123测试目的3测试地点3测试环境3313245服务器客户端环境3测…
系统项目性能测试报告XXX部XXXXXXXXXXXX有限公司性能测试报告修订控制页112性能测试报告目录123测试目的4测试地点4…
Xxx系统性能测试报告Xxx系统性能测试报告拟制审核批准王道勇日期日期日期20xx78密级内部公开第1页共7页Xxx系统性能测试报…
全国人才服务网性能测试说明第1页总共12页全国人才服务网系统性能测试说明1测试计划概要说明性能测试是对系统响应时间事务处理速率和其…
WEB性能测试报告1总述11测试对象web系统12测试目的确定系统支持的最大并发用户数13测试环境14测试依据15参考资料16术语…
1背景本次性能测试的系统是X银行营销服务系统总行版该系统使用的数据库服务器应用服务器均布署在总行机房各地分行通过WEB方式登录访问…