軟件壓力測試技術概述論文
摘 要:隨著軟件規模的不斷擴大和復雜程度的不斷提高,軟件產品面臨著大量的并發用戶和業務運算,因此軟件的性能越來越受到業內的重視。在這種情況下,為了驗證系統性能而執行的壓力測試變得尤為重要。本文對目前的研究熱點--軟件壓力測試技術進行了概述。
關鍵詞:軟件性能;壓力測試;自動化
1.軟件性能
壓力測試關注的對象是軟件的性能,所以首先介紹一下軟件性能的有關知識。一般來說,軟件性能是一種指標,表明軟件系統或構建對于其及時性要求的符合程度;同時,軟件性能也是軟件產品的一種特性,可以用時間來度量。軟件性能的及時性用軟件的響應時間或吞吐量來衡量。軟件的響應時間是指軟件產品從收到請求到響應請求所需要的時間。
在實際軟件項目中,不同的角色對軟件性能的關注是不同的。從軟件產品用戶的角度來看,他們關注的是軟件產品處理請求的效率,也就是軟件的響應時間。從管理員的角度來看,他們不僅會關注軟件的響應時間,還會關注軟件產品運行時系統資源的使用狀態和系統的可擴展性。從產品開發人員的角度來看,他們關注的就更全面更深入了。他們除了會關注用戶和管理員關注的內容,還會關注對軟件性能不佳的原因和大量并發用戶同時訪問而引起的軟件故障。如何通過修改設計和代碼來消除系統的性能瓶頸也是他們所關注的。那么,正是由于不同角色對軟件性能有著不同的關注,壓力測試就應該為不同的角色提供可靠的測試結果,以便他們分析軟件性能。
2.壓力測試的概念
軟件系統的負載壓力是指系統在某種指定軟件、硬件及網絡環境下承受的流量,例如并發用戶數、持續運行時間、數據量等。其中并發用戶數是負載壓力的重要指標。
負載測試是通過逐步增加系統負載,測試系統性能的變化,并最終確定在滿足性能指標的情況下,系統所能承受的最大負載量的測試。其中還有一種特定類型的負載測試,它是通過逐步增加軟件系統的負載,測試系統性能的變化,并最終確定在什么負載條件下系統性能處于失效狀態,以此來獲得系統提供的最大服務級別。
并發性能測試通過逐漸增加并發用戶數負載,直到系統的瓶頸或者不能接收的狀態,綜合分析交易執行指標、資源監控指標等來確定系統并發性能的過程。并發性能測試是負載壓力測試的重要內容。
疲勞強度測試是指構建系統穩定運行情況下能夠支持的最大并發用戶數或者日常運行用戶數,使其在持續一段時間內執行業務,保證到達系統疲勞強度需求的業務量,通過綜合分析交易執行指標和資源監控指標,來確定系統在處理業務上的最大工作強度的過程。
大數據量測試包括針對系統存儲、傳輸、統計、查詢等業務進行的獨立數據量測試,以及結合壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試。
3.并發性能測試
系統的'并發性能是負載壓力性能的最主要的組成部分。目前廣泛應用的網上購物系統、在線訂票系統、資源查詢統計系統等系統,都存在著大量用戶同時訪問這樣的并發操作。這些并發操作可能會暴露軟件系統在設計和開發時的缺陷,這些缺陷會使系統網絡性能降低,加劇服務器資源互斥訪問沖突,造成應用層程序和數據庫表單的死鎖等等,給系統帶來不同程度的破壞,給用戶帶來經濟損失。因此,為了保證系統的性能可靠,實施有效的并發性能測試是非常重要的。并發性能測試是從客戶端性能、網絡性能、服務器性能三個方面去進行測試和監測的。下面將分別介紹這三個方面。
應用在客戶端的性能測試主要是采用負載壓力測試工具模擬大量并發用戶訪問被測系統,執行不同業務操作,來達到實施負載壓力的目的。測試系統通常包括一臺主控機、多臺壓力生成器和被測服務器,各部分采用系統要求的網絡類型連接。主控機負責管理壓力生成器,同步時間,部署測試腳本和收集測試結果,在整個測試系統中有且僅有一臺主控機。壓力生成器負責通過多線程的方式來模擬虛擬用戶(VU)向被測系統施加壓力,在測試系統中可以有多臺壓力生成器。
應用在網絡上的性能測試主要是對網絡應用性能的監控和應用網絡故障的分析,可以為性能優化、帶寬需求確定、應用程序和網絡故障的定位等方面提供依據。其監控系統是由探針主控機和探針機組成。探針主控機主要用于配置管理探針,同步探針機時間,收集并處理監測數據,并且提供監測數據的展示平臺,在整個監控系統中有且僅有一臺探針主控機。探針分布在被測系統的整個應用網絡環境中,采集并存儲相應的數據,在監控系統中可以有多臺探針機。
應用在服務器上的性能測試主要是對被測系統服務器的操作系統、數據庫、中間件等組成部分進行監控。目前常用的操作系統、數據庫和中間件自身都提供了良好的監控工具,測試者可以適時地收集需要的信息。
四、壓力測試自動化
壓力測試可以采取手工測試和利用自動化工具測試兩種方式。采用手工測試不僅需要大量的測試人員和機器設備,還要考慮同步操作和對被測系統的同步監控的問題,所以執行起來有一定的局限性,測試結果不一定能夠有效地為系統調優提供服務,而且還會耗費巨大的人力和物力。相比之下,在壓力測試中采用自動化測試工具能更快捷地解決問題。自動化測試工具可以在一臺或多臺機器上模擬成百上千的用戶同時執行業務操作的場景,并可以很好地同步用戶的執行時間,進行有效的實時監測。因此越來越多的壓力測試項目中都用到了自動化的測試工具,自動化測試工具也在壓力測試多方面的要求中得到了發展和改良。
目前,利用自動化測試工具進行壓力測試是壓力測試發展的主流趨勢。在實際的測試項目實施中,大都使用三類自動化測試工具,它們分別是商業化壓力測試工具、開源壓力測試工具和自主研發的壓力測試工具。.
商業化壓力測試工具適用范圍廣,大都經過全面的檢測,測試系統本身比較穩定,測試結果比較準確,在業界能得到大多數人的認可,并且還有廠商的技術支持和版本升級服務。但是商業化的壓力測試工具一般價格都比較昂貴,適用于大規模的、長期性的、專業標準要求高的測試項目。現在常用的商業化壓力測試軟件主要有 HP LoadRunne、 Borland SilkPerformer等,它們都是業內優秀的性能測試軟件。
開源壓力測試工具一般都是免費的,用戶可以在不侵犯任何專利權和著作權的情況下訪問、修改測試工具的源代碼。目前常用的開源壓力測試軟件主要有 Apache JMester、opensTA等。 ApacheJMester是一個完全用Java編寫的壓力測試軟件,用于負載測試和性能度量,最初它適用于Web應用測試,
目前己經擴展到其他的測試領域。openSTA是一個基于CORBA的分布式軟件測試架構。WebLOAD是一個由Radview軟件支持的開源的負載壓生成引擎。
自主研發的壓力測試工具是測試開發人員根據被測系統的特點而開發的,適用于被測系統的測試工具。商業化的測試工具和開源的測試工具雖然比較通用,但是也有其局限性,比如說對一些協議、腳本、控件等兼容性不好,在一些性能點上缺乏監測,模擬負載的情況不夠理想,性能監測定位不夠準確。所以很多測試工程師不得不去編寫一些適用于實際測試項目的程序和工具。在設計和實現壓力測試工具時,主要的難點是模擬用戶操作、控制并發訪問和設置監測點。
參考文獻:
[l]段念.軟件性能測試過程詳解與案例剖析[M].北京:清華大學出版社,2006.
[2]柳純錄.軟件評測師教程〔MJ.北京:清華大學出版社,2005.
【軟件壓力測試技術概述論文】相關文章:
軟件測試技術與管理方法探討的論文05-31
五年高職軟件技術軟件測試課程設置論文12-12
軟件測試技術就業前景01-13
軟件測試課程的建構的論文05-30
軟件測試課程的建構論文12-10
軟件工程數據挖掘開發測試技術論文05-30
USB On-The-Go 技術概述論文12-22
軟件測試專業論文致謝范文05-13
航空設備的測試性設計和驗證技術概述10-03