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