
事务:
事务又称为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、通过事务计时可以帮助定位性能瓶颈
从性能测试的 角度出发,我们需要知道不同的 *** 作所花费的时间,这样我们就可以衡量不同的 *** 作对被测系统所造成的影响,那么我们如何知道不同的 *** 作所花费的时间,这就用 到了事务,我们在 *** 作之前插入一个事务开始标识,在 *** 作完成后插入一个事务结束表示,这样我们就知道了这个 *** 作所花费的时间。
一、Loadrunner中事务
LR度量的是客户端发送请求到服务器响应处理并返回的时间,看上去和响应时间没有差异,我在之前也都是这样认为的,但实质上事务和响应时间之间还是存在着一定的细微差异。
实际事务时间包括以下四个部分
第一部分:Wasted time,脚本录制过程中,自动插入所花费的时间;脚本录制后,手工编码输入执行所花费的时间。
第二部分:函数自身所消耗的时间,包括lr_start_transaction和lr_end_transaction
第三部分:Think Time,用于模拟用户思考的时间lr_think_time()
第四部分:响应时间 = 网络+服务器处理时间
注:在事务的时间计算中,会自动排除第一和第二种,第三部分是人为设置或是录制形成,只要做一下减法也可以排除,所以真正事务要度量的时间是第四部分,响应时间。
添加事务的方式
1、当对录制的脚本不是特别的熟悉时,可以选择录制时在工具栏添加事务,这样系统会在自动生成的脚本中插入事务函数
2、如果对脚本较为熟悉,可以选择在录制结束后添加事务
3、纯手工编码添加事务命令
补充:lr_end_transaction函数的int status有四种状态(根据状态去判断事务的执行情况)
LR_AUTO:自动根据规则来判断状态
LR_PASS:系统做了正确的事务,并且记录事务所执行的时间(响应时间)
LR_FAIL:事务失败,没有达到脚本应该有的效果(后期统计中将被独立统计)
LR_STOP:事务被停止
二、 Loadrunner中检查点
如何快速的知道一个脚本在回放时候是正确还是错误,在这里我们就要用到一个函数web_reg_find,通过它去设置检查点,自动在回放的脚本中搜索指定信息,如果找到则通过,如果找不到就是失败。
举个Demo,用LR自带的例子,在登录系统以后,设置检查点,查看系统会给出什么返回。
设置检查点的方式,在Page View视图中选择需要检查的文字,右键选择添加,如下:
如果页面中未出现检查点设置的文本或者图片,则出现错误信息
三、事务与检查点应运
首先录制一个登录的脚本,这里我们对业务熟悉,就直接使用手动插入事务的处理方法,通过鼠标右键,在需要插入事务的地方选择Insert->Start Transaction/End Transaction
插入事务后再次运行脚本,事务以Pass结束,持续时间为0.0556,浪费时间为0.0016s
说明:这里如果是录制时插入事务,那么生成的事务时间需要减去思考时间后,才是事务真正的响应时间。
在事务的脚本中,我们插入检查点,检查点插入的位置通常是放在事务的内部,这样便于理解检查点的作用,检查点函数自身消耗的时间会被事务自动排除。
如果脚本能正确进入Web Tour Welcome页面,那么执行成功,出现下面提示
【补充说明】:与事务相关的函数还包括以下五种:
lr_get_transaction_duration()//获得对应事务到达函数运行位置时持续的时间
lr_get_transaction_duration()//获得对应事务到达该函数运行位置时的waste时间
lr_get_transaction_duration()//为一个事务添加waste时间
lr_get_transaction_duration()//将一个事物暂停,该函数后面的 *** 作都不会被记入事务时间
lr_get_transaction_duration()//将暂停的事务恢复
loadrunner插入事物有2种方法 第一种比较简单,通过界面按钮即可增加 1、选择要插入的代码前,点击Insert进行选择start Transaction 2、在要结束的代码后面,点击Insert进行选择end Transaction欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)