最近在與大家的讨論中發現了LoadRunner的很多問題,出于解決問題的出發點,我也就相關自己不了解的問題在Google中搜尋了一番,并通過一些執行個體也去實際操作了一遍,發現很多問題确實并不是那麼難解決,而隻是我們不夠細心,沒有認真去分析和總結。這裡簡單列舉我最近去研究的一個問題,就是關于LoadRunner在腳本回放日志中出現的Warning資訊,也就是所謂的警告資訊,通常我們可能覺得隻要在錄制回放過程中沒有報error就認為腳本是ok的,但是到真正去場景中去運作才發現,會不斷報錯,而且很多錯誤都覺得很摸不到頭腦,因為總會出現一些我們始料不及又難以了解的錯誤資訊,其實這個時候我們并是第一時間就去尋求幫助,去論壇發貼,因為你沒有到錯誤的根本,别人也很難幫你,如果說貼出腳本幫你調試,那估計有這個時間的人也不多,是以解決問題的方法很重要,這種方法最主要還是要靠自己來分析和總結,哪怕是最後沒有分析出什麼,也至少先去google一下,如果有解答最好,沒有解答,可能不是一般的問題,可能大家都沒有碰到,這就說明這個問題可能是由于我的操作的失誤等等。是以說解決問題應該先問自己,我分析了嗎?
我通過java寫了一個簡單的登入系統頁面,通過LR來錄制登入過程并生成腳本,設定了自動關聯,并回放錄制腳本,觀察回放日志發現沒有報error資訊,說明腳本沒有問題,将腳本放入Controller中設定100個使用者設定運作,發現運作一段時間開始報錯,這裡先不說報什麼錯,繼續觀察腳本,回到Vuser中調試,再次回訪觀察日志檔案,發現如下資訊:
Warning -27077: The "vuser_init" section contains web function(s) when the "Simulate a new user on each iteration" Run-Time Setting is ON. This may produce unpredictable results with multiple iterations [MsgId: MWAR-27077]
仔細分析發現這裡的警告資訊提示"Simulate a new user on each iteration",表示在每次疊代都模拟一個新的使用者,對于web登入系統來說,通常都是用session來儲存cookie資訊,而"Simulate a new user on each iteration"是LR中的一項預設設定,按照LR手冊來講,這個選項一般帶來的副作用并不十分明确。我們再來做另外一個執行個體,就是一個資料添加頁面,通過錄制腳本來添加資料,回放過程中也提示該資訊,沒有提示error資訊,将腳本放入Controller中運作,設定100個使用者,設定每個使用者疊代運作2次,按照計算來講就是添加200條記錄,開始運作,結果發現實際資料庫中隻新增了100條記錄,再回頭尋找原因發現腳本回放中的"Simulate a new user on each iteration",會不會跟這個有關系,根據了解,每次疊代模拟一個新使用者來運作,而且該設定在LR中預設,并預設也是情況緩存的,也就是說同時情況了session資訊,導緻每次都需要重新來建立新的session才能可以添加資料,在分析日志發現在循環疊代中有一個通路頁面timeout.jsp,從這裡可以發現是session逾時引起的,可以猜想在兩次疊代中肯定是清除了cookie。在LR中找到"Simulate a new user on each iteration"的設定區域,如下圖:
通過上圖發現LR預設就是設定勾選"Simulate a new user on each iteration"該選項,去掉勾選之後再回放腳本,觀察回放日志發現,Warning資訊已經消失了。
同樣将腳本放置Contoller中繼續之前設定,開始循環運作,結果會如期而至的。
通過兩個簡單的執行個體來說明LR中腳本調試的一些關注點,對于日志中警告資訊并不是沒有原因的,既然是警告資訊就總有可能遇到,不然系統也不會給出提示,當然在web測試中可能還是特别的多見,其實在做關聯的時候也經常有warning提示。如果大家做過用戶端軟體的壓力測試時,應該就比較熟悉warning了,通常一些用戶端軟體由于一些特定的協定,LR支援不太好,總會在錄制的腳本運作之後發現有丢包現象,但是不會以錯誤的形式來提示,而是在回放日志以warning來提示。
以上是個人在學習LR中的一點收獲,通過不斷總結,才會積累的更多,LoadRunner其實還是比較複雜的,如果簡單的問題都不能搞明白,後面的分析就更無從談起了。
本文轉自一米一陽光部落格園部落格,原文連結: http://www.cnblogs.com/candle806/archive/2011/01/06/1928969.html ,如需轉載請自行聯系原作者