基于LoadRunner的性能測試_第1頁
基于LoadRunner的性能測試_第2頁
基于LoadRunner的性能測試_第3頁
基于LoadRunner的性能測試_第4頁
基于LoadRunner的性能測試_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于LoadRunner的性能測試摘 要:在軟件出現(xiàn)的早期,并沒有軟件測試這個概念。因?yàn)槟菚r的軟件都是基于少量用戶的,沒有形成規(guī)模。但是隨著計(jì)算機(jī)的迅速發(fā)展,軟件的使用者越來越多,對軟件的功能和性能的要求也越來越高。這就出現(xiàn)了軟件質(zhì)量保證這一名詞,而軟件的質(zhì)量是通過測試來保證的。軟件測試在軟件生命周期中占有重要的地位。近年來,軟件工程界趨于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測試。測試從軟件開發(fā)的過程按階段劃分有:HYPERLINK :/baike.baidu /view/106237.htm單元測試、HYPERLINK :/baike.baidu /view/106652.ht

2、m集成測試、HYPERLINK :/baike.baidu /view/106760.htm確認(rèn)測試、HYPERLINK :/baike.baidu /view/170112.htm系統(tǒng)測試和HYPERLINK :/baike.baidu /view/649815.htm驗(yàn)收測試。而性能測試就屬于軟件系統(tǒng)級測試,其目的就是保證產(chǎn)品發(fā)布后系統(tǒng)的性能滿足用戶需求。在所有的性能測試工具中,LoadRunner是比較成熟的。本文簡單的介紹了引入軟件測試的原因,以及軟件測試、性能測試的一些基本概念。并通過一個簡單的例子介紹了Vuser開發(fā)腳本的自動生成過程,這里涉及軟件系統(tǒng)架構(gòu)、計(jì)算機(jī)編程技巧和Vuse

3、r本身的功能特性。結(jié)合郵件系統(tǒng),介紹如何使用Vuser生成基于SMTP/IMAP協(xié)議的腳本。使用Vuser錄制發(fā)送郵件操作,并對登錄郵箱和發(fā)送郵件進(jìn)行了簡單的性能測試。關(guān)鍵詞:軟件測試、性能測試、LoadRunner Performance Testing Based on LoadRunner Abstract:Appeared early in the software,there was no concept of Software Testing.As in that days,most of the software was based on a small number of us

4、ers and hardly development in the market. However,with the swift development of computer,the users of software were increased as well as the requirements of the software functionality and quality.Then,SQA(Software quality assurance) was emerged.And the quality of software was ensured through Softwar

5、e testing.Software testing occupy an important position in software lifecycle.In recent years,there is a new point of view in the software engineering that Software testing should be included in every stage of software lifecycle.From the process of software development,testing can be divided into fi

6、ve periods:unit testing,integration testing,validation testing,system testing and acceptation test.Performance test is belong to system testing and its purpose is to secure the performance of system can meet the demands of user.Among all the Performance Test Instruments,LoadRunner is comparative mat

7、urity.This article simply describes the reason for the introduction of software testing and the primary concept of performance test.Besides,we also introduced the automatically generates process of Vuser development script through a brief example.It refers to software architecture,techniques of comp

8、uter programming,and Vuser own functional characteristics bined with mail system,we introduced how to use Vuser generate script rest on SMTP/IMAP protocol.Making use of Vuser transcribe the handle of sending e-mails and tested the action of login mailbox and send e-mail.Key words:Software testing, P

9、erformance testing, LoadRunner 目 錄TOC o 1-3 h u HYPERLINK l _Toc23307 緒論 PAGEREF _Toc23307 1 HYPERLINK l _Toc21 第一章 軟件測試簡介 PAGEREF _Toc21 3 HYPERLINK l _Toc13066 1.1 為什么要引入軟件測試 PAGEREF _Toc13066 3 HYPERLINK l _Toc32416 1.2 什么是軟件測試 PAGEREF _Toc32416 3 HYPERLINK l _Toc20073 1.2.1 軟件測試的前提:軟件的可測試性 PAGER

10、EF _Toc20073 4 HYPERLINK l _Toc26526 1.2.2 軟件測試的規(guī)律 PAGEREF _Toc26526 4 HYPERLINK l _Toc25020 1.2.3 軟件測試的內(nèi)容 PAGEREF _Toc25020 4 HYPERLINK l _Toc17373 1.2.4 軟件測試的基本原則 PAGEREF _Toc17373 5 HYPERLINK l _Toc1787 1.3 軟件測試的種類 PAGEREF _Toc1787 6 HYPERLINK l _Toc12364 第二章 性能測試與LoadRunner PAGEREF _Toc12364 7 H

11、YPERLINK l _Toc3787 2.1 什么是性能測試 PAGEREF _Toc3787 7 HYPERLINK l _Toc3240 2.1.1 軟件系統(tǒng)性能的常見指標(biāo) PAGEREF _Toc3240 7 HYPERLINK l _Toc3319 2.1.2 什么是性能測試 PAGEREF _Toc3319 8 HYPERLINK l _Toc3207 2.1.3 性能測試的分類 PAGEREF _Toc3207 8 HYPERLINK l _Toc459 2.2 LoadRunner簡介 PAGEREF _Toc459 9 HYPERLINK l _Toc9684 2.3 Loa

12、dRunner的安裝 PAGEREF _Toc9684 12 HYPERLINK l _Toc20271 第三章 使用LoadRunner對Foxmail進(jìn)行簡單測試 PAGEREF _Toc20271 14 HYPERLINK l _Toc28653 3.1.電子郵件協(xié)議簡介 PAGEREF _Toc28653 14 HYPERLINK l _Toc24499 3.2 使用LoadRunner VuGen對Foxmail發(fā)郵件進(jìn)行錄制 PAGEREF _Toc24499 15 HYPERLINK l _Toc24845 3.3 通過LoadRunner Controller創(chuàng)建并運(yùn)行測試場景

13、 PAGEREF _Toc24845 18 HYPERLINK l _Toc22255 3.4.使用LoadRunner Analysis來分析軟件性能 PAGEREF _Toc22255 19 HYPERLINK l _Toc933 結(jié)論 PAGEREF _Toc933 22 HYPERLINK l _Toc7649 致謝 PAGEREF _Toc7649 23 HYPERLINK l _Toc19401 參考文獻(xiàn) PAGEREF _Toc19401 24 緒 論計(jì)算機(jī)的出現(xiàn)是人類歷史上一次偉大的革命,在哲學(xué)“物質(zhì)”這個名詞的外延中又多了一個新型事物計(jì)算機(jī)軟件。由于軟件代碼是人的邏輯思想的表

14、現(xiàn),所以軟件在設(shè)計(jì)思想和實(shí)現(xiàn)方法上也有很大差異。 在計(jì)算機(jī)發(fā)展的初期,計(jì)算機(jī)軟件對硬件有很強(qiáng)的依賴性,而且還沒有廣泛的通用性,只有少數(shù)的個人或機(jī)構(gòu)才使用軟件這個“奢侈品”,當(dāng)時用戶也沒有軟件性能的概念,通常為了實(shí)現(xiàn)軟件的功能而不計(jì)一切代價。初期的軟件是簡單的,用戶對軟件的要求也不高,只要能工作就可以了。所以,在軟件出現(xiàn)的早期是沒有軟件測試的,即只要軟件能實(shí)現(xiàn)人們期望的各個功能就可以了,而不必去考慮它的性能。到了上世紀(jì)80年代初期,軟件和IT行業(yè)進(jìn)入了大發(fā)展,軟件趨向大型化、高度復(fù)雜,軟件的質(zhì)量越來越重要。這時候,一些軟件測試的基礎(chǔ)理論和使用技術(shù)開始形成,并且人們開始為軟件開發(fā)設(shè)計(jì)了各種流程和管

15、理方法。人們還將“質(zhì)量”的概念融入其中,軟件測試的定義發(fā)生了改變,測試不單純是一個發(fā)現(xiàn)錯誤的過程,而且將測試作為軟件質(zhì)量保證(SQA)的主要職能,包含軟件質(zhì)量評價的內(nèi)容。1983年IEEE給軟件測試下的定義是:“使用人工或自動的手段來運(yùn)行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。這個定義明確指出:軟件測試的目的是為了檢驗(yàn)軟件系統(tǒng)是否滿足需求。上世紀(jì)90年代,軟件行業(yè)開始迅猛發(fā)展,軟件的規(guī)模變得越來越大,測試活動也需要花費(fèi)大量的時間和成本,手工測試已經(jīng)不能滿足大多數(shù)軟件系統(tǒng)項(xiàng)目的需求。于是,很多測試實(shí)踐者開始嘗試開發(fā)商業(yè)的測試工具來支持測試

16、,此時,測試工具逐漸盛行起來。測試工具的發(fā)展大大提高了軟件測試的自動化程度,讓測試人員從繁瑣和重復(fù)的測試活動中解脫出來,專心從事有意義的測試設(shè)計(jì)等活動。與此同時,用戶也不再把軟件看做神秘的東西,而是一件普通的商品,開始用經(jīng)濟(jì)學(xué)的角度來考慮軟件產(chǎn)品,這是一個意味深長的變化。因?yàn)檫@意味著軟件運(yùn)行不能以硬件不記成本為假設(shè),要盡可能的少占各種硬件資源,而且軟件運(yùn)行的速度也要盡可能的快。這就對軟件的性能提出了要求。近年來,我國軟件應(yīng)用開發(fā)迅速發(fā)展,但是離國際先進(jìn)水平仍然有不小的差距,就與我國情況極為類似的印度相比,無論在軟件開發(fā)方面還是產(chǎn)品輸出方面,都相差甚遠(yuǎn)。最主要的原因就是軟件工程的概念和實(shí)施不到位

17、,而在軟件實(shí)施的過程中,軟件測試又是重中之重。在發(fā)達(dá)國家,軟件測試是一項(xiàng)很嚴(yán)格的工作。因此,我們需要加強(qiáng)學(xué)習(xí)軟件測試這方面的內(nèi)容。 第一章 軟件測試簡介軟件測試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測試軟件中的錯誤,提高軟件的可靠性。它是軟件生命周期中一項(xiàng)非常重要且非常復(fù)雜的工作,對軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證明技術(shù)還無望成為實(shí)用性方法的情況下,軟件測試在將來相當(dāng)一段時間內(nèi)仍然是軟件可靠性保證的有效方法。1.1 為什么要引入軟件測試 美國航天局火星極地登陸,19991999年美國航天局的火星極地登錄飛船在試圖登錄火星表面時失蹤了。錯誤修正委員會觀測到

18、故障,并認(rèn)定出現(xiàn)誤動作的原因極可能是某一個數(shù)據(jù)被意外更改。錯誤修正委員會在測試過程中發(fā)現(xiàn),當(dāng)飛船的腳迅速撐開準(zhǔn)備著陸時,機(jī)械震動在多數(shù)情況下也會觸發(fā)著地開關(guān),設(shè)置錯誤的數(shù)據(jù)位。設(shè)想飛船開始著陸時,計(jì)算機(jī)極有可能關(guān)閉推進(jìn)器,而火星登陸飛船下墜1,800米之后沖向地面,撞成碎片。結(jié)果悲慘異常,但背后原因很簡單。登錄飛船進(jìn)過多個小組測試。其中一個小組測試飛船的腳落地過程,另一個小組測試此后的著陸過程。前一個小組不去注意著地數(shù)拒位是否置位,這不是他們負(fù)責(zé)的范圍;后一個小組總是在開始測試之前重置計(jì)算機(jī)、清除數(shù)據(jù)位。雙方獨(dú)立工作都很好,但從未走在一起。由此,我們可以看到軟件測試的重要性。因?yàn)槿绻麥y試不成功

19、的話,后果也許僅是不方便,也可能是災(zāi)難性的,比如致人死命。在這起事件中,顯然軟件未按預(yù)期目標(biāo)運(yùn)轉(zhuǎn)。1.2 什么是軟件測試 廣義的概念:指軟件生存周期中所有的檢查、評審和確認(rèn)工作,其中包括了對分析、設(shè)計(jì)階段,以及完成開發(fā)后維護(hù)階段的各類文檔、代碼的審查和確認(rèn)。狹義概念:識別軟件缺陷的過程,即實(shí)際結(jié)果與預(yù)期結(jié)果的不一致。軟件測試的目的就是發(fā)現(xiàn)軟件中的各種缺陷。但是它只能證明軟件存在缺陷,不能證明軟件不存在缺陷。測試可以使軟件中缺陷降低到一定程度,而不是徹底消滅。軟件測試比較理想的情況就是以較少的用例、時間和人力找出軟件中的各種錯誤和缺陷,以確保軟件的質(zhì)量。1.2.1 軟件測試的前提:軟件的可測試性

20、 軟件容易被測試的程度,包括下面幾個指標(biāo): (1)可確認(rèn)性:可以明確確認(rèn)軟件是否符合要求,例如有明確的要求和指標(biāo)。 (2)可觀察性:用于確認(rèn)的結(jié)果可以進(jìn)行有效的觀察。 (3)可控制性:相對應(yīng)的測試環(huán)境可以進(jìn)行控制,從而保證測試的有效性。 (4)可分解性:軟件可以進(jìn)行分解,對分解的結(jié)構(gòu)進(jìn)行測試。1.2.2 軟件測試的規(guī)律(1)木桶原理:軟件質(zhì)量的關(guān)鍵因素是分析、設(shè)計(jì)和實(shí)現(xiàn),測試應(yīng)該是融于其中的補(bǔ)充檢查手段,其他管理、支持、甚至 文化因素也會影響最終軟件的質(zhì)量。測試是提高軟件質(zhì)量的必要條件,最直接、最快捷的手段,但決不是一種根本手段。 (2)Bug的80-20原則:在分析、設(shè)計(jì)、實(shí)現(xiàn)階段的復(fù)審和測

21、試工作能夠發(fā)現(xiàn)和避免80%的Bug,而系統(tǒng)測試又能找出其余Bug中的80%,最后的5%的Bug可能只有在用戶的大范圍、長時間使用后才會曝露出來。1.2.3 軟件測試的內(nèi)容軟件測試的主要工作內(nèi)容是驗(yàn)證(verification)和確認(rèn)(validation )。 (1)驗(yàn)證(verification)是保證軟件正確地實(shí)現(xiàn)了一些特定功能的一系列活動,即保證軟件做了你所期望的事情。 確定HYPERLINK :/baike.baidu /view/178747.htm軟件生存周期中的一個給定階段的產(chǎn)品是否達(dá)到前階段確立的需求的過程;程序正確性的形式證明,即采用形式理論證明程序符合設(shè)計(jì)規(guī)約規(guī)定的過程;評

22、市、審查、測試、檢查、審計(jì)等各類活動,或?qū)δ承╉?xiàng)處理、服務(wù)或文件等是否和規(guī)定的需求相一致進(jìn)行判斷和提出報告。 (2)確認(rèn)(validation)是一系列的活動和過程,目的是想證實(shí)在一個給定的外部環(huán)境中軟件的邏輯正確性。即保證軟件以正確的方式來做了這個事件。靜態(tài)確認(rèn),不在計(jì)算機(jī)上實(shí)際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性;動態(tài)確認(rèn),通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實(shí)軟件是否存在問題。 1.2.4 軟件測試的基本原則 1.越早測試越好,測試過程與開發(fā)過程應(yīng)是相結(jié)合的:應(yīng)當(dāng)把軟件測試貫穿到整個軟件開發(fā)的過程中,而不應(yīng)該把軟件測試看作是其過程中的一個獨(dú)立階段。因?yàn)樵谲浖_發(fā)的每一環(huán)

23、節(jié)都有可能產(chǎn)生意想不到的問題,其影響因素有很多。比如軟件本身的抽象性和復(fù)雜性、軟件所涉及問題的復(fù)雜性、軟件開發(fā)各個階段工作的多樣性,以及各層次工作人員的配合關(guān)系等。所以要堅(jiān)持軟件開發(fā)各階段的技術(shù)評審,把錯誤克服在早期,從而減少成本,提高軟件質(zhì)量。保證測試的覆蓋程度,但窮舉測試是不可能的:測試用例應(yīng)當(dāng)由測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果這兩部分組成。在設(shè)計(jì)測試用例時,不僅要考慮合理的輸入條件,更要注意不合理的輸入條件。因?yàn)檐浖度雽?shí)際運(yùn)行中,往往不遵守正常的使用方法,卻進(jìn)行了一些甚至大量的意外輸入導(dǎo)致軟件一時半時不能做出適當(dāng)?shù)姆磻?yīng),就很容易產(chǎn)生一系列的問題,輕則輸出錯誤的結(jié)果,重則癱瘓失效!因此常用一些

24、不合理的輸入條件來發(fā)現(xiàn)更多的鮮為人知的HYPERLINK :/baike.baidu /view/107502.htm軟件缺陷。嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性,以避免發(fā)生疏漏或者重復(fù)無效的工作。為了盡可能地發(fā)現(xiàn)錯誤,應(yīng)該由獨(dú)立的第三方來測試。不管是程序員還是開發(fā)小組都應(yīng)當(dāng)避免測試自己的程序或者本組開發(fā)的HYPERLINK :/baike.baidu /view/3377707.htm功能模塊。若條件允許,應(yīng)當(dāng)由獨(dú)立于開發(fā)組和客戶的第三方測試組或測試機(jī)構(gòu)來進(jìn)行軟件測試。但這并不是說程序員不能測試自己的程序,而且更加鼓勵程序員進(jìn)行調(diào)試,因?yàn)闇y試由別人來進(jìn)行可能會會更加有效、客觀,并且容易成功,

25、而允許程序員自己調(diào)試也會更加有效和針對性。4.妥善保存測試用例、測試計(jì)劃、測試報告和最終分析報告,以備回歸測試及維護(hù)之用。 在遵守以上原則的基礎(chǔ)上進(jìn)行軟件測試,可以以最少的時間和人力找出軟件中的各種缺陷,從而達(dá)到保證軟件質(zhì)量的目的。1.3 軟件測試的種類 從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)的角度劃分:HYPERLINK :/baike.baidu /view/51297.htm白盒測試、HYPERLINK :/baike.baidu /view/51274.htm黑盒測試和HYPERLINK :/baike.baidu /view/105632.htm灰盒測試。 從是否執(zhí)行程序的角度:HYPER

26、LINK :/baike.baidu /view/106204.htm靜態(tài)測試、HYPERLINK :/baike.baidu /view/106213.htm動態(tài)測試。從軟件開發(fā)的過程按階段劃分有:HYPERLINK :/baike.baidu /view/106237.htm單元測試、HYPERLINK :/baike.baidu /view/106652.htm集成測試、HYPERLINK :/baike.baidu /view/106760.htm確認(rèn)測試、HYPERLINK :/baike.baidu /view/170112.htm系統(tǒng)測試和HYPERLINK :/baike.ba

27、idu /view/649815.htm驗(yàn)收測試。 測試過程按以下步驟進(jìn)行,即單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試及驗(yàn)收測試。開始是單元測試,集中對用源代碼實(shí)現(xiàn)的每一個程序單元進(jìn)行測試,檢查各個程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。集成測試把已測試過的模塊組裝起來,主要對與設(shè)計(jì)相關(guān)的HYPERLINK :/baike.baidu /view/1317046.htm軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測試。確認(rèn)測試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測試把已經(jīng)經(jīng)過確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測試。在這里我們主要討論系統(tǒng)測

28、試中的性能測試,具體見下一章。 第二章 性能測試與LoadRunner例:日本第三大 運(yùn)營商軟銀移動2006年10月遇到了麻煩,本指望通過降低 資費(fèi)來吸引用戶,誰想大量用戶蜂擁而至卻導(dǎo)致自己的電腦系統(tǒng)陷入癱瘓,軟銀移動在10月29日不得不宣布暫停接納新的用戶,直接損失逾億日元。用戶當(dāng)然不想看到以上的場景發(fā)生在自己的軟件系統(tǒng)上,“癱瘓”意味著響應(yīng)時間過長,不能為客戶正常提供服務(wù);數(shù)據(jù)丟失則是一個不可接受的嚴(yán)重問題,損失幾乎不可彌補(bǔ)。因此用戶對軟件性能的要求日益細(xì)化嚴(yán)格,可以說是“與時俱進(jìn)”。2.1 什么是性能測試2.1.1 軟件系統(tǒng)性能的常見指標(biāo) 性能測試用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能滿足用戶需求

29、。性能測試在軟件質(zhì)量保證中起重要作用。通常,衡量一個軟件系統(tǒng)性能的常見指標(biāo)有: 1響應(yīng)時間(Response time):響應(yīng)時間就是用戶感受軟件系統(tǒng)為其服務(wù)所耗費(fèi)的時間。根據(jù)“管轄區(qū)域”不同,響應(yīng)時間可以細(xì)分為: (1)服務(wù)器端響應(yīng)時間,這個時間指的是服務(wù)器完成交易請求執(zhí)行的時間,不包括客戶端到服務(wù)器端的反應(yīng)(請求和耗費(fèi)在網(wǎng)絡(luò)上的通信時間),這個服務(wù)器端響應(yīng)時間可以度量服務(wù)器的處理能力。(2)網(wǎng)絡(luò)響應(yīng)時間,這是網(wǎng)絡(luò)硬件傳輸交易請求和交易結(jié)果所耗費(fèi)的時間。 (3)客戶端響應(yīng)時間,這是客戶端在構(gòu)建請求和展現(xiàn)交易結(jié)果時所耗費(fèi)的時間,對于普通的瘦客戶端Web應(yīng)用來說,這個時間很短,通??梢院雎圆挥?jì);

30、但是對于胖客戶端Web應(yīng)用來說,比如Java applet、AJAX,由于客戶端內(nèi)嵌了大量的邏輯處理,耗費(fèi)的時間有可能很長,從而成為系統(tǒng)的瓶頸,這是要注意的一個地方。2吞吐量(Throughput):是指軟件系統(tǒng)在每單位時間內(nèi)能處理多少個事務(wù)/請求/單位數(shù)據(jù)等。資源使用率(Resource utilization):常見的資源有:CPU占用率、內(nèi)存使用率、磁盤I/O、網(wǎng)絡(luò)I/O。 4點(diǎn)擊數(shù)(Hits per second):點(diǎn)擊數(shù)不是我們通常理解的用戶鼠標(biāo)點(diǎn)擊次數(shù),而是按照客戶端向Web Server發(fā)起了多少次 請求計(jì)算的,一次鼠標(biāo)可能觸發(fā)多個 請求,這需要結(jié)合具體的Web系統(tǒng)實(shí)現(xiàn)來計(jì)算。

31、5并發(fā)用戶數(shù)(Concurrent users):并發(fā)用戶數(shù)用來度量服務(wù)器并發(fā)容量和同步協(xié)調(diào)能力。在客戶端指一批用戶同時執(zhí)行一個操作。并發(fā)數(shù)反映了軟件系統(tǒng)的并發(fā)處理能力,它大多是占用套接字、句柄等操作系統(tǒng)資源。2.1.2 什么是性能測試性能:計(jì)算機(jī)系統(tǒng)或子系統(tǒng)實(shí)現(xiàn)其功能的能力。性能測試:性能測試是為了描述測試對象與性能相關(guān)的特征并對其進(jìn)行評價,而實(shí)施和執(zhí)行的一類測試。如描述和評價計(jì)時配置文件、執(zhí)行流、響應(yīng)時間等特征。2.1.3 性能測試的分類性能測試分為:并發(fā)性能測試、壓力測試、負(fù)載測試、疲勞強(qiáng)度測試、大數(shù)據(jù)量測試和速度測試等,其中并發(fā)性能測試是重點(diǎn)。并發(fā)性能測試的過程是一個負(fù)載測試和壓力測試

32、的過程,即逐漸增加負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程。負(fù)載測試(Load Testing)是確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時,系統(tǒng)組成部分的相應(yīng)輸出項(xiàng),例如通過量、響應(yīng)時間、CPU負(fù)載、內(nèi)存使用等來決定系統(tǒng)的性能。負(fù)載測試是一個分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實(shí)環(huán)境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是為了考察系統(tǒng)在極端條件下的表現(xiàn),極端條件可以是超負(fù)荷的交易量和并發(fā)用戶數(shù)。注意,這個極端條件并不一定是用戶的性能需求,可能要遠(yuǎn)遠(yuǎn)高于用戶的性能需求。可以這樣

33、理解,壓力測試和負(fù)載測試不同的是,壓力測試的預(yù)期結(jié)果就是系統(tǒng)出現(xiàn)問題,而我們要考察的是系統(tǒng)處理問題的方式。比如說,我們期待一個系統(tǒng)在面臨壓力的情況下能夠保持穩(wěn)定,處理速度可以變慢,但不能系統(tǒng)崩潰。因此,壓力測試是能讓我們識別系統(tǒng)的弱點(diǎn)和在極限負(fù)載下程序?qū)⑷绾芜\(yùn)行。疲勞測試是采用系統(tǒng)穩(wěn)定運(yùn)行情況下能夠支持的最大并發(fā)用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程。一般情況下以服務(wù)器能夠正常穩(wěn)定響應(yīng)請求的最大并發(fā)用戶數(shù)進(jìn)行一定時間的疲勞測試,獲取交易執(zhí)行指標(biāo)數(shù)據(jù)和系統(tǒng)資源監(jiān)控數(shù)據(jù)。如出現(xiàn)錯誤導(dǎo)致測試不能成功執(zhí)行,則及時調(diào)整測試指標(biāo),例如降低

34、用戶數(shù)、縮短測試周期等。還有一種情況的疲勞測試是對當(dāng)前系統(tǒng)性能的評估,用系統(tǒng)正常業(yè)務(wù)情況下并發(fā)用戶數(shù)為基礎(chǔ),進(jìn)行一定時間的疲勞測試。大數(shù)據(jù)量測試可以分為兩種類型:針對某些系統(tǒng)存儲、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的獨(dú)立數(shù)據(jù)量測試;與壓力性能測試、負(fù)載性能測試、疲勞性能測試相結(jié)合的綜合數(shù)據(jù)量測試方案。大數(shù)據(jù)量測試的關(guān)鍵是測試數(shù)據(jù)的準(zhǔn)備,可以依靠工具準(zhǔn)備測試數(shù)據(jù)。速度測試目前主要是針對關(guān)鍵有速度要求的業(yè)務(wù)進(jìn)行手工測速度,可以在多次測試的基礎(chǔ)上求平均值,可以和工具測得的響應(yīng)時間等指標(biāo)做對比分析。 2.2 LoadRunner簡介性能測試的執(zhí)行是基本功能的重復(fù)和并發(fā),因此我們在性能開始之前需要模擬多

35、用戶,在性能測試進(jìn)行時要監(jiān)控指標(biāo)參數(shù),同時性能測試的結(jié)果不是那么顯而易見,需要對數(shù)據(jù)進(jìn)行分析。這些特點(diǎn)決定了性能測試更適合通過工具來完成。 如下表所示為主要的性能自動化測試工具。在這里我們主要介紹Mercury Interactive的LoadRunner。LoadRunner是業(yè)界領(lǐng)先的預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。通過模擬成千上萬名用戶訪問企業(yè)應(yīng)用系統(tǒng)和實(shí)施實(shí)時性能監(jiān)測,LoadRunner能夠?qū)φ麄€企業(yè)架構(gòu)進(jìn)行性能測試和問題查找。LoadRunner是一種具備高度適應(yīng)性的,自動負(fù)載測試工具,它能預(yù)測系統(tǒng)行為,優(yōu)化系統(tǒng)性能。LoadRunner強(qiáng)調(diào)的是整個企業(yè)系統(tǒng),它通過模擬實(shí)際用戶的

36、操作行為和實(shí)施實(shí)時性能檢測,來更快的確認(rèn)和查找問題的所在。此外,LoadRunner能支持最廣泛的協(xié)議標(biāo)準(zhǔn)和技術(shù)。 LoadRunner功能強(qiáng)大之處就是它的三大組件: (1)Mercury 虛擬用戶生成器 (VuGen) 創(chuàng)建腳本 VuGen 通過錄制應(yīng)用程序中典型最終用戶執(zhí)行的操作來生成虛擬用戶 (Vuser)。VuGen 將這些操作錄制到自動虛擬用戶腳本中,以便作為負(fù)載測試的基礎(chǔ)。 (2)Mercury LoadRunner Controller 設(shè)計(jì)和運(yùn)行場景 Controller 是用來創(chuàng)建、管理和監(jiān)控負(fù)載測試的中央控制臺。使用 Controller 可以運(yùn)行用來模擬真實(shí)用戶執(zhí)行的操作

37、的腳本,并可以通過讓多個 Vuser (虛擬用戶)同時執(zhí)行這些操作來在系統(tǒng)中創(chuàng)建負(fù)載。 (3)Mercury Analysis 分析場景Mercury Analysis 提供包含深入的性能分析信息的圖和報告。使用這些圖和報告,可以標(biāo)識和確定應(yīng)用程序中的瓶頸,并確定需要對系統(tǒng)進(jìn)行哪些更改來提高系統(tǒng)性能。LoadRunner執(zhí)行測試的一般步驟如下圖(圖2.1)。 圖 2.1 LoadRunner測試過程的六個步驟 這里主要介紹創(chuàng)建腳本、創(chuàng)建方案、運(yùn)行方案、分析測試結(jié)果。創(chuàng)建腳本的第一步就是使用 VuGen 錄制典型最終用戶的業(yè)務(wù)流程。VuGen 采用錄制并回放機(jī)制。當(dāng)我們在應(yīng)用程序中按照業(yè)務(wù)流程操

38、作時, VuGen 將這些操作錄制到自動腳本中,以便作為負(fù)載測試的基礎(chǔ)。然后再增強(qiáng)腳本,以及回放腳本。 創(chuàng)建方案使用 Controller,可以將應(yīng)用程序性能測試需求劃分為多個場景。場景定義每個測試會話中發(fā)生的事件。例如,一個場景可以定義和控制模擬的用戶數(shù)、用戶執(zhí)行的操作以及用戶運(yùn)行其模擬時所用的計(jì)算機(jī)。 在我們已經(jīng)設(shè)計(jì)了負(fù)載測試方案之后,接下來就可以運(yùn)行該測試并觀察應(yīng)用程序如何在負(fù)載下運(yùn)行。完成了場景運(yùn)行后,即可以使用 LoadRunner Analysis 來分析場景運(yùn)行期間生成的性能數(shù)據(jù)。LoadRunner Analysis 將性能數(shù)據(jù)收集到詳細(xì)的圖和報告中。使用這些圖和報告,可以輕松

39、地確定和標(biāo)識應(yīng)用程序中的瓶頸以及提高系統(tǒng)性能所需要的改進(jìn)。2.3 LoadRunner的安裝 首先登陸HP官網(wǎng)下載安裝包(需要注冊),根據(jù)需要,選擇windows(T717715008.zip)或Linux(T771715009.iso)系統(tǒng)下的安裝文件。這里以Windows 系統(tǒng)為例。1.下載后解壓,生成T717715008.iso鏡像文件(如圖2.2)。 圖 2.2 T717715008.iso鏡像文件 2.雙擊T717715008.iso鏡像文件,會出現(xiàn)鏡像文件中的文件。再雙擊setup.exe 會顯示正在解壓。解壓完成后,出現(xiàn)如圖2.3的安裝界面。 圖 2.3 LoadRunner安裝

40、界面 點(diǎn)擊LoadRunner完整安裝程序,然后基本上保持圖中的默認(rèn)選項(xiàng)不變,繼續(xù)安裝。當(dāng)出現(xiàn)選擇安裝類型時,選擇“完成”。如下圖2.4。 圖2.4 選擇安裝類型 圖2.5 安裝完成界面 繼續(xù)保持默認(rèn)選項(xiàng)不變,直至出現(xiàn)如下界面(圖2.5),就說明LoadRunner已經(jīng)成功的安裝到你的電腦上了。 第三章 使用LoadRunner對Foxmail進(jìn)行簡單測試3.1.電子郵件協(xié)議簡介電子郵件是Internet上最為流行的應(yīng)用之一。如同郵遞員分發(fā)投遞傳統(tǒng)郵件一樣,電子郵件也是異步的,也就是說,人們是在方便的時候發(fā)送和閱讀郵件的,無須預(yù)先與別人協(xié)同。SMTP稱為簡單Mail傳輸協(xié)議(Simple Ma

41、il Transfer Protocal),目標(biāo)是向用戶提供高效、可靠的郵件傳輸。SMTP的一個重要特點(diǎn)是它能夠在傳送中接力傳送郵件,即郵件可以通過不同網(wǎng)絡(luò)上的主機(jī)接力式傳送。它可以工作在兩種情況下:一是電子郵件從客戶機(jī)傳輸?shù)椒?wù)器;二是從某一個服務(wù)器傳輸?shù)搅硪粋€服務(wù)器。SMTP是個請求/響應(yīng)協(xié)議,它監(jiān)聽25號端口,用于接收用戶的Mail請求,并與遠(yuǎn)端Mail服務(wù)器建立SMTP連接。POP的全稱是 Post Office Protocol ,即郵局協(xié)議,用于電子郵件的接收,它使用TCP的110端口,現(xiàn)在常用的是第三版 ,所以簡稱為POP3。POP3仍采用Client/Server工作模式。當(dāng)客

42、戶機(jī)需要服務(wù)時,客戶端的軟件(OutlookExpress或FoxMail)將與POP3服務(wù)器建立TCP連接,此后要經(jīng)過POP3協(xié)議的三種工作狀態(tài),首先是認(rèn)證過程,確認(rèn)客戶機(jī)提供的用戶名和密碼,在認(rèn)證通過后便轉(zhuǎn)入處理狀態(tài),在此狀態(tài)下用戶可收取自己的郵件或做郵件的刪除,在完成響應(yīng)的操作后客戶機(jī)便發(fā)出quit命令,此后便進(jìn)入更新狀態(tài),將做刪除標(biāo)記的郵件從服務(wù)器端刪除掉。到此為止整個POP過程完成。IMAP是Internet Message Access Protocol的縮寫,顧名思義,主要提供的是通過Internet獲取信息的一種協(xié)議。IMAP 是一種用于郵箱訪問的協(xié)議,使用IMAP協(xié)議可以在C

43、lient端管理 Server上的郵箱,它與POP不同,郵件是保留在服務(wù)器上而不是download到本地,在這一點(diǎn)上IMAP是與Webmail相似的。但I(xiàn)MAP有比Webmail更好的地方,它比Webmail更高效和安全,可以離線閱讀等等。 IMAP還提供基于服務(wù)器的郵件處理以及共享郵件信箱等功能。郵件(包括已下載郵件的副本)在手動刪除前保留在服務(wù)器中,這有助于郵件檔案的生成和共享。用戶可在任何客戶機(jī)上都可查看服務(wù)器上的郵件。這讓那些漫游用戶感到很方便。一般的郵件系統(tǒng)的體系結(jié)構(gòu)如下圖(圖3.1)所示。 圖3.1 郵件系統(tǒng)的體系結(jié)構(gòu)3.2 使用LoadRunner VuGen對Foxmail發(fā)郵

44、件進(jìn)行錄制在對Foxmail進(jìn)行測試之前要先保證本機(jī)已安裝客戶端軟件,然后才可以對其進(jìn)行錄制。 啟動LoadRunner,打開Vuser,在“file”菜單下,選擇“New”,在Vuser類型列表中,選中“Simple Mail Protocol(SMTP)”,如圖3.3所示。 圖3.3 在虛擬用戶列表中選擇SMTP Vuser單擊“Create”按鈕,會彈出如圖3.4所示的錄制選項(xiàng)設(shè)置對話框。 圖3.4 在錄制選項(xiàng)中設(shè)置Foxmail應(yīng)用程序路徑 “Application type”(應(yīng)用程序類型)選擇“Win32 Applications”,在“Program to record”(錄制程

45、序)選項(xiàng)中輸入Foxmail的應(yīng)用程序路徑,在本例中為“E:Program FilesFoxmailFoxmail.exe”,單擊“OK”按鈕,開始錄制。錄制開始后,Vuser會找到應(yīng)用程序路徑,并啟動Foxmail。這時Vuser錄制工具條有如下提示,如圖3.5所示。 圖3.5 Foxmail登錄引起網(wǎng)絡(luò)67次交互事件這說明Foxmail完成登錄這個操作,在網(wǎng)絡(luò)上已經(jīng)有了67次交互。下面我們在這里定義一個Transaction(事務(wù)),用來度量發(fā)郵件的操作。單擊工具條上的Transaction開始點(diǎn),定義一個名為“sendmail”的Transaction。然后發(fā)一封郵件。單擊“發(fā)送”按鈕,

46、郵件被發(fā)送。這時我們再觀察VU錄制工具條,發(fā)現(xiàn)如圖3.6所示的提示。 圖3.6 Foxmail發(fā)送郵件引發(fā)的網(wǎng)絡(luò)交互事件交互事件已經(jīng)由之前的67次增長到91次,這說明發(fā)送郵件的操作在網(wǎng)絡(luò)上產(chǎn)生了9167=24次交互。單擊工具條上結(jié)束Transaction的按鈕,自動提示“sendmail”,直接單擊“OK”按鈕。 停止VU錄制,VU生成腳本如下:Action() lr_start_transaction(sendmail); smtp1 = 0; smtp_logon_ex(&smtp1, SmtpLogon, URL=smtp:/ 163 , CommonName=LoadRunner Us

47、er, LAST); smtp_send_mail_ex(&smtp1, Sendmail, HYPERLINK mailto:To=test1cesoo To=madongmei1989163 , HYPERLINK mailto:From=test1cesoo From=madongmei1989163 , Subject=?gb2312?B?6L+Z5piv5LiA5bCB5rWL6K+V6YKu5Lu25qCH6 aKYdGVzdA=?=, ContentType=multipart/alternative;, MAILOPTIONS, X-Mailer: Tencent Foxmai

48、l 6.5Beta 3, Build 023, Thread-Index: AciOgCIrErOOfaSTRUulBNIY7vEV0Q=, X-MimeOLE: Produced By Foxmail MimeOLE V6.00.2900.3028, MAILDATA, AttachRawFile=mailnote1_01.dat, AttachRawFile=mailnote1_02.dat, LAST); smtp_logout_ex(&smtp1); smtp_free_ex(&smtp1); lr_end_transaction(sendmail,LR_AUTO);return 0;

49、3.3 通過LoadRunner Controller創(chuàng)建并運(yùn)行測試場景郵件系統(tǒng)是業(yè)務(wù)處理十分頻繁、數(shù)據(jù)交換吞吐量很大的系統(tǒng),郵件處理的速度直接關(guān)系到公司的經(jīng)濟(jì)效益和客戶對公司的評價。在客觀條件下,整個廣域網(wǎng)系統(tǒng)必須在大業(yè)務(wù)量的情況下同時保持快速的實(shí)時響應(yīng)能力,以保證整個業(yè)務(wù)系統(tǒng)的通暢運(yùn)行。為此我們提出如下性能指標(biāo):登錄:系統(tǒng)能夠處理900用戶/分鐘,至少支持上百用戶并發(fā),登錄響應(yīng)時 間不超過30秒。發(fā)郵件:系統(tǒng)能夠處理400封郵件/秒,響應(yīng)時間不超過10秒。鑒于以上性能指標(biāo),我們決定把本次性能測試分解為如下步驟來進(jìn)行。 A.并發(fā)登陸測試:900個終端一分鐘內(nèi)并發(fā)登陸系統(tǒng),且響應(yīng)時間在30秒之

50、內(nèi)。B.發(fā)送郵件測試:多個終端進(jìn)行發(fā)送,逐漸加壓,以達(dá)到400封郵件/秒的壓力為限。下面我們把性能指標(biāo)的場景實(shí)現(xiàn)方式進(jìn)行了明確的定位: A.并發(fā)登陸測試場景并發(fā)登陸900用戶/分鐘,登陸響應(yīng)時間在30秒之內(nèi)。這里的并發(fā)登陸900用戶/分鐘指的是系統(tǒng)能夠在1分鐘內(nèi)接受900個用戶的登陸請求,而處理的效果如何則在交易終端體現(xiàn),即登陸響應(yīng)時間。因此我們把用戶性能指標(biāo)轉(zhuǎn)化為如下的測試場景:從第一秒鐘開始,用loadrunner每秒鐘登陸15個用戶,直到1分鐘結(jié)束,從終端向系統(tǒng)一共發(fā)送900個左右的用戶登陸請求,系統(tǒng)在一分鐘內(nèi)建立了900個連接。在終端觀察并統(tǒng)計(jì)登陸響應(yīng)時間。如果Foxmail郵件系統(tǒng)不

51、能響應(yīng)持續(xù)增加的登陸請求或平均登陸響應(yīng)時間大于30秒,并發(fā)登陸測試場景都不能算通過。B.發(fā)送郵件測試場景在loadrunner中,建立goal-orented的測試場景,以400封郵件/秒為目標(biāo),將調(diào)度權(quán)交給loadrunner來試圖達(dá)到這個指標(biāo)。以上的測試場景要求均在loadrunner中的Controller進(jìn)行設(shè)置完成。設(shè)置完場景之后我們就可以運(yùn)行場景了。在loadrunner中的controller中開啟系統(tǒng)資源計(jì)數(shù)器,檢測系統(tǒng)資源消耗情況,并最終和測試結(jié)果數(shù)據(jù)合并,成為分析圖表。A: 并發(fā)登陸測試依照設(shè)計(jì)好的測試場景,用loadrunner工具在一分鐘內(nèi)漸增向系統(tǒng)發(fā)送登陸請求。分別進(jìn)

52、行三次,結(jié)果如下 第一次:成功登陸685個用戶,平均響應(yīng)時間為27.5秒/筆。第二次:成功登陸701個用戶,平均響應(yīng)時間為28.3秒/筆。第三次:成功登陸692個用戶,平均響應(yīng)時間為26.9秒/筆。B:發(fā)送郵件測試: 對于通過網(wǎng)絡(luò)接口發(fā)送的批量發(fā)送郵件請求,均在性能指標(biāo)所指定的時間范圍內(nèi)得到請求成功的反饋消息,說明主機(jī)已經(jīng)處理成功。3.4.使用LoadRunner Analysis來分析軟件性能在Controller工具欄中點(diǎn)擊第一個 圖標(biāo),啟動LoadRunner Analysis。由于LoadRunner Analysis生成的分析圖較多,我們在這里只看其中的幾個圖。 圖3.7 評測服務(wù)器性能圖 圖 3.8 900個用戶的并發(fā)測試結(jié)果由上圖我們可以看出在測試期間,服務(wù)器比較穩(wěn)定,沒有出現(xiàn)太大的波動,這說明服務(wù)性能比較穩(wěn)定。 圖 3.9 CPU利用率 由所得分析圖我們可得測試結(jié)果分析及性能評價如下: A.并發(fā)測試結(jié)果分析及性能評價根據(jù)上述的并發(fā)測試響應(yīng)時間,以及圖3.8我們可得如下結(jié)論:Foxmail郵件系統(tǒng)在一分鐘內(nèi)并不能接受900個并發(fā)用戶的登陸請求,其可接受的登陸請求用戶數(shù)大概為690個左右。在這樣的條件下,登陸響應(yīng)時間在我們所設(shè)計(jì)的范圍之內(nèi)。B.發(fā)送郵件測試結(jié)果分析及

溫馨提示

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

評論

0/150

提交評論