软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>Mercury>>正文
学习loadrunner之一_事务
文章出处:51testing博客 作者:Erica 发布时间:2007-03-15

    Loadrunner是一款负载测试工具,它有三个核心组件分别是Virtual User GeneratorControllerAnalysisVirtual User Generator 可以通过录制脚本准确的记录下来用户的每一步操作并且可以进行集合点设置、事务设置、参数化等操作从而为在Controller中执行特定的场景做准备。Controller顾名思义,它可以控制脚本的执行,通过把脚本放置在一个特定的场景中,模拟一批真实用户的操作过程,这些模拟的真实用户就叫做虚拟用户。通过这些虚拟用户可以对系统进行负载测试。Analysis应该是测试人员极为关注的一个组件,通过Controller执行完某一个场景之后,Analysis可以自动生成测试结果并通过图形的形式显示出来,测试人员只有借助这些图表才能准确分析出系统的瓶颈并且确定性能是否达到要求。

    下面介绍一下如何进行集合点、检查点以及参数化的设置:

    对于集合点、检查点的设置有两种方法,一种是在录制完脚本以后,手工在脚本中添加相关的关键字例如lr_start_transaction等,这种方法对脚本语言的理解能力要求较高。另一种是直接在录制的过程中添加集合点、检查点,这样lr就会自动把集合点、检查点的关键字添加到脚本中。

    事务:就是用户某一步或者某几步操作的集合。当我们需要通过某一步或是某几步操作从而衡量服务器的性能的时候,这时我们就把这些操作设置成一个事务,当事务开始执行的时候lr就开始计时当事务运行结束计时停止,执行事务的时间会在在最后的结果中显示出来。

    实例:登录sina网站,把点击“天气”设置成一个事务,衡量服务器处理处理该事务的性能。

    1,点击红色的录制按钮,输入URL开始录制。弹出sina的首页,点击 <!--[if !vml]--><!--[endif]-->设置事物的开始位置,这时弹出事务开始对话框要求输入事务的名称,一般来讲我们都会把事务名称命名为容理解的名字,此处我们命名为“天气”

    点击OK完成事务的开始点设置。

    2,在sina页面上点击“天气”的连接,出现天气页面

    3,点击 <!--[if !vml]--><!--[endif]-->设置事务的结束点,这时弹出事务结束对话框

    lr根据匹配原则已经自动把事务名字一栏填入“天气”,我们只需要选择事务的状态。状态有三种LR_AUTO LR_PASS LR_FAIL LR_STOP

    LR_AUTO:事物的状态被自动设置,如果事务执行成功,状态设置为PASS,如果执行失败,状态设置为FAIL,如果由于异常中断,状态被设置成STOP.

    LR_PASS:事务如果执行成功,代码的返回状态就是PASS

    LR_FAIL:事务如果执行失败,代码的返回状态就是FAIL

    一般我们选择LR_AUTO 那么我们会有疑问什么时候我们选择PASS或者是FAIL呢?

    Lr的帮助文档中有一条例子,可以很好的帮助我们理解

lr.start_transaction("GetStocks");
try {

String stocks[];
stocks = orStockServer1.getStockList();
if (stocks.length == 0)

              throw new Exception("No stocks returned/available");
lr.end_transaction("GetStocks", lr.PASS);
}

catch (Exception e1) {

       lr.end_transaction("GetStocks", lr.FAIL);

       lr.message(" An exception occurred : " + e1.toString() );

       }

代码说明:这时一个得到stock list的例子,程序中设置了异常检查来确保getStockList()方法返回非零的长度。

 

同时我也进行了如下的脚本修改

………………

lr_start_transaction("天气");

    lr_think_time( 3 );

    web_add_cookie("mysinal=ai_erica; DOMAIN=weather.news.sina.com.cn");

    web_add_cookie("SINAGLOBAL=221.219.31.58.924471172571904604; DOMAIN=weather.news.sina.com.cn");

………………

lr_end_transaction("天气", LR_FAIL);

    在最后我把该事物的结束状态设置为FAIL,然后运行该脚本,其实该事物的运行是没有任何错误的,完全可以运行成功,只是在最后我把事务的状态手工设置为FAIL。当脚本执行完后,查看Ececution Log看到这样一条log语句:

    Action.c(297): Notify: Transaction "天气" ended with "Fail" status (Duration: 5.1436).

    那么这样做的意义是什么呢?为什么要设置事务结束状态呢?原因就是在Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是失败的。如果语句是这样:

    Action.c(297): Notify: Transaction "天气" ended with "Pass" status (Duration: 5.1436).

    Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是成功的。

    设置事务结束状态的用途就在这里。试想Lr为什么能自动生成结果图表?无非就是Analysis通过一些定义好的API获取执行脚本过程中的返回值,从而显示出事务执行的正确还是错误,或是显示出响应时间等信息,然后调用GUI使我们很直观的看到测试结果。

原始连接:http://blog.51testing.com/?44459/action_viewspace_itemid_4917.html


站内搜索
相关文章
◎《自动化测试工具介绍QTP篇》——新手必看
◎校验对象是否存在object.exist
◎QTP与回归测试
◎QTP中一些基础代码结构累积
◎QTP中MS SQL SERVER数据库连接的一种简单方法
◎Object Repository 的合并
◎Mercury LoadRunner 8.1 使用前必读三
◎Mercury LoadRunner 8.1 使用前必读二
◎Mercury LoadRunner 8.1 使用前必读一
◎我来谈谈WinRunner和QTP的区别
◎winrunner 永久注册成功秘笈
◎td的邮件服务器配置成功
◎LoadRunner下DLL的调用
◎关于"RPC server is unavailable"的解决方案
◎QTP中虚拟对象设置
◎TD中Case的复用
◎中英文操作系统切换导致的找不到对象的解决方法
◎利用Analysis 分析结果
◎文件/表参数的数据分配和更新方法
◎QTP描述性编程原理介绍
◎对象库的管理与合并
◎QTP的学习历程
◎LoadRunner学习——LoadRunner的安装
◎解决回放时浏览器乱码问题
◎TD与QTP连接
◎QTP中的描述性编程
◎测试结果报告知多少
◎QTP中设置共享对象库
◎设定时间让脚本自动运行
◎如何在QTP中使用IE以外浏览器录制和运行测试?
◎QTP中调用共享文件
◎如何使用qtp检查网页中显示的文字颜色为指定的颜色
◎LoadRunner使用虚拟IP测试流程
◎QTP中的步骤生成器
◎Robot GUI脚本操作SQL SERVER数据库
◎QTP脚本还可以这样写
◎对动态的weblist取得其name值
◎QTP中测试环境的初始化
◎QTP Recovery Scenario 简介
◎解决LR无法动态从数据库取值的方法
◎详解loadrunner的think time
◎QTP的登陆脚本设计
◎再论TD的数据迁移
◎关于IP欺骗的问题
◎LoadRunner与Winsock协议[翻译]
◎QTP的录制回放过程
◎LoadRunner函数介绍续
◎LoadRunner函数介绍
◎如何通过LoadRunner监控Linux和Unix操作系统的资源状况
◎专注于业务需求的自动化测试——Mercury Business Process Testing
热门文章
◎主流测试工具介绍(1)
◎Winrunner经验总结
◎主流测试工具介绍(2)
◎主流测试工具介绍(3)
◎Winrunner TSL命令简介(一)
◎WinRunner的问题整理
◎LoadRunner监视的性能计数器
◎四款主流测试工具的测试流程
◎Loadrunner中参数的设置
◎LoadRunner的一个解决方案
◎让LoadRunner走下神坛
◎WinRunner 脚本标准格式
◎LoadRunner简化国泰航空测试流程
◎WinRunner如何实现自动化测试
◎jboss tomcat weblogic websphere 性能对比测试
◎利用loadrunner测试ORACLE存储过程的性能
◎Winrunner TSL命令简介(四)
◎Winrunner TSL命令简介(二)
◎使用LoadRunner测试TUXEDO
◎TestDirector项目数据迁移完整过程
◎LoadRunner函数介绍
◎关于"RPC server is unavailable"的解决方案
◎Winrunner TSL命令简介(三)
◎使用Winrunner进行性能测试
◎WinRunner使用经验介绍
◎LoadRunner本机录制http协议程序遇到的问题以及解决方法
◎TD7.6 字段中英文对照表
◎Winrunner Context Sensitive命令列表
◎TD中Case的复用
◎MI测试工具介绍
◎对脚本的建议
◎QTP的登陆脚本设计
◎QTP的学习历程
◎如何用QTP解析PDF
◎QuickTestPro SP考试心得
◎loadruner报错:Step download timeout(120 seconds)的解决方法
◎LoadRunner学习——LoadRunner的安装
◎winsock协议错误编码解析
◎TD 7.x 升级到 TD 8.0 的一些经验(SQLSERVER 下)
◎高级测试管理的工具和技术
◎QuickTestPro中的快捷键
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎使用LoadRunner来测试BEATUXEDO (LoadRunner 7.6)
◎Mercury LoadRunner 8.1 使用前必读三
◎winsock的buffer简单解析
◎LoadRunner函数介绍续
◎何谓 Keyword-Driven Testing?
◎Mercury LoadRunner 8.1 使用前必读一
◎QTP的登陆脚本设计
◎使用LoadRunner来测试BEA TUXEDO(LoadRunner7.6)

Google提供的广告