首页 > 代码库 > LoadRunner使用技巧之添加事务
LoadRunner使用技巧之添加事务
事务(Transaction)用于模拟用户的一个相对完整的、有意义的业务操作过程,例如登录、查询、交易、转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务。
以刚刚过去的双11淘宝为例,对于淘宝来说更基本且用户使用最多的应用就是购物下单功能,我们可以拿购物下单看作一个事务:打开淘宝网页,搜索商品,下单。在做性能需求分析的时候也就是把系统的业务抽离出来,在性能脚本中用事务来描述。
我们在录制脚本的过程中,可以通过录制面板的事务按钮来添加事务:
现在以loadrunner 自带WebTours为例,操作步骤:
1、打WebTours首页
2、点击事务开始按钮,输入“登录”
3、输入用户名密码点击登录按钮
4、点击事务结束按钮,确定。(注意:事务的开始与结束的名称一定要一致)
脚本如下:
Action()
{
web_url("WebTours",
"URL=http://127.0.0.1:2080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
EXTRARES,
"Url=../favicon.ico", "Referer=", ENDITEM,
LAST);
lr_start_transaction("登陆"); //事务开始函数
web_submit_data("login.pl",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value=http://www.mamicode.com/110409.949777238fzHQcVVpHQVzzzzHDtAHfpcHAHf", ENDITEM,
"Name=username", "Value=http://www.mamicode.com/test", ENDITEM,
"Name=password", "Value=http://www.mamicode.com/123456", ENDITEM,
"Name=JSFormSubmit", "Value=http://www.mamicode.com/on", ENDITEM,
LAST);
web_submit_data("login.pl_2",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Snapshot=t4.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value=http://www.mamicode.com/110409.949777238fzHQcVVpHQVzzzzHDtAHfpcHAHf", ENDITEM,
"Name=username", "Value=http://www.mamicode.com/test", ENDITEM,
"Name=password", "Value=http://www.mamicode.com/123456", ENDITEM,
"Name=JSFormSubmit", "Value=http://www.mamicode.com/on", ENDITEM,
"Name=login.x", "Value=http://www.mamicode.com/51", ENDITEM,
"Name=login.y", "Value=http://www.mamicode.com/12", ENDITEM,
LAST);
lr_end_transaction("登陆",LR_AUTO); //事务结束函数
return 0;
}
查看运行结果:
Action.c(15): Notify: Transaction "登陆" started.
Action.c(17): web_submit_data("login.pl") was successful, 795 body bytes, 225 header bytes [MsgId: MMSG-26386]
Action.c(29): web_submit_data("login.pl_2") was successful, 795 body bytes, 225 header bytes [MsgId: MMSG-26386]
Action.c(45): Notify: Transaction "登陆" ended with "Pass" status (Duration: 0.5704 Wasted Time: 0.0152).
通过运行结果我们可以很清晰地看到本次事务是pass的,整个脚本的持续时间和事务的消耗时间等。
插入事务的方法:
插入事务操作可以在录制脚本过程中,也可以在录制结束后进行。可以在脚本中找到需要添加事务的部分,直接插入:
lr_start_transaction("事务");
.....
lr_end_transaction("事务",LR_AUTO);
注意:1、开始与结束函数必须成对出现
2、事务的名称必须一样。
当然,我们也可以将鼠标定位到要插入事务的位置,通过菜单栏来插入事务(insert--->start transaction/end transaction)
需要多加练习方可熟练掌握
LoadRunner使用技巧之添加事务