軟件開發(fā)性能測試的準(zhǔn)備_第1頁
軟件開發(fā)性能測試的準(zhǔn)備_第2頁
軟件開發(fā)性能測試的準(zhǔn)備_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件開發(fā):性能測試的準(zhǔn)備由安博測試空間技術(shù)中心通過提供的一套全面的解決方案, 本文描述Quests Application Management Suite for Java and Portals是如何與該方法論相集成,從而在應(yīng)用開發(fā)生命周期的每個(gè)階段保證您的成功。運(yùn)用這套方法論和Quest的應(yīng)用管理解決方案,您將充滿信心地把符合性能規(guī)范的應(yīng)用展現(xiàn)給您的用戶。本文同時(shí)強(qiáng)調(diào)自動(dòng)化的重要性,采用自動(dòng)化方式可以創(chuàng)建重復(fù)的測試過程并迅速報(bào)告應(yīng)用代碼的質(zhì)量。只有自動(dòng)化方式才能保證正確地遵循這些測試過程,并且保證準(zhǔn)確和一致地測試應(yīng)用組件。導(dǎo)言性能測試已經(jīng)成為軟件開發(fā)開發(fā)開發(fā)開發(fā)開發(fā)界的一個(gè)事后總結(jié)出來的

2、想法。IDG 的研究報(bào)告指出只有20%的上線的企業(yè)Java 應(yīng)用符合他們的性能要求。如果所有上線的企業(yè)Java應(yīng)用中有80%不滿足他們的服務(wù)標(biāo)準(zhǔn)協(xié)議(SLAs),那么就需要花費(fèi)巨大努力去分析為什么會(huì)發(fā)生這種情況以及如何解決這種問題。要想成功滿足SLA,其關(guān)鍵在于應(yīng)該采用正規(guī)的性能測試方法論。本文將詳細(xì)闡述該方法論并且指出在每個(gè)測試階段所需使用的工具集,以成功確保企業(yè)應(yīng)用的性能。測試主要分兩類: 功能測試和性能測試。 本文專注于性能測試,因此本文中的所有提及的測試除非有另外說明,否則都指性能測試。性能測試的準(zhǔn)備一、量化性能需求為了量化性能要求,我們假設(shè)您已經(jīng)定義了SLA。在深入分析問題之后,關(guān)鍵

3、的負(fù)責(zé)人員應(yīng)該系統(tǒng)地定義SLA。SLA 的主要推動(dòng)者應(yīng)該是應(yīng)用業(yè)務(wù)負(fù)責(zé)人和應(yīng)用技術(shù)負(fù)責(zé)人。 應(yīng)用業(yè)務(wù)負(fù)責(zé)人,有時(shí)是應(yīng)用產(chǎn)品經(jīng)理,他負(fù)責(zé)分析商業(yè)案例并把客戶的需求轉(zhuǎn)化為SLA。其實(shí), 只要滿足SLA, 客戶的需求也會(huì)滿足。應(yīng)用技術(shù)負(fù)責(zé)人,有時(shí)是應(yīng)用構(gòu)架師,分析必要的技術(shù)需求,解釋用例并"真實(shí)地檢驗(yàn)"SLA。因此,技術(shù)業(yè)務(wù)負(fù)責(zé)人的責(zé)任就是確保服務(wù)等級是可達(dá)到的。有效的SLA具有三個(gè)關(guān)鍵特性:1.具體的。2.靈活的。3.現(xiàn)實(shí)的。一個(gè)有效的SLA 必須是一個(gè)具體的值。一個(gè)用例必須在大約五秒內(nèi)完成是不準(zhǔn)確的,因此很難檢驗(yàn)-5.25秒鐘是否是大約的五秒。一個(gè)具體的值便于QA在應(yīng)用上線前

4、進(jìn)行測試,當(dāng)應(yīng)用上線后,SLA將提供對主動(dòng)監(jiān)測和被動(dòng)監(jiān)測兩種警報(bào)(Alert)的規(guī)范。同時(shí),一個(gè)有效的SLA在分布式的變化環(huán)境中必須也是靈活的??紤]到一些未預(yù)料到的情況,我們需要對靈活性進(jìn)行測量,因此用例必須采用預(yù)先定義的時(shí)間百分比的方式滿足具體的SLA值。例如,您每天使用的常用搜索引擎。當(dāng)您執(zhí)行一次查尋,在95%的時(shí)間里可以在2秒內(nèi)完成;在每20次查詢中,有一次的響應(yīng)時(shí)間是7秒;通常這種變化的范圍是可以接受的。但是如果每20次查詢中,有10次超過7秒,你可能就會(huì)考慮換個(gè)搜索引擎了。SLA不僅必須是具體的, 也要靈活,同時(shí)必須也是現(xiàn)實(shí)的。你可以通過要求應(yīng)用業(yè)務(wù)負(fù)責(zé)人和應(yīng)用技術(shù)負(fù)責(zé)人共同制定SL

5、A的方式保證SLA是現(xiàn)實(shí)的。這是一個(gè)有效用例的特別關(guān)鍵的特性,這是因?yàn)樵诖蠖鄶?shù)情況下,SLA只由應(yīng)用業(yè)務(wù)負(fù)責(zé)人單方面確定,沒有考慮應(yīng)用技術(shù)負(fù)責(zé)人的意見。當(dāng)技術(shù)小組接到這些性能需求時(shí),他們往往會(huì)忽略,一個(gè)不現(xiàn)實(shí)的SLA比根本沒有還要糟糕。二、了解你的用戶為了保證調(diào)優(yōu)努力的成功你能做的最重要的事就是安排時(shí)間了解你的用戶和理解他們在使用你的應(yīng)用時(shí)的行為情況。很少會(huì)在生產(chǎn)環(huán)境中調(diào)優(yōu)應(yīng)用服務(wù)器,而更多的情況是,通過寫測試腳本再現(xiàn)為虛擬用戶,在上線前的環(huán)境中執(zhí)行負(fù)載并進(jìn)行調(diào)優(yōu)。當(dāng)在上線前環(huán)境中完成調(diào)優(yōu)后, 就可以安全地把配置信息應(yīng)用到生產(chǎn)環(huán)境中。多數(shù)公司無法在上線前的環(huán)境中充分地再現(xiàn)生產(chǎn)負(fù)載。如果您在這些

6、公司中工作,沒必要失望。多數(shù)大型的公司并沒有對他們的用戶行為有很好的理解并且在測試環(huán)境中不能產(chǎn)生有代表性的負(fù)載。有兩個(gè)共同的似是而非的理由:1. 生產(chǎn)負(fù)載太大,在上線前無法模擬。2. 我沒有任何辦法知道我的最終用戶到底是如何操作的。針對第一點(diǎn),我們可以在上線前環(huán)境中建立一個(gè)按比例縮減的生產(chǎn)版本,當(dāng)在生產(chǎn)環(huán)境中部署時(shí),再按比例放大。雖然沒有做一個(gè)生產(chǎn)環(huán)境的鏡像有效,但是有時(shí)并值得那么做。針對第二點(diǎn),下面將說明如何采集最終用戶的操作行為。由于我們需要在投入生產(chǎn)之前設(shè)法在上線前的環(huán)境中調(diào)優(yōu)我們的應(yīng)用系統(tǒng),這樣才能驗(yàn)證配置,所以一個(gè)隨之而來的問題就是我們需要在這個(gè)環(huán)境中執(zhí)行的負(fù)載測試腳本。對一個(gè)企業(yè)應(yīng)

7、用進(jìn)行調(diào)優(yōu)的步驟包括實(shí)施一些最佳實(shí)踐設(shè)置,負(fù)載測試應(yīng)用,觀察應(yīng)用的行為,以及適當(dāng)調(diào)整配置參數(shù)等。這是一個(gè)疊代過程,我們需要不斷調(diào)整以達(dá)到最優(yōu)的配置。一些調(diào)整可能會(huì)提高性能,而一些會(huì)降低性能。這也是為什么性能調(diào)優(yōu)不應(yīng)該放在開發(fā)周期后期的一個(gè)原因。假設(shè)我們根據(jù)我們的負(fù)載腳本進(jìn)行調(diào)優(yōu),那對你又意味著什么呢?這意味著負(fù)載腳本應(yīng)該真實(shí)反映現(xiàn)實(shí)世界用戶的使用行為。假設(shè)我們在優(yōu)化一個(gè)Web搜索引擎,我們可以寫一個(gè)測試腳本,該腳本總是在測試蘋果和香蕉,但是用戶是這樣使用嗎?我們可以為此調(diào)整出最好的性能。但是當(dāng)查詢Bea和IBM時(shí),又會(huì)怎樣呢?在我的應(yīng)用中,我可以將技術(shù)公司的詞匯放在與水果和蔬菜不同的數(shù)據(jù)庫庫庫

8、庫庫中,那么在測試環(huán)境中,永遠(yuǎn)不會(huì)執(zhí)行到那段代碼,我們的調(diào)優(yōu)努力也就徒勞無益了。更好的解決辦法是確定名列前茅1000 或10,000 個(gè)查尋詞組和他們頻率。然后,計(jì)算每個(gè)被請求的時(shí)間百分比并且編寫按照該百分比查詢這些詞匯的測試腳本。對于剩余的百分比,你可以把負(fù)載測試工具連到一個(gè)詞典,可以隨機(jī)生成查詢的詞匯。 三、使用工具分析編寫一個(gè)典型用戶負(fù)載腳本的困難之處是發(fā)現(xiàn)你的用戶是怎么使用的應(yīng)用的。這不是一門精確的學(xué)問。但是為得到一個(gè)合理的可靠的結(jié)果,第一步是看看您的訪問日志?,F(xiàn)在,我不會(huì)推薦手工做這件事,因?yàn)閷τ谝粋€(gè)中型的Web應(yīng)用,工作量也是巨大的?,F(xiàn)在有大量商業(yè)或免費(fèi)工具可為您分析訪問

9、日志。這些工具將告訴你有關(guān)你的服務(wù)請求的一些情況:a) 將服務(wù)請求按時(shí)間的百分比排序,并顯示百分比。b) 放大或縮小分析時(shí)間間隔,便于以粗粒度或細(xì)粒度方式顯示結(jié)果。c) 識別每天,周,月,年的高峰使用時(shí)間。d) 跟蹤字節(jié)傳輸和請求的平均時(shí)間。e) 按照你的應(yīng)用的內(nèi)部,外部或地理位置,識別和分類請求的用戶。f) 匯總成功請求的百分比。g) 匯總HTTP發(fā)生的錯(cuò)誤。h) 匯總顧客忠誠度, 譬如回頭客和平均會(huì)話長度。i) 跟蹤從其他站點(diǎn)的轉(zhuǎn)入情況。無論你選擇哪種軟件分析訪問日志,重要的是你應(yīng)該做這些分析工作并且把這些信息作為編寫測試腳本的基礎(chǔ)。有時(shí)訪問日志的作用是有限的,在某些情況下不能提供足夠的信

10、息。例如前端應(yīng)用只使用一個(gè)URL發(fā)出請求,而通過在請求中嵌入不同的參數(shù)區(qū)分業(yè)務(wù)功能。在這種情況下,就需要高級一些的工具根據(jù)不同的請求參數(shù)監(jiān)測應(yīng)用的使用情況和劃分業(yè)務(wù)功能。訪問日志只能提供部分解決辦法。接下來需要對應(yīng)用本身有更深入的理解。例如,當(dāng)發(fā)出一個(gè)特定的服務(wù)請求時(shí),你應(yīng)該知道其不同的選項(xiàng)所控制的相應(yīng)行為。這些信息的最好來源是應(yīng)用的用例和負(fù)責(zé)該功能的架構(gòu)設(shè)計(jì)人員。這些工作的目標(biāo)是識別出真實(shí)世界中用戶的使用行為,所以應(yīng)該徹底和全面地完成此階段任務(wù)。這里發(fā)生的錯(cuò)誤將導(dǎo)致上文提到的"蘋果和香蕉"搜索引擎的問題。為了全面獲得更可靠和更詳盡的最終用戶行為信息,可以考慮Quest公司

11、的User ExperienceMonitor(UEM)。UEM在最終用戶和WebServer之間,實(shí)時(shí)捕獲向你應(yīng)用環(huán)境發(fā)出的每個(gè)請求,可提供有關(guān)真實(shí)用戶所做的詳盡數(shù)據(jù),包括連接速度,瀏覽器版本,按地理位置匯總等信息。由于采用了被動(dòng)的網(wǎng)絡(luò)Sniff技術(shù),所以對應(yīng)用的性能影響為零。四、用戶如何退出系統(tǒng)最后,有一個(gè)值得重視的問題,我們了解到目前客戶在編寫負(fù)載測試腳本時(shí)最大的錯(cuò)誤是:用戶不知道怎樣退出應(yīng)用系統(tǒng)。不管你把退出按扭作的多大,至多只有 20%用戶會(huì)使用。這是由于現(xiàn)在將Web作為主要業(yè)務(wù)平臺(tái)的必然結(jié)果。商業(yè)Web站點(diǎn)正式基于此而得以快速發(fā)展并統(tǒng)治了Internet.因此,現(xiàn)在用戶習(xí)慣以下面方式退出網(wǎng)站:1. 離開當(dāng)前網(wǎng)站,轉(zhuǎn)到其他網(wǎng)站2. 關(guān)上瀏覽器窗口。由于這已是根深蒂固的Web 使用模式,所以不能指望用戶正確地退出網(wǎng)站。當(dāng)編寫測試腳本時(shí),應(yīng)用確定正確退出和非正確退出的用戶比例,然后根據(jù)這個(gè)比例編寫腳本。我們遇到的一個(gè)大型汽車網(wǎng)站,已經(jīng)為此困擾了一年多,他們的應(yīng)用服務(wù)器每

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論