51Testing软件测试论坛

标题: LoadRunner 中事务 [打印本页]

作者: haooai    时间: 2009-11-20 15:39
标题: LoadRunner 中事务
LoadRunner 中事务就是一组函数,事务本身没有一个特定的意义,
这一组函数是:lr_start_transaction("test");和lr_end_transaction("test", LR_AUTO);这一组函数必须同时出现,
如果出现其中一个,
比如只有开始函数lr_start_transaction("test");没有lr_end_transaction("test", LR_AUTO);函数系统运行后会报错:Error: Vuser started transaction "test", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
同样的如果只有结束事务没有开始的事务函数报以下错误:Error: Failed to end Transaction "test" (by name). Please check that you made a call to start transaction operation.

跟事务相关的几个指标:

1)  TPS 每秒钟事务处理数,是指单位时间对于特定事务来说能够处理的个数;

2)  Response time 响应时间,这个也是根据不同事务统计的一个时间,是指完整这个事务所花费的时间。

    总结:在不同的工具中对于事务(transaction)的概念不是完全一样的,在LoadRunner中用户可以根据自己的要求来定义事务包含的内容,可以是一个交易也可以包含几个交易,同时对于事务可以对应相应得几个指标,比如TPS、事务平均响应时间等等
作者: haooai    时间: 2009-11-20 16:07
标题: 为什么要插入事务呢
事务又称为Transaction,在LoadRunner中的定义如下:An end-to-end(browser-to-browser) measurement of one or more user actions within action file。中文理解如下:事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这就定义了一个transaction。

事务的作用:LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在LoadRunner的运行结果中会有反映。通俗的讲LoadRunner中的事务就是一个计时标识,LoadRunner在运行过程中一旦发现事务的开始标识,就开始计时,一旦发现事务的结束表示,则计时结束,这个过程中得到的时间即为一个事务时间。通常事务时间所反映的是一个操作过程的响应时间。

下面我们说说为什么在LoadRunner中使用事务。为什么使用事务的原因是多种多样的,总结下来如下五点所示:

1、事务是LoadRunner度量系统性能指标的唯一手段;(没有事务则没有办法衡量系统的响应时间,也许有人说LoadRunner可以通过编程来计时得到,不错如果你编程能力够强是能够实现的,但肯定不如LoadRunner中的事务用的简单而且方便)

2、事务能够用于度量高风险业务流程的性能指标;

3、事务能够度量在一组操作中每一步的性能指标;

4、通过事务计时实现了不同压力负载下的性能指标对比;

5、通过事务计时可以帮助定位性能瓶颈;

从性能测试的 角度出发,我们需要知道不同的操作所花费的时间,这样我们就可以衡量不同的操作对被测系统所造成的影响,那么我们如何知道不同的操作所花费的时间,这就用 到了事务,我们在操作之前插入一个事务开始标识,在操作完成后插入一个事务结束表示,这样我们就知道了这个操作所花费的时间。

接着我们说说如何使用事务,以及事务应该应用在什么地方。

使用事务有如下几种方法:

1、方法一:脚本生成后,手动插入事务;方法:在LoadRunner脚本中点击鼠标:右键,选择“Insert”→“Start Transaction”弹出一个对话框,输入一个事务名字(注:事务名字可以为中文、可以为英文,也可以中英文混合,但推荐的做法是起一个容易理解的名称,例如想知道登录所花费的时间,则插入事务可以命名为login或登录);“Start Transaction”插入完成后,还需要插入一个“End Transaction”,用以标识事务结束;注:Start Transaction和End Transaction需要成对出现,如果仅插入Start Transaction则脚本编译会提示错误;此外,还可以通过LoadRunner vugen中的“Insert”菜单插入Start Transaction和End Transaction;

2、方法二:在脚本录制过程中插入Start Transaction和End Transaction;在脚本录制过程中,通过录制工具条上的Start Transaction和End Transaction图标插入事务,如下图所示:



3、方法三:通过Run-time Settings中的Automatic Transactions自动生成事务,如下图所示:



注:该种方法插入的事务仅能在LoadRunner Controller中的图表和报告中看到在脚本的log中看不到。

以上为事务的插入方法,无论是那种方法,插入事务后,我们都可以在脚本中看到如下两个函数:lr_start_transaction("事务")和 lr_end_transaction("事务", LR_AUTO),前一个为事务开始函数,后一个为事务结束函数,括号中引号中的内容为事务名称。
作者: ericzhou2009    时间: 2009-11-29 14:49

作者: kuangquanshui    时间: 2009-11-30 10:18
讲的很好
作者: 小贝流浪记    时间: 2009-11-30 10:59
不错,很详细  。
作者: zhuzhuzjq    时间: 2010-4-6 14:25
good!
作者: larkygirl    时间: 2010-4-6 18:35
标题: 很详细
很详细,把事务的作用,以及具体的操作都列出来了。
作者: 独一无二的昵称    时间: 2010-5-17 10:09
很好~~正好解决了我的问题,太谢谢了
作者: 玉簪花    时间: 2010-5-17 13:24
顶~
作者: Emliy    时间: 2010-5-17 20:09
Good,把事务给讲的很仔细,适合我这样初学的。
作者: msnshow    时间: 2010-5-17 20:39
一大篇文字,感觉有点把简单的东西说复杂了
作者: mr.bee    时间: 2010-5-17 21:50
没图哦。
作者: meih521    时间: 2010-5-18 10:53
讲的不错,支持!
作者: yanxia_0818    时间: 2010-5-19 15:20
讲的不错,支持!
作者: kobezah    时间: 2010-11-23 11:42
UP
对于这种基础知识普及性质的帖子,我灰常喜欢,收藏了
作者: l554050110    时间: 2011-6-17 18:13
喜欢
作者: l554050110    时间: 2011-6-17 18:13
非常喜欢
作者: 醉落魄    时间: 2011-10-17 14:11
强悍 我喜欢
作者: wfj01234    时间: 2011-11-4 16:13
讲的很好,也容易理解,顶!顶!
作者: shijin880921    时间: 2011-11-10 08:46
谢lz
作者: ymwang119    时间: 2011-11-10 09:02
不错,学习了
作者: liujie989423    时间: 2011-11-10 15:59
我收藏了
作者: meibaocai    时间: 2011-11-15 15:40
字好多
作者: xiaoyaoac    时间: 2012-1-18 17:52
讲的很详细啊




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2