張艷華


摘要:文章根據用戶的性能需求設計測試用例,借助LoadRunner錄制測試腳本并對腳本進行相應的二次開發,設計合適的場景并對場景進行合理配置,模擬多用戶對網絡考試系統的并發操作,最后對測試運行結果進行分析,得出系統性能指標的滿足情況以及系統的瓶頸。
關鍵詞:LoadRunner;腳本;性能測試
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)21-0106-03
開放科學(資源服務)標識碼(OSID):
Abstract: This paper designs test cases according to user's performance requirements, records test scripts with LoadRunner and redevelops the scripts accordingly, designs appropriate scenarios and configures them reasonably, simulates the concurrent operation of multi-user network test system, and finally analyses the test results, obtains the system performance indicators and system bottlenecks.
Key words: LoadRunner; scripts; performance
1 引言
軟件的質量是軟件的生命,它直接影響軟件的使用與維護。ISO/IEC9126中規定了軟件的6個質量特性,即功能性、可靠性、易用性、效率性、維護性和可移植性。其中軟件可靠性的測試與軟件性能測試關系密切,一般也是通過性能測試的方法來完成系統可靠性測試工作[1]。軟件測試要求以較少的測試用例、時間和人力找出軟件中潛在的各種錯誤和缺陷,以確保軟件的質量。軟件性能是與軟件功能相對應的一種非常重要的非功能特性,軟件性能從時間及時性及資源經濟性方面對系統提出了要求。對于一個具體的軟件系統來說,執行速度越快、占用系統資源越少,則軟件性能相對越好。隨著Web應用技術的發展,用戶對Web服務應用的質量要求更高[2]。
現代的基于Web的軟件網站數據量大業務量也大用途也更廣泛。Web 服務器可能在同一時間內會接受大量來自不同地域的數據請求,一旦Web 服務器崩潰,會造成巨大的損失,這就對網站的穩定性提出了要求[3]。本文針對開發的網絡考試系統進行性能測試研究,以LoadRunner作為測試工具對軟件進行壓力負載測試,對軟件性能進行驗證并及時發現系統瓶頸。
2 常用性能指標
常用的軟件性能測試指標有響應時間、最大并發用戶數、吞吐量、資源利用率等[1]。
響應時間:是對系統執行速度提出的性能要求,是用戶感受到的軟件系統為其服務所消耗的時間。
最大并發用戶數:定義了系統處理容量,是描述網絡系統的重要指標。是系統能夠同時處理的用戶請求的數目。
吞吐量:單位時間內系統處理的客戶請求數量,體現系統的整體處理能力。在制定吞吐量時需要考慮指標的選擇、功能的選擇、指標范圍的確定。常用的指標有RPS、TPS、PPS。
資源利用率:刻畫了系統使用過程中資源的占用情況,是反應系統執行狀態的最直觀的指標。服務器或操作系統性能的一些數據指標,在性能測試中發揮著監控和分析的重要作用。
3 軟件性能測試的目標
能力驗證、缺陷發現、能力規劃、性能調優為軟件性能測試的目標。
驗證軟件性能是否符合軟件需求文檔中的性能指標要求是軟件系統性能測試最主要的目標。軟件是否符合預定的設計目標,是否符合用戶現在或將來的應用要求稱之為性能符合性驗證即能力驗證。
缺陷發現性能測試的主要目的是通過性能測試的手段來發現系統中存在的缺陷,并不需要驗證性能指標是否滿足需求的要求。
能力規劃應用領域關心的是“應該如何使系統具有用戶要求的性能能力”或是“在某種可能發生的條件下,系統如何調整才能具有用戶要求的性能能力”。性能調優的前提是進行性能瓶頸定位,在性能測試工作中是一項難度非常大的工作。在性能測試過程中,如果發現了性能指標不合格,需要在眾多因素中進行逐步甄別。
4 性能測試流程
基于LoadRunner的性能測試的一般流程為:制定測試計劃->設計性能測試方案->錄制VU腳本->創建測試場景->執行性能測試->進行結果分析。
在制定測試計劃階段進行測試需求的收集、典型場景的確定;測試設計階段進行測試用例的設計;創建VU腳本階段根據設計的用例錄制操作腳本;創建測試場景階段需要按照測試設計方案進行測試場景的設置,包括用戶數量、并發策略、測試時長、監控指標等的設定;執行性能測試指將設定好的測試場景運行起來,收集測試數據;分析測試結果階段進行結果分析和報告的編制。
5 具體實現
5.1 明確性能測試需求
根據系統的特點需要驗證系統能夠支持20個用戶并發操作;登錄最大響應時間0.5S;系統峰時訪問下CPU利用率不超過40%,內存利用率不超過40%。
5.2 書寫測試用例
根據性能需求書寫測試用例,登錄測試用例如下。
5.3 測試環境搭建
考試系統的測試環境為:Windows7操作系統,MySQI數據庫,服務器為Tomcat7.0。
5.4 腳本錄制與開發
首先啟動LoadRunner的Virtual User Generator選用http協議進行登錄測試腳本的錄制,錄制完腳本后對自動錄制的腳本進行二次開發。
添加事務:添加事務開始的標記Lr_start_transaction()及Lr_end_transaction()事務結束的標記。LoadRunner采集完成其定義的每個事務所花費的時間段,并在測試后在Analysis中進行統計分析。
添加檢查點:為檢查執行成功率系統在執行過程中需要明確判斷某個操作是否通過,在相應的位置插入檢查點函數Web_reg_find()并添加檢查點內容。
參數化:為了更加真實的模擬實際環境,需要在腳本中用參數取代常量值,將登錄用戶名及密碼參數化,并建立用戶名及密碼的測試數據文件。
集合點:用來模擬多用戶對系統的并發訪問,在腳本中相應位置插入集合點函數Rendezvous()。
思考時間:為了模擬真實的情況,添加思考時間函數。
5.5 場景設計及運行
錄制的測試腳本調試通過后,將其添加至Controller中創建場景,在Controller中有兩種測試場景分別是手動場景和面向目標場景。根據需求選用手動測試場景。在Controller中設置虛擬用戶的數量和行為方式,運行方式選擇Basic Schedule:每20秒增加2個虛擬用戶,增加至20個,持續運行5分鐘,然后每20秒遞減4個,減少至0個;添加監控的Windows資源CPU及內存,然后運行測試場景對系統產生壓力并監控相應的指標。
5.6 Analysis分析的結果
根據執行的場景,分析測試結果。
通過Analysis分析場景運行結果,可以發現登錄事務的最小響應時間為0.008,平均響應時間為0.034,最大響應時間為0.105,可以判斷登錄的系統的實際最大響應時間小于性能需求的最大響應時間,判斷系統滿足登錄的性能需求。
圖3是測試用例場景運行過程中的系統CPU使用情況,測試用例場景共運行兩次,通過兩次場景運行結果的交叉比較,可以發現在圖3中第一次運行結果中CPU使用率為17.312%,第二次運行結果中CPU使用率為37.251%,滿足系統峰時訪問下CPU利用率不超過40%的性能需求。圖4是測試用例場景運行過程中的系統內存使用情況。在圖4中第一次運行結果中內存使用率為49.78%,第二次運行結果中內存使用率為41.17%,不滿足系統峰時訪問下內存利用率不超過40%的性能需求。
5.7 系統瓶頸
從測試結果分析,系統滿足相應時間的請求,滿足峰時訪問CPU使用率低于40%的需求,但內存使用率略高于性能需求中的40%。因此判斷系統存在性能瓶頸,主要是占用資源較高,建議調優方案為重構代碼,及時釋放系統資源。
6 結語
本文是小型網絡考試系統的性能測試,首先設計了完整的測試及驗證方案,然后借助LoadRunner測試工具,錄制測試腳本并對腳本進行二次開發,選擇合適的場景模擬多用戶并發操作,最后收集并整理測試數據,對數據進行合理的組合與分析,最終得出系統性能測試的需求滿足情況及系統瓶頸。
參考文獻:
[1] 修佳鵬.軟件性能測試及工具應用[M].清華大學出版社,2014:1.
[2] Bozic J, Garn B, Kapsalis I, et al. Attack Pattern-Based Com?binatorial Testing with Constraints for Web Security Testing[C].IEEE International Conference on Software Quality, Reliability and Security. IEEE, 2015:207-212.
[3] Novak S, Stefanovi? D, Popovi? M, et al. Web based systemfor automatic testing[C]. IEEE International Workshop on Consumer Electronics. IEEE, 2017:30-31.
【通聯編輯:王力】