徐芳
(浙江機電職業技術學院 浙江 杭州 310053)
LoadRunner測試工具教學存在問題及解決方法
徐芳
(浙江機電職業技術學院 浙江 杭州 310053)
LoadRunner作為業內主流的負載測試工具在軟件測試教學中被大量采用,同時在實際的項目性能測試中也被廣泛使用。本文主要對高職院校現有軟件自動化測試工具教學中存在的一些問題進行分析,并有針對性地提出了可操作的解決方案,以自動化測試工具為載體,可以有效開展性能測試教學。
LoadRunner;測試工具;問題;解決方法
隨著我國信息產業的發展,產品的質量控制和質量管理將成為企業生存與發展的核心。一方面,企業對高質量的測試人才需求量逐步增加;另一方面,軟件測試人才相對缺乏。近幾年高職院校針對市場對人才的實際需要開設了軟件測試相關課程,加大了對軟件測試人才的培養力度。
在高職院校軟件測試課程教學中,一般主要側重三個方面:軟件測試的基本概念和流程、常用的利用黑盒白盒等方法進行測試用例設計、一些主流測試工具的使用。而目前隨著網絡應用系統的廣泛應用,軟件系統對性能的要求越來越高,因此在很多實際項目應用中,性能測試被擺到越來越重要的位置,而性能測試比較功能等測試對測試人員有更高的要求。在讓學生更好地掌握性能測試方法并在實際項目中靈活運用這方面,軟件測試課程教學相對比較薄弱。
由于在實際的軟件測試中性能測試占據越來越重要的地位,因此一般在高職的軟件測試教學中都會涉及性能測試,目前高職軟件測試教學中多通過讓學生操作自動化測試工具來開展性能測試,如常用的HP公司的LoadRunner,它是HP公司的一款預測系統行為和性能的工業標準級負載測試工具,它能通過模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題。目前,大部分院校的教學重點放在教學生如何使用操作工具,而筆者通過幾年的教學實踐發現存在以下一些問題:(1)學生能利用工具進行功能操作,但對測試腳本不理解,無法進行基本的修改,以適應測試需求;(2)學生知道一些基本概念,但不能在實際測試中合理運用;(3)調試能力弱,不能較好地解決測試中遇到的基本問題;(4)缺乏對性能測試的總體和直觀的認識,學生學習起來存在困難。
在實際教學中如何把握教學重點和難點,讓學生真正對性能測試有所認識,并能進行實際應用,而不是單純學習工具的操作方法,這是教學中亟須解決的主要問題。
LoadRunner性能測試操作流程如圖1所示。LoadRunner軟件提供工具錄制并生成測試腳本,測試人員通過設置并運行場景,最后通過收集的數據評價系統性能。在教學中一般會讓學生學習這三個部分的操作,例如通過VGen錄制并編輯腳本,利用Controller按照要求設置不同運行場景,最后通過Analysis生成并分析測試結果。整個流程學生都能夠通過鼠標點擊操作完成,但這對于性能測試是遠遠不夠的,在教學中需要在以下幾方面進行重點強化。
(一)理解基本函數,讀懂測試腳本
LoadRunner能夠通過錄制的方式自動生成測試腳本,因此學生感覺比較簡單。此外,編輯腳本中插入事務、集合點,參數化輸入的操作也都可通過鼠標點擊來一步步完成,但面對一段段自動生成的測試腳本,應該在哪里定義事務?集合點設在哪里比較合適?哪些數據需要參數化?學生往往無所適從。

圖1 LoadRunner性能測試流程圖
因此,讀懂測試腳本非常重要,面對LoadRunner大量的函數,要幫助學生理解基本常用函數的用法,在基于B/S結構的系統測試中主要包括以下函數,在教學中要求學生重點掌握這些函數的用法,理解函數結構。
1.web_url()
2.web_link()
3.web_submit_form()
4.web_submit_data()
5.web_add_cookie()
6.lr_think_time()
7.web_find()
8.web_reg_fing()
9.web_reg_save_param()
(二)整合軟件功能,設計教學案例
在LoadRunner軟件教學中一些基本的概念和設置是學生必須掌握的,主要包括事務及事務的響應時間、集合點、數據參數化、檢查點和關聯設置等,通過鼠標點擊能夠快速地進行事務、集合點等設置,但如何讓學生理解這些功能的靈活應用是教學中的重點和難點。通過教學實踐,采取場景教學法可以有效幫助學生快速理解這些功能的實際應用。例如,在檢查點功能的教學中,我們設計了7個教學案例,把軟件的基本功能進行了整合,讓學生充分理解這些功能的實際應用。
通過案例一(見圖2)的教學和實踐,學生能夠發現問題:回放腳本時用了與以前一樣的注冊信息,為何沒有提示任何錯誤,顯示腳本運行“PASS”呢?該場景運行可讓學生學習VuGen怎樣區分腳本是否回放正確。一般情況下腳本回放錯誤都是頁面無法找到,而只要頁面返回了,VuGen都不會提示任何錯誤,仍會顯示為PASS狀態,這并不能說明腳本完成了相關操作,而只能說明服務器端正確接收到了客戶端的請求并且返回了相應的數據,但并不代表操作在邏輯上是正確的。通過該測試場景我們了解到VuGen不會判斷注冊失敗的錯誤,這就需要通過增加檢查點來判斷操作是否真正成功。
通過案例二(見圖3)的教學和實踐,學生能夠理解通過檢查點函數的執行,測試腳本能夠自動檢測返回頁面上的信息,并給出檢測結果。
通過案例三(見圖4)的教學和實踐,學生能夠理解參數化在實際測試中的應用,通過參數化選取不同的用戶注冊信息,測試腳本能順利通過檢查點,自動完成多用戶注冊。
案例四(見圖5)和案例五(見圖6)需要進行對比教學,主要幫助學生理解在真實的項目測試中如何獲得正確的事務響應時間。
案例六(見圖7)和案例七(見圖8)主要讓學生理解關聯的作用已經應用場合及方法。

圖2 案例一

圖3 案例二

圖4 案例三

圖5 案例四

圖6 案例五

圖7 案例六

圖8 案例七
在進行性能測試中經常需要度量用戶完成一個操作需要多少時間,而通過案例四我們能夠知道測試腳本執行并沒有真正通過,此時事務時間的統計存在錯誤,并不是真實用戶注冊的事務響應時間。案例五設計的目的在于讓學生理解實際測試中在絕大多數情況下對于事務都需要采用手工事務的方式來確保事務的正確性和事務時間的有效性。
同樣,在Controller操作的教學中也可以設計幾個不同的測試場景,把需要講授的內容進行整合,讓學生在實際應用中學習軟件的主要功能。
場景一:手工場景設置方式,兩組虛擬用戶,運行在本地負載機,負載逐漸加載,持續一段時間后虛擬用戶逐漸減壓。該場景點擊執行后立即執行。
場景二:手工場景設置方式,兩組虛擬用戶,一組在本地負載機運行,負載同時加壓,腳本運行完結束;一組在遠程負載機運行,負載逐漸增加,持續一段時間后負載同時停止。該場景點擊執行后過一段時間執行。
場景三:手工場景百分比模式設置方式,兩組虛擬用戶,運行在本地負載機,逐步增加負載,持續一段時間后逐步降低負載,再次逐步增加負載,持續一段時間后,同時停止所有負載。該場景設定為某年某月具體時間開始執行。
場景四:創建目標場景模式,選取虛擬用戶數目標設定。
通過以上四個場景的教學,讓學生在應用中學習虛擬用戶組、負載機、用戶行為、測試場景等概念及操作設置。
(三)利用四步調試,明確問題定位
學生在開始學習LoadRunner時經常會遇到錄制的腳本在試用中出現問題,在教學中可對腳本的運行設計以下四個步驟,幫助學生快速定位腳本問題:
(1)確認在VU里SUSI(單用戶單循環次數single user& single iteration);
(2)確認在VU里SUMI(單用戶多循環次數single user& multi iteration);
(3)確認在controller中MUSI(多用戶單循環次數multi user&single iteration);
(4)確認在controller中MUMI(多用戶多循環次數 multi user&multi iteration)。
第一步驟是驗證腳本編寫正確與否,尤其是學生進行了事務、集合點等操作后,腳本經常容易存在錯誤;第二步驟可以驗證數據池是否正常運作;第三步驟驗證并發功能;第四步驟是最終目的,驗證軟件系統的性能。
軟件工程中對軟件開發的種種行為都要制定一個proccess(過程),性能測試也是如此,按照過程來調試腳本和場景,能及早發現問題和定位問題。
(四)搭建測試環境,理解性能測試
在進行LoadRunner測試軟件教學中,測試環境的搭建對學生理解性能測試非常重要。
目前應用比較廣泛的網絡客戶/服務器軟件(也稱為B/S結構)的基本組成部分大致相同。最簡單的網絡軟件構成(見圖9),它的用戶端只是一個瀏覽器,服務器則只有網絡服務器。

圖9 網絡軟件構成圖
現在廣泛使用的商用網絡軟件中最常見的模型就是所謂三層體系結構,如圖10所示。
針對網絡軟件在進行性能測試時,測試的入口是客戶端,但關注的系統性能與網絡環境、服務器等密切相關,因為在利用LoadRunner進行性能測試時,必須要搭建測試環境,讓學生更好地理解測試結果的實際意義。在教學中可以按照圖11所示組建測試環境,每組學生利用二臺機器作為負載機,其中一臺同時作為控制器,讓學生理解單臺負載機有一定的負載上線,服務器可以根據實際設備情況采用一臺或二臺,把應用服務器與數據服務器進行分離。此外,在準備測試環境時,需要把原始環境進行備份,以便恢復,方便教學。

圖10 網絡軟件的三層體系結構圖

圖11 測試環境圖
只有在一定的測試環境下,LoadRunner提供的測試結果數據才有相應的意義,一方面,通過負載的變化,可以幫助學生理解LoadRunner收集的性能測試數據,如每秒事務數、每秒點擊數、事務平均響應時間、帶寬使用等情況。另一方面,通過搭建的環境,我們可以方便地監控服務器的各項性能指標,如服務器CPU、內存使用率、各個進程所使用的相關資源信息等,并在不同負載下對各個指標進行跟蹤對比,使學生對性能測試有直觀的認識。
(五)采用經驗公式,設計負載壓力
在LoadRunner軟件的教學中難點不在于工具的使用,而在于測試場景中的數據如何產生,如測試中并發用戶數為什么設為120,而不是300?如果對此沒有一定的認識,僅僅學習工具的操作使用,并不能很好地在實際項目中開展性能測試,因此在教學中需要加入相應的易理解可操作的內容。在教學中可采用經驗公式,讓學生有可操作的依據,也便于理解。例如,在設計并發測試時可以利用如下公式:

其中C:平均并發用戶數
n:login session的數量
L:login session的平均長度
T:考察的時間段長度
在教學中通過利用這些經驗公式,學生在實際場景設計中就有了可實施的具體方法,使性能測試具有實際意義。
[1]于涌.精通軟件性能測試與LoadRunner實戰[M].北京:人民郵電出版社,2010.
[2]趙艷玲.軟件開發中的需求獲取[J].現代電子技術,2007,(11):580-581.
[3]柳純錄,黃子河,陳淥萍.軟件評測師教程[M].北京:清華大學出版社,2005.
徐芳(1970—),女,上海市人,碩士,浙江機電職業技術學院高級工程師,主要從事計算機工程的教學與研究。
G712
A
1672-5727(2012)01-0104-03