性能测试工作指导性方案(LoadRunner 8)

上一篇 / 下一篇  2009-09-14 11:44:57 / 个人分类:性能测试

测试工作对于一般的软件项目来说必不可少的过程,按项目大小来看,小项目在测试的工作上比较容易忽视,只是由开发人员做一般的单元测试和最后上线前的系统测试,而对比较大的项目来说,测试工作是非常关键的流程,它可以直接影响到项目进度和上线质量,以及最终的验收与收款。

在工作中,我通过一些项目的经验来介绍一下我们在测试工作方面的想法,以供参考:[在此只简单列一个思路和提纲,以供讨论]

制定测试方案
了解测试对象
 明确对象的系统类型:
 B/S 选择web(html/htm)
 C/S 根据C/S结构所用到的后台数据库来选择不同的协议
 FTP/SMTP 对于没有数据库的c/s(ftp, SMTP)这些可以选择windows sockets协议

了解系统功能点:按功能的侧重点不同,来设计录制脚本的过程,如果重点功能,那么录制脚本时就要对参数设置更加详细,尽量符合实际生产场景,按测试要求来划分为:重点功能,瓶颈功能,薄弱环节
 系统的架构 了解系统结构才能明确系统的重点和要点,以及系统测试的主要关心的问题。让系统测试更有针对性。
 重点测试功能 是测试对象的重点,测试时间长,脚本设计复杂,需要进行集合测试,内容测试,错误处理,延时时间等复杂设计;
 瓶颈功能 是并发测试的重点对象,需要进行集合测试,并发不同类型的设计
 系统薄弱环节 测试系统容易出问题的地方,这些功能的测试结果将直接影响整个系统性能

了解系统受益对象情况:包括用户群数量,并发时间,并发特点,并发次数,
 分析用户群 根据用户数据来定义性能指标的最大负载,比如:访问高峰时用户数量的80%分析用户角色,
 并发时间 周期性并发的时间点,以及其它并发的时间点;并发的时间周期;
 并发类型 1,一起并发 2,快速渐进增长 3,缓慢渐进增长
 并发次数 完成一个访问周期的有规律性的并发次数
 突发性并发的情况;

了解系统性能参数:CPU/MEM/带宽/
 基本测试要求:支持最大人数,超时时间,CPU最大使用率,内存最大使用比等。
确定测试目标
 性能参数 性能要求
 时间要求 响应时间,进程完成时间,连续正常工作时间要求
 硬件性能要求 硬件指标有效围
 确定瓶颈和薄弱 发现新瓶颈和薄弱环节

设计测试用例和制定测试计划
 根据客户对系统的功能要求,界面需求,还有性能需求等参数来制定详细的测试方案,方案结合你了解的测试对象的情况,结合系统本身的指标要求和客户提出的需求,综合完成一个测试计划;
 方案中具备的内容:
1, 明确测试的目的
2, 说明系统基本情况和特点;
3, 明确测试的指标和需求;
4, 根据测试需求设计测试用例;
5, 根据测试用例录制测试脚本,设置集合点,设置变量,
6, 测试环境配置:IP设置,带宽设置,是否测试内容,事务设置,出错设置,集合点策略
7, 搭建测试场景,配置场景参数:VU生成器,测试组,VU数量等;
8, 保留测试结果,生成哪些标的报告。

LoadRunner®是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和

加速应用系统的发布周期。

录制前的准备
选择测试协议

 B/S系统:选择Web(Http/Html)
 C/S系统:根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是Sybase,则采用sybaseCTlib协议,如果是Sql server,则使用MS Sql server的协议,至于oracle 数据库系统,当然就使用oracle 2-tier协议
 对于没有数据库的c/s(ftp, SMTP)这些可以选择windows sockets协议
 至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可

脚本录制
录制原则
 脚本越小越好。就像写code一样的,不要太长,尽量做到一个功能(Transaction)一个脚本
 选择使用频率最高的。有些人喜欢在LR中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频率最高的、拿出来测试
 选择你所需要的进行录制。对于WEB的程序,对于你所关注的内容没什么影响的操作,你可以不录制,可以使用暂停,这需要试的, 对被测功能有一个清楚的认识和了解,要能把握住哪些地方是对整个过程没有影响的
录制脚本中的几个概念
事务:在action的开始和结束位置插入这样一个执行的范围,这就定义了一个事务(transaction),LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。
集合点:在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到指定人数,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到指定人数时,LoadRunner 命令这些指定人数同时去提交数据,并发访问的目的插入集合点是为了衡量在加重负载的情况下服务器的性能情况。
注意:集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。
具体的操作方法如下:在需要插入集合点的前面,通过菜单或者工具栏操作:输入该集合点的名称。
注意:集合点的名称最好要有意义,能够清楚的说明该集合点完成的动作。
脚本中集合点的代码:Ir_rendezvous(“SubmitQueryData”)
IP 欺骗:当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。每个Load Generator 上(同时)运行大量的虚拟用户(*不明白),这样就造成了大量的用户使用同一IP 同时访问一个网站的情况,这种情况和实际运行的情况不符,并且有一些网站会限制同一个IP 的登陆。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP 访问同一网站,这种技术称为“IP 欺骗”
contents check点:因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性.在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。

Correlation(关联):关联是用来解决脚本中存在的动态数据问题的,当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据,并作成参数。
脚本录制:LR的脚本是C语言代码,LR有自己的一整套函数接口,可以供外部调用,在VUGen里面敲Lr_就可以看到了。Web(Http/Html)脚本本身分INIT,ACTION,END三部分,各部分的解释:INIT部分可以理解为初始部分,ACTION可以理解为事务部分,也是测试的主体,END是退出结束。重复的时候,仅重复action部分。我们一般把登录部分放在init,退出放到end,只会执行一次,或者有的时候,各部分反复的次数不一样,分成多个action,可以单独设定反复次数。(如果需要在登陆操作设集合点,那么登陆操作也要放到Action 中,因为vuser_init 中不能添加集合点)
脚本的参数化:每次脚本被虚拟提交时,如果提交的参数被录制了,那么系统会有一些限制或不能达到预期的测试效果,所以把脚本中需要客户提交的参数的值预定义一些虚值,这样会更加真实反映模拟实际环境,达到预期的测试效果。
选择脚本中的value值,右键“Replace with a parameter”

怎样录制脚本
 打开菜单,或是新建图标;
 填入测试地址,以及ACTION名
 完成操作过程,停止录制;
插入text/image检查点
前面说到内容检查对测试具有的作用,在这里了解一下这个检查功能的设置方法;
 选择插入功能点:
 右键“insert after”
 添加一个文本检查功能;
 配置文本串和搜索条件;
 定义一个检查的名称
设置集合点
 选择插入集合点的位置,集合点设置必须在actiom里;
 定义集合点名称,必须描述清楚集合点的内容
 查看集合点状态;
 设置集合点策略;
 脚本运行的时候,在这里可以看到VU的状态;
添加虚拟IP操作
 打开IP wizard工具
 添加一个段的IP地址:
 描述并添加IP
 打开虚拟IP设置
创建测试场景
场景的类型
 Manual Scenario:该项要完全手动的设置场景,这项下面还可以设置为每一个脚本分配要运行的虚拟用户的百分比,可在Controller的Scenario菜单下设置。
 Goal—Oriented Scenario:如果你的测试计划是要达到某个性能指标,比如:每秒多少点击,每秒多少transactions,能到达多少VU,某个Transaction在某个范围VU(500-1000)内的反应时间等等,那么就可以使用面向目标的场景。
配置行运时环境
 带宽设置:模拟带宽环境,最大带宽,用户自定义,预选带宽
 杂项设置
 偏好属性设置
 模拟延时操作设置
创建一个场景
 选择手动方式创建场景,设置VU为1,本地生成VU,组名为SINA,结果目录设置
 编辑测试的进度表,点击“ edit schedule”
进度模式的设置
 Design:设计测试场景的静态部分,设置模拟用户生成器、模拟用户数量、 模拟用户组等。
 Run:设计测试的动态部分,主要指添加性能计数器,在脚本运行的过程中可以通过这些计数器反馈的数据。
添加测试策略
添加测试代理
 添加VU用户生成器,可以是本地,也可以是虚拟IP,或是其它客户端;
设置虚拟用户数
 为单个组设置VU数,并进行相关设置;
添加测试策略组
 测试场景:添加测试组,选择脚本,设置VU用户数,以及生成器来源;
行运场景,产生结果(LoaderRunner Controller)
 运动测试,显示用户在线信息,场景状态,可用的图表列表,常用图表(VU数,响应时间,点击数,系统状态)
 添加系统监视:
测试结果分析(LoaderRunner Analysis)
 分析总结报告
 虚拟用户运行状态图
 每秒点击数
 每秒字节吞吐量
 事务处理总结分析图
 分析事务的响应时间


TAG:

 

评分:0

我来说两句

日历

« 2024-05-09  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 7189
  • 日志数: 14
  • 建立时间: 2009-09-14
  • 更新时间: 2009-09-21

RSS订阅

Open Toolbar