這一節講loadunner 關聯的問題,其實這個東西了解起來簡單,但說起來比較麻煩。
關聯的原理:
先來模拟一個場景,我去坐火車,坐火車要先檢票,檢票員核對火車票的時間、班次等資訊正确後允許我坐火車。
過了幾天,我又拿着一張票去坐火車,檢票員再一次核對火車票資訊,發現這張票過期了,肯定不讓我坐了。那我怎麼才能坐火車呢?我先看看旁邊那哥們的火車票上的資訊,然後把自己的查票塗改成和他一模一樣再去坐火車。
下面詳細來分析一下錄制與回放的過程
錄制過程:
1、輸入使用者名密碼登入
2、伺服器端傳回一個sesiionid@@@12345
3、用戶端拿着獲得sesiionid@@@12345進一步請求伺服器資訊。
4、伺服器傳回用戶端想要的資訊
回放過程:
2、用戶端傳回新的sesiionid@@@23456
3、因為腳本中的sesiionid@@@12345 是寫死的,是以我們會依然拿着老的sesiionid@@@12345去向伺服器請求資訊
4、伺服器你經過驗證發現你的sesiionid@@@12345 是錯誤的。
為了確定腳本回放的成功,我們需要獲得伺服器每次傳回的動态的sesiionid,再将這個動态資料發回給伺服器。而關聯能夠幫助我們将伺服器傳回的資料進行處理并儲存為參數。
ok!通過上面的分析,我們大概明白的關聯的原理,下面要解決的問題就是如何設定關聯。關聯的三種方法:
● 自動關聯
● 手動關聯
● 一邊錄制一邊關聯
自動關聯
在錄制腳本之後打開recording options 視窗,點選correlation标簽頁。確定enable correlation during recording 選項處于勾選狀态。
在loadrunner 自帶webtours為例設定關聯,
通路webtours首頁,點選administration 連結,設定 set login form's action tag to an error page.勾選更新。
錄制webtours登入與退出腳本:
action()
{
web_url("webtours",
"url=http://127.0.0.1:2080/webtours/",
"resource=0",
"reccontenttype=text/html",
"referer=",
"snapshot=t1.inf",
"mode=html",
last);
web_url("favicon.ico",
"url=http://127.0.0.1:2080/favicon.ico",
"resource=1",
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",
itemdata,
"name=usersession", "value=110381.833940867fzhhhzfpfidddddddtazzpfqdf", enditem,
"name=username", "value=test", enditem,
"name=password", "value=123456", enditem,
"name=jsformsubmit", "value=on", enditem,
web_submit_data("login.pl_2",
"snapshot=t2.inf",
"name=login.x", "value=52", enditem,
"name=login.y", "value=1", enditem,
web_image("signoff button",
"alt=signoff button",
"snapshot=t3.inf",
return 0;
}
回放腳本出錯:
選擇菜單欄vuser ---> scan script for correlations (快捷鍵ctrl + f8 )彈出下面視窗
掃描相關性可能需要幾分鐘,你想繼續麼? 當然,點選“yes”
選中需要關聯的内容,點選“ remove correlation ”
====================================分割線================================
最新内容請見作者的github頁:http://qaseven.github.io/