loadrunner关于回放脚本时session失效的问题

在使用loadrunner录制脚本后,进行回放时,会出现session已经失效的情况,为解决这个问题,就应该将请求中的userSession进行参数化,使其自动获得当前的userSession,具体脚本如下:
在我们打开连接时,首先我们会向服务器发出一个访问的请求,服务器会返回我们所请求的页面,在返回的响应中,就包含了此次回话的userSession,
如图所示,我们这次会话的userSession就为133217.759335763zifcDiiptQfiDDDDtVVVtpDDAQHf
loadrunner关于回放脚本时session失效的问题_第1张图片

如此依赖,我们只需要将这串userSession拿到,再向服务器发送请求时,将这串userSession放在请求中,这样就不会出现session失效的情况了
这样的问题就是如何拿到这串userSession,我们可以用web_reg_save_param()函数,这个函数可以在返回的请求中查找到我们所需要的东西
web_reg_save_param(“usersession”,“LB=userSession” value=“”,“RB=”/>",LAST);
在这串代码中,usersession是我们给拿到的数据起的变量名,第二个参数LB和第三个参数RB分别是左边界和有右边界,这个函数可以返回LB与RB之间的数据,并将其赋值给usersession
loadrunner关于回放脚本时session失效的问题_第2张图片

当然,要注意使用转义字符
然后将登录脚本发送的请求中的对应的值替换成{usersession}就可以了
//打开连接脚本

open_index()
{
    web_reg_save_param("usersession","LB=userSession\" value=\"","RB=\"/>",LAST);
        
    web_url("welcome.pl", 
        "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?signOff=true", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/WebTours/index.htm", 
        "Snapshot=t1.inf", 
        "Mode=HTML", 
        LAST);

    return 0;
}

//登陆脚本

submit_login()
{
    lr_think_time(1);
    
    web_reg_find("Text=Welcome, {username}","saveCount=loginflag",LAST);
    
    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:1080/cgi-bin/login.pl", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", 
        "Snapshot=t2.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={usersession}", ENDITEM, 
        "Name=username", "Value={username}", ENDITEM, 
        "Name=password", "Value=123", ENDITEM, 
        "Name=login.x", "Value=60", ENDITEM, 
        "Name=login.y", "Value=12", ENDITEM, 
        "Name=JSFormSubmit", "Value=off", ENDITEM, 
        LAST);
    
    if(atoi(lr_eval_string("{loginflag}"))>0){
        lr_output_message("登陆成功,%s",lr_eval_string("{username}"));
        return 0;
    }
    else{
        lr_output_message("登陆失败,%s",lr_eval_string("{username}"));
        return -1;
    }
}

你可能感兴趣的:(性能测试,loadrunner,测试工具)