摘要:Loadrunner是一种很好的性能测试工具,它通过对创建Vuser脚本、定义场景、运行场景、分析结果四大模块来进行性能负载测试。
在回放脚本时有时会出现运行不成功的情况,有可能是因为之前所录制的参数与现实的不一致的原因,比如说Session不一致的情况。这种情况下可以利用关联来解决
关联:客户端需要从服务端返回的数据中获取部分数据,并将这部分数据处理后作为自己下一次请求的一部分发出
session:
1、客户端发送请求登陆页面
2、服务器返回登陆页面及会话ID即SessionID
3、客户端再次发送请求时把SessionID作为标识一起发出
自动关联:
1、在回放失败页上点击“Show and resolve dynamic server values”
2、接上一操作,选择Correlation Results中的Action进行Correlation
手动关联:
主要操作步骤:
1、 “找到需要关联的字符串及其详细信息”
2、 “添加 web_reg_save_param_* 函数”
3、 “使用参数替换数据”
具体操作实例:HP Loadrunner自带HP Web Tours网站关联会话ID问题
1、设置录制脚本为所有request和response:Tools->Reording Options->Recording->URL-based script
2、录制两次脚本,使用WDiff进行比较,即在第二次录制后,选择:Tools->Compare with script,选择第一次所保存的脚本
WDiff 中显示的小黄条即两次脚本不一致的地方,小黄条中的红色即具体不同的地方(PS,如果没有看到红色标识可以选择:Options->View->Show Inline Differences)
3、复制当前脚本与原脚本不一致的地方,回到Generation Log中查找,看是哪一个response返回这个不一致的值,再记录此值出现在response的位置和前后值,查找是哪个request引起返回
4、单击“View Script”,在3中查找到的函数前增加关联注册函数,在请求函数后的响应中查找所需要的值
如下如示,Session为参数名,LR为响应中参数值的左值,RB为响应中参数值的右值,Search=Body表示参数值在Response中的位置是在Body中
web_reg_save_param("Session", "LB=value=", "RB=>", "Search=Body", LAST);
5、把脚本中所用到此参数值的数据进行修改:
如下图中的:{Session}
web_submit_data("login.pl", "Action=http://localhost:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://localhost:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={Session}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, LAST);
再次运行,正常运行喽!