LoadRunner检查点学习实例

LoadRunner只会检测脚本中事务的执行状态,而实际的事务执行结果则需要通过检查点来完成。

例如一个登录事务,LR只关心事务本身的执行状态,也就是说哪怕实际操作密码错误产生登录失败的业务操作,其事务本身也是执行成功

设置检查点,检测“登录”事务执行状态和是否登录成功

一则简单的登录脚本:

Action()
{ web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST); web_url("favicon.ico",
"URL=http://127.0.0.1:1080/favicon.ico",
"Resource=1",
"Referer=",
LAST); web_reg_find("Text=Error","SaveCount=ecc"); //插入检查点 web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=kkk001", ENDITEM,
"Name=password", "Value=123k001", ENDITEM, //错误的密码
"Name=login.x", "Value=33", ENDITEM,
"Name=login.y", "Value=1", ENDITEM,
LAST); if(atoi(lr_eval_string("{ecc}"))>)
lr_error_message("登录失败"); return ;
}

web_reg_find() 函数: "Text=Error", 表示要检查什么内容,例子中登录失败跳转的页面中会存在Error字符。 "SaveCount=ecc"表示当检测到符合检查规则的内容时,开始计数并将计数存入ecc参数内。

思路就是利用检查Error字符来判断是否真正登录成功,因此将密码故意改成错的。

看下回放日志:

LoadRunner检查点学习实例

从图中可以看到检查到Error字符,count=3

根据脚本中的判断逻辑,在运行结果中打印出消息
 if(atoi(lr_eval_string("{ecc}"))>0)
  lr_error_message("登录失败");

atoi: ASCII to Integer. 通过lr_eval_string将参数{ecc}的字符内容取出并转成数字型

结果中可以看到,虽然实际登录失败了,但作为登录事务本身是执行成功的。

上一篇:理解C#系列 / 核心C# / 变量


下一篇:【Python】 hash值计算 hashlib & hmac