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中的检查点LR中检查点有两种:图片和文字。 常用检查点函数如下: 1)web_find()函数用于从 HTML 页中搜索指定的文本字符串2)web_reg_find()函数注册一个请求,以在下一个 *** 作函数(如 web_url)检索到的HTML网页上搜LR中检查点有两种:图片和文字。常用检查点函数如下:
1)web_find()函数用于从 HTML 页中搜索指定的文本字符串
2)web_reg_find()函数注册一个请求,以在下一个 *** 作函数(如 web_url)检索到的HTML网页上搜带斗索指定的文本字符串
3)web_image_check()函数用于从HTML页面慧行贺中查找指定的图片
4)web_global_verfication()属于注册函数,注册一个在web页面中搜索文本字符串的请求,与web_reg_find只在下一个Action函数中执行搜索不同的是它在之后所有的Action类函数中执行搜索指定的文本字符串
下面分别介绍以上函数的用法:
1、web_find()函数参数举例:
web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST)
参数解释:"web_find"定义该查找函数的名称“LeftOf”和“RighOf=”用来定义查找字符的左右边界“What=”定义查找内容
例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息
使用该函数注意事项:该函数是在查找页面中的内容,所以要放在要查找的内容的后面该函数只能在基前派于HTML模式录制的脚本中进行查找
注意事项:使用该函数时,要在Vuser->Run-Tme Settings中更改下设置
勾选Enable Image and text check
系统默认是不勾选该选项的。
2、web_reg_find()函数参数举例:
web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST)
参数解释: Search用来定义查找范围,SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到
例如上述参数举例中的意思就是Body中查找内容为aaa的信息,并将出现次数记录在变量ddd中
【代码一:web_reg_find("Text=Payment Details",LAST)
代码思路:1.“Payment Details” 为你要检查的文本
2. 脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去若没有找到,脚本将在此报错并且结束。】
【代码二:web_reg_find("Text=Payment Details", "SaveCount=para_count", LAST)//check 的函数
web_submit_form("reservations.pl_2", //要check的页面的录制时的代码
"Snapshot=t22.inf",
ITEMDATA,
"Name=outboundFlight", "Value=003006/23/2007", ENDITEM,
"Name=reserveFlights.x", "Value=61", ENDITEM,
"Name=reserveFlights.y", "Value=2", ENDITEM,
LAST)
if (atoi(lr_eval_string("{para_count}"))>0) //验证是否找到了页面上的要检查的字符串
lr_output_message("we find the string!")
else
lr_output_message("sorry,don't find the string!")
代码思路:1.“Payment Details” 为你要检查的文本
2. 脚本执行到此处,不管页面上是否存在你要检查的字符串,脚本都不会报错,而是执行下去。
3. 此段代码将找到的你要检查的字符串的个数,存为一个参数。 然后在页面代码的后面,通过检查这个参数的值是否大于0,来判断是否找到了你所要检查的字符串。】
【代码三:
A. web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST)或
B. web_reg_find("Text=Payment Detdils", "Fail=Found",LAST)
代码思路:
1.“Payment Details” 为你要检查的文本
2. 若是A代码:脚本执行到此处,若没有找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去。
3. 若是B代码:脚本执行到此处,若找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去】
使用该函数注意事项:该函数是在缓存中查找相应的内容,所以要放在查找内容之前通常情况下写在如下六个函数之前:Web_castom_request()web_image()web_link()web_submit_data()web_submit_form()web_url()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)