关联的含义:
如浏览器打发送一个网页A请求,服务器返回这个请求,并且在返回的内容中携带一个session id=key,当浏览器再送出网页B的请求时,这时就要用ID=key的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。而我们使用loadrunner进行回放时情景,浏览器再送出网页B的请求时,用的还是当初录制的ID=key的数据,而不是用服务器新给的ID,这样就没有办法建立通信,,因为每个请求,服务器都会返回新内容,而客户端也应该获取到新内容,才能和服务端进行匹配,不然执行脚本失败
解决方案:
获取每次请求变化的seesionid,获取最新的服务端session id
现在我使用loadrunner12 中自带的的“飞机购票” 进行获取动态关联
其实手动关联,总结,就是自动关联找不到的内容,或者是你自己想要的自定义内容,使用函数web_reg_save_param_ex("ParamName=text", "LB=<B>sign ", "RB=now</B>", LAST);将想要的内容存到一个lr变量中,给后面的任何值做替换使用。
1.获取登录的session
点击登录时,查看源,找到变化的seesion id
我们发现我们现在使用userSession 是一个变化的东西(为什么知道会变化,你重新打开页面对比他的value值就知道了)那我们就需要获取这个变化值,如何获取
关联函数
web_reg_save_param_ex
参数:
ParamName=“项目名” LB=userSession" value=" (Lb就代表变化值左边的参数,注意符号要进行转义) RB=>"(就是变化值右边的参数)
2.代码实现
Action() { //关联内容 web_reg_save_param_ex("ParamName=userSession", "LB=userSession" value=","RB=>",LAST); //打开页面的url web_url("index.htm", "URL=http://127.0.0.1:1080/WebTours/index.htm", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); //打印关联的内容 lr_output_message(lr_eval_string("{userSession}")); return 0; }
3.结果展示
在运行一次看获取结果,同样获取了变化的值
关联的参数就获取了