环境搭建
1.安装LR8.0版本
a.到\doc复制安装包到本地,解压后,里面有2个文件:Loadrunner 8.0 (Web Site Load Test Tool - Good).iso和说明.txt(10000并发用户注册码)
b.用光驱工具(DAEMON Tools)打开iso镜像文件,安装LR
c.安装过程注意:光驱工具在/doc中的daemon347.exe
按默认步骤一步步安装下来
二.web性能测试计划
1.性能测试基本概念
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
2.什么时候需要做web性能测试
一般来说,开发人员或项目经理会提出需求,帮忙测下某个网站或某个功能点的性能如何?所以基本的测试需求和性能标准需要自己来设定。
首先先了解到测试的范围,如果是整个网站的性能水平,则选择网页流量最多的几个页面,进行页面概率测试,首先判断出该网站流量最大的页面有:首页,下载页,个人管理页,广告页,等等其他页面。页面和页面之间的流量也存在着某种关系。假使用户群的20%会浏览首页,其中20%中的80%会到下载页面,20%会进入个人管理页面,20%会进入广告页面。
如果是某个功能的测试,可以先进行试探性的测试,可以开始录制基本的脚本。例如测试网站注册功能的性能如何?先得出基本的性能标准。
这次我要测的是网站的注册性能。首先注册功能的功能测试要全部通过,保证功能上没有问题。然后分析所测对象的模块结构是如何的?注册方式有3种:直接注册,第三方帐号注册,手机注册。其中预期到直接注册和第三帐号的注册量最大,所以测试2种方式下的注册性能如何。那么这次的性能测试范围就是直接注册了。然后在考虑测试环境
测试工具:LoadRunner工具模拟多用户并发请求注册的客户端请求。那么如何模拟这个压力,如何得出压力过程中网站的是否稳定,事务的失败率是否太大?这些都要在开始压力之前想好。
3.Web性能测试计划
5W:“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”
做什么:也就是测试范围,测试web注册系统性能是否满足用户需求?
为什么做:在上线之前,或用户快速增长之后,及早的验证系统是否能支持多用户同时注册,以免在线时才发现系统承载不了。
何时做:也就是测试任务的时间,基本上要1个星期的时间。
在哪里:需要2台测试机,一台是web服务(注册系统,linux系统),一台是压力测试专用机(安装LR,windows系统)。另外需要准备一个自己的观察机(远程桌面操作并观察压力2台系统的结果)。
如何做:也就是测试脚本的录制和测试场景的设置了。有几个问题必须先考虑清楚才开始做,LoadRunner能做些什么?
a.功能是一个什么流程?用户点击页面->下一步到号码页面->用户输入验证码->设置用户密码->后台注册成功(数据库及日志)->用户注册成功
b. LoadRunner通过使用虚拟用户来代替实际用户来减少人员要求。这些Vuser模拟实际用户的行为(也就是注册)
c. LoadRunner联机监视应用程序的性能,使您可以在测试执行期间对您的系统进行微调。从服务器的性能调试还是代码的性能调试。
d. LoadRunner在测试过程中会自动记录应用程序的性能。您可以从众多的图和报告中进行选择以查看性能数据。
e. LoadRunner可检查出现性能延迟的地方:网络或客户端延迟、CPU性能、I/O延迟、数据库锁定和数据库服务器上的其他问题。LoadRunner将监视网络和服务器资源以帮助改进性能。
f.性能测试并不是1次2次就能完成的工作,可能需要多轮的场景设置然后观察。
三.一轮测试的整个过程
1.规划测试
也就是刚才所说的性能测试计划,想好第一探测要怎么做,从最表面的性能指标观察(响应时间,定义明确的测试计划确保方案能完成本次测试的目标
2.创建user脚本
录制单个用户完成整个功能时所做的动作(用户点击页面->下一步到号码页面->用户输入验证码->设置用户密码->后台注册成功(数据库及日志)->用户注册成功),而且后面的方案需要,可以设置单个用户反复录制该脚本的次数
3.创建方案(测试场景)
设置整个压力过程中,客户端请求动作的所有情况,你可以设置用户数量,多个脚本的百分比,而且还可以创建面向目标的方案,在其中定义你希望达到的测试目标,LR将根据你所设置的目标自动为你创建方案。
4.运行方案(在运行前,先想好需要监视那些数据)
第一次运行方案时,你可以观察下监视的性能指标图表变化,看是否有太大的异常,因为初次用工具肯定会有些问题,这时候可以查找答案排除问题。
5.监视方案(LR能满足大部分的性能指标观察,但有些性能指标需要自己写些sh脚本录制)
你可以观察用户加载数量,事务成功数,系统资源,web资源,WEB服务器资源,web应用程序服务器资源,数据库服务资源,网络吞吐量等。
6.分析测试结果,得出更有效的下一步测试用例设计
LR可以记录下不同负载下的性能数据,可以使用图表和报告来分析应用程序的性能,而这一环节也是最难的一步
四.测试计划
1.分析应用程序
分析单用户完成整个功能的过程:用户从客户端机发出请求,网络环境,web服务器响应请求,数据库服务器保存结果
先不考虑网络环境的瓶颈,在内网中进行性能测试
2.定义测试目标
度量最终用户的响应时间:完成一个注册需要多长时间
定义最优的硬件配置:哪一种硬件配置可以提供最佳性能
检查可靠性系统:无错误或无故障运行的时间长度或难度
度量系统容量在没有显著性能下降的前提下,系统能够处理多大的负载:确定瓶颈哪些因素会延长响应时间
3.计划测试实施方案
定义用户的活动,一个用户的请求可以定义为一个事务,而且可以在脚本中设置集合点:指示多个用户同一时刻执行。
4.检测测试目标
度量最终用户响应时间:从客户端请求到服务器响应完毕所花费的时间
定义最优的硬件配置(服务器的):检查各项系统配置对性能测试的影响
检查可靠性:确定系统在高工作长期负载下的稳定性级别
确定瓶颈(客户端,网络,服务器,数据库服务器,程序)
五.录制脚本
虚拟用户模拟实际用户的操作,开始录制(url,action),在页面上操作,完成注册后,停止脚本录制。就可以得出整个虚拟用户注册过程客户端部分的行为录制了。
录制基本的vuser脚本
VuGen通过录制浏览器和Web服务器之间的活动来创建Web Vuser脚本。VuGen监控系统的客户端(浏览器),并跟踪所有发送到服务器以及从服务器接收的请求。
在VuGen中或从LoadRunner Controller运行录制的Vuser脚本时,Vuser将与服务器直接通信,无需依赖客户端软件。而Vuser脚本则通过API函数直接执行对Web服务器的调用。
过程:新建脚本->设置录制选项为action->录制浏览网站时执行的操作->终止操作
增强并编辑脚本
通过插入事务、集合点、检查和服务步骤来增强Vuser脚本。需要的话还可以定义参数(有变量时),vuser_init和vuser_end部分通常用于录制服务器登录和注销过程。
配置运行时设置
以独立模式运行vuser脚本
调试脚本,查看脚本是否有错。
脚本保存,以便集成到LR方案中
保存脚本。
六.设置方案
1.选择方案类型
选择下列两个选项之一:
a.手动方案:如果要生成手动方案,请选择此方法。通过创建组并指定脚本、负载
生成器和每组中包括的Vuser数,可以生成手动方案。
使用百分比模式在脚本间分配Vuser,如果要通过指定许多要在选定Vuser脚
本间分配的Vuser来生成手动方案,请选择此选项。
b.面向目标的方案:选择此方法可让LoadRunner为您生成方案。在面向目标的方
案中,可以定义通过测试要实现的目标,LoadRunner将根据这些目标自动生成
方案。
2.选择脚本
选择刚刚保存录制的脚本
3.设计方案
a.“方案计划”窗格显示了与计划配置文件有关的信息:名称、计划模式、方案持
续时间、负载行为和方案中要使用的Vuser总数。“负载预览”显示已定义方案
计划的预览图。
主要用途是设置虚拟用户的加载数,以及用户随着时间的增长如何加载用户数量(上升虚拟用户数,保持最高用户数,下降讯用户数),而且可以指示LoadRunner在一段延迟之后开始执行方
案。您可以指定让LoadRunner自发出Run命令以来等待的分钟数,也可以指定让方案开始的特定时间。
设置相同的时间加载一定的用户数量,直到全部加载完毕为止,这样设置的目的是为了方便记录用户数量明显增大时,性能指标的变化情况。
b.“方案脚本”窗格列出了所有启用和禁用的Vuser脚本、脚本路径、负载生成器
计算机以及分配给每个脚本的Vuser在总数中所占的百分比。
4.预设计方案输出窗口,监视vuser状态。需要加进你想要的性能指标图表
七.执行方案
开始执行方案,保存执行方案的结果。方案将会持续你所设计的时间限制,也可以在中途手工停止或某些条件下停止。
八.监视方案
1.运行时和事务监视
a.正在运行的用户数,已加载时间,每秒点击次数(表明每个Vuser所运行的每一秒钟内对测试的网站有多少次点击(HTTP请求)),通过的事务数,失败的事务数,错误数(点击后可看到具体的错误日志)。
b.事务监视图
事务响应时间
每秒事务数(通过)
每秒事务数(失败、停止)
每秒事务总数(通过)
2.Web资源
每秒点击次数图:每秒点击次数图将点击(HTTP请求)Web服务器的次数显示为方案已用时间的函数。可将此图与事务响应时间图进行比较,以查看点击次数对事务性能产生的影响。
吞吐量图:吞吐量图显示Web服务器在方案运行的每一秒中的吞吐量。吞吐量的度量单位是字节,表示