51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8726|回复: 44
打印 上一主题 下一主题

[原创] 学习loadrunner之一_事务

[复制链接]

该用户从未签到

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

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

事务:就是用户某一步或者某几步操作的集合。当我们需要通过某一步或是某几步操作从而衡量服务器的性能的时候,这时我们就把这些操作设置成一个事务,当事务开始执行的时候lr就开始计时当事务运行结束计时停止,执行事务的时间会在在最后的结果中显示出来。
实例:登录sina网站,把点击“天气”设置成一个事务,衡量服务器处理处理该事务的性能。
1,点击红色的录制按钮,输入URL开始录制。弹出sina的首页,点击file:///C:/DOCUME%7E1/%E5%88%98%E5%A9%A7/LOCALS%7E1/Temp/msohtml1/01/clip_image001.jpg设置事物的开始位置,这时弹出事务开始对话框要求输入事务的名称,一般来讲我们都会把事务名称命名为容理解的名字,此处我们命名为“天气”
file:///C:/DOCUME%7E1/%E5%88%98%E5%A9%A7/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg
点击OK完成事务的开始点设置。
2,在sina页面上点击“天气”的连接,出现天气页面
3,点击file:///C:/DOCUME%7E1/%E5%88%98%E5%A9%A7/LOCALS%7E1/Temp/msohtml1/01/clip_image003.jpg设置事务的结束点,这时弹出事务结束对话框
file:///C:/DOCUME%7E1/%E5%88%98%E5%A9%A7/LOCALS%7E1/Temp/msohtml1/01/clip_image004.jpg
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() );
       }
代码说明:这时一个得到stocklist的例子,程序中设置了异常检查来确保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。当脚本执行完后,查看EcecutionLog看到这样一条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使我们很直观的看到测试结果。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-3-14 00:34:08 | 只看该作者
发现图片都没有了,传一个附件好了.....sdlkfj2

学习loadrunner有一段时间了,今天想整理记录下来,能写出来也算是对自己的一种检验吧~。欢迎拍砖......

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-3-14 08:35:13 | 只看该作者
不错.顶一下.向大家介绍一个测试执行语句的新工具"infrared".大家可以搜索一下.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-3-14 08:43:49 | 只看该作者
向你学习。

infrared,是什么工具,好下吗??
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-3-14 09:28:29 | 只看该作者
总结的很好哦:)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-3-15 21:22:10 | 只看该作者
不错,顶
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-3-16 10:14:22 | 只看该作者
谢谢楼主


不过贴的好像是硬盘图把  -_-b
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-3-16 16:31:54 | 只看该作者
不错不错,对LR的研究开始深入了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-3-17 15:53:38 | 只看该作者
不错,支持这样的原创作品
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-5-28 15:58:16 | 只看该作者
谢谢楼主讲解
这几天忙测试真需要
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-5-29 14:20:22 | 只看该作者
thx
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-5-29 15:10:33 | 只看该作者
3q
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-5-30 16:12:19 | 只看该作者
非常感谢楼主共享~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-26 09:52
  • 签到天数: 165 天

    连续签到: 2 天

    [LV.7]测试师长

    14#
    发表于 2007-5-30 16:36:36 | 只看该作者
    向楼主学习,定期总结自己学到的东西!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-5-30 17:35:00 | 只看该作者
    想问下楼主,lr的帮助文档应该不是用户手册吧?
    我在用户手册里看到很少关于事务的介绍,更别说是举例子了
    那,在哪可以下载到楼主所说的帮助文档呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-5-30 19:18:03 | 只看该作者

    我下载不了

    为什么我下载不了啊????sdlkfj9 sdlkfj9 sdlkfj9
    系统给我提示:对不起,管理员设置了当您的综合技术指数低于 0 的下限时不能进行此操作,请返回。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-5-31 15:48:18 | 只看该作者
    TO:lotuskbl

    你多回帖发帖就可以下载了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-6-1 13:31:23 | 只看该作者
    谢谢freshman0216
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-6-5 15:28:07 | 只看该作者
    谢谢楼主,下来看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-6-5 18:01:02 | 只看该作者
    感谢!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-1 07:29 , Processed in 0.122822 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表