




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于LoadRunner的性能測試摘 要:在軟件出現的早期,并沒有軟件測試這個概念。因為那時的軟件都是基于少量用戶的,沒有形成規模。但是隨著計算機的迅速發展,軟件的使用者越來越多,對軟件的功能和性能的要求也越來越高。這就出現了軟件質量保證這一名詞,而軟件的質量是通過測試來保證的。軟件測試在軟件生命周期中占有重要的地位。近年來,軟件工程界趨于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試。測試從軟件開發的過程按階段劃分有:HYPERLINK :/baike.baidu /view/106237.htm單元測試、HYPERLINK :/baike.baidu /view/106652.ht
2、m集成測試、HYPERLINK :/baike.baidu /view/106760.htm確認測試、HYPERLINK :/baike.baidu /view/170112.htm系統測試和HYPERLINK :/baike.baidu /view/649815.htm驗收測試。而性能測試就屬于軟件系統級測試,其目的就是保證產品發布后系統的性能滿足用戶需求。在所有的性能測試工具中,LoadRunner是比較成熟的。本文簡單的介紹了引入軟件測試的原因,以及軟件測試、性能測試的一些基本概念。并通過一個簡單的例子介紹了Vuser開發腳本的自動生成過程,這里涉及軟件系統架構、計算機編程技巧和Vuse
3、r本身的功能特性。結合郵件系統,介紹如何使用Vuser生成基于SMTP/IMAP協議的腳本。使用Vuser錄制發送郵件操作,并對登錄郵箱和發送郵件進行了簡單的性能測試。關鍵詞:軟件測試、性能測試、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 軟件測試的規律 PAGEREF _Toc26526 4 HYPERLINK l _Toc25020 1.2.3 軟件測試的內容 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 軟件系統性能的常見指標 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進行簡單測試 PAGEREF _Toc20271 14 HYPERLINK l _Toc28653 3.1.電子郵件協議簡介 PAGEREF _Toc28653 14 HYPERLINK l _Toc24499 3.2 使用LoadRunner VuGen對Foxmail發郵件進行錄制 PAGEREF _Toc24499 15 HYPERLINK l _Toc24845 3.3 通過LoadRunner Controller創建并運行測試場景
13、 PAGEREF _Toc24845 18 HYPERLINK l _Toc22255 3.4.使用LoadRunner Analysis來分析軟件性能 PAGEREF _Toc22255 19 HYPERLINK l _Toc933 結論 PAGEREF _Toc933 22 HYPERLINK l _Toc7649 致謝 PAGEREF _Toc7649 23 HYPERLINK l _Toc19401 參考文獻 PAGEREF _Toc19401 24 緒 論計算機的出現是人類歷史上一次偉大的革命,在哲學“物質”這個名詞的外延中又多了一個新型事物計算機軟件。由于軟件代碼是人的邏輯思想的表
14、現,所以軟件在設計思想和實現方法上也有很大差異。 在計算機發展的初期,計算機軟件對硬件有很強的依賴性,而且還沒有廣泛的通用性,只有少數的個人或機構才使用軟件這個“奢侈品”,當時用戶也沒有軟件性能的概念,通常為了實現軟件的功能而不計一切代價。初期的軟件是簡單的,用戶對軟件的要求也不高,只要能工作就可以了。所以,在軟件出現的早期是沒有軟件測試的,即只要軟件能實現人們期望的各個功能就可以了,而不必去考慮它的性能。到了上世紀80年代初期,軟件和IT行業進入了大發展,軟件趨向大型化、高度復雜,軟件的質量越來越重要。這時候,一些軟件測試的基礎理論和使用技術開始形成,并且人們開始為軟件開發設計了各種流程和管
15、理方法。人們還將“質量”的概念融入其中,軟件測試的定義發生了改變,測試不單純是一個發現錯誤的過程,而且將測試作為軟件質量保證(SQA)的主要職能,包含軟件質量評價的內容。1983年IEEE給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別”。這個定義明確指出:軟件測試的目的是為了檢驗軟件系統是否滿足需求。上世紀90年代,軟件行業開始迅猛發展,軟件的規模變得越來越大,測試活動也需要花費大量的時間和成本,手工測試已經不能滿足大多數軟件系統項目的需求。于是,很多測試實踐者開始嘗試開發商業的測試工具來支持測試
16、,此時,測試工具逐漸盛行起來。測試工具的發展大大提高了軟件測試的自動化程度,讓測試人員從繁瑣和重復的測試活動中解脫出來,專心從事有意義的測試設計等活動。與此同時,用戶也不再把軟件看做神秘的東西,而是一件普通的商品,開始用經濟學的角度來考慮軟件產品,這是一個意味深長的變化。因為這意味著軟件運行不能以硬件不記成本為假設,要盡可能的少占各種硬件資源,而且軟件運行的速度也要盡可能的快。這就對軟件的性能提出了要求。近年來,我國軟件應用開發迅速發展,但是離國際先進水平仍然有不小的差距,就與我國情況極為類似的印度相比,無論在軟件開發方面還是產品輸出方面,都相差甚遠。最主要的原因就是軟件工程的概念和實施不到位
17、,而在軟件實施的過程中,軟件測試又是重中之重。在發達國家,軟件測試是一項很嚴格的工作。因此,我們需要加強學習軟件測試這方面的內容。 第一章 軟件測試簡介軟件測試是程序的一種執行過程,目的是盡可能發現并改正被測試軟件中的錯誤,提高軟件的可靠性。它是軟件生命周期中一項非常重要且非常復雜的工作,對軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證明技術還無望成為實用性方法的情況下,軟件測試在將來相當一段時間內仍然是軟件可靠性保證的有效方法。1.1 為什么要引入軟件測試 美國航天局火星極地登陸,19991999年美國航天局的火星極地登錄飛船在試圖登錄火星表面時失蹤了。錯誤修正委員會觀測到
18、故障,并認定出現誤動作的原因極可能是某一個數據被意外更改。錯誤修正委員會在測試過程中發現,當飛船的腳迅速撐開準備著陸時,機械震動在多數情況下也會觸發著地開關,設置錯誤的數據位。設想飛船開始著陸時,計算機極有可能關閉推進器,而火星登陸飛船下墜1,800米之后沖向地面,撞成碎片。結果悲慘異常,但背后原因很簡單。登錄飛船進過多個小組測試。其中一個小組測試飛船的腳落地過程,另一個小組測試此后的著陸過程。前一個小組不去注意著地數拒位是否置位,這不是他們負責的范圍;后一個小組總是在開始測試之前重置計算機、清除數據位。雙方獨立工作都很好,但從未走在一起。由此,我們可以看到軟件測試的重要性。因為如果測試不成功
19、的話,后果也許僅是不方便,也可能是災難性的,比如致人死命。在這起事件中,顯然軟件未按預期目標運轉。1.2 什么是軟件測試 廣義的概念:指軟件生存周期中所有的檢查、評審和確認工作,其中包括了對分析、設計階段,以及完成開發后維護階段的各類文檔、代碼的審查和確認。狹義概念:識別軟件缺陷的過程,即實際結果與預期結果的不一致。軟件測試的目的就是發現軟件中的各種缺陷。但是它只能證明軟件存在缺陷,不能證明軟件不存在缺陷。測試可以使軟件中缺陷降低到一定程度,而不是徹底消滅。軟件測試比較理想的情況就是以較少的用例、時間和人力找出軟件中的各種錯誤和缺陷,以確保軟件的質量。1.2.1 軟件測試的前提:軟件的可測試性
20、 軟件容易被測試的程度,包括下面幾個指標: (1)可確認性:可以明確確認軟件是否符合要求,例如有明確的要求和指標。 (2)可觀察性:用于確認的結果可以進行有效的觀察。 (3)可控制性:相對應的測試環境可以進行控制,從而保證測試的有效性。 (4)可分解性:軟件可以進行分解,對分解的結構進行測試。1.2.2 軟件測試的規律(1)木桶原理:軟件質量的關鍵因素是分析、設計和實現,測試應該是融于其中的補充檢查手段,其他管理、支持、甚至 文化因素也會影響最終軟件的質量。測試是提高軟件質量的必要條件,最直接、最快捷的手段,但決不是一種根本手段。 (2)Bug的80-20原則:在分析、設計、實現階段的復審和測
21、試工作能夠發現和避免80%的Bug,而系統測試又能找出其余Bug中的80%,最后的5%的Bug可能只有在用戶的大范圍、長時間使用后才會曝露出來。1.2.3 軟件測試的內容軟件測試的主要工作內容是驗證(verification)和確認(validation )。 (1)驗證(verification)是保證軟件正確地實現了一些特定功能的一系列活動,即保證軟件做了你所期望的事情。 確定HYPERLINK :/baike.baidu /view/178747.htm軟件生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程;程序正確性的形式證明,即采用形式理論證明程序符合設計規約規定的過程;評
22、市、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或文件等是否和規定的需求相一致進行判斷和提出報告。 (2)確認(validation)是一系列的活動和過程,目的是想證實在一個給定的外部環境中軟件的邏輯正確性。即保證軟件以正確的方式來做了這個事件。靜態確認,不在計算機上實際執行程序,通過人工或程序分析來證明軟件的正確性;動態確認,通過執行程序做分析,測試程序的動態行為,以證實軟件是否存在問題。 1.2.4 軟件測試的基本原則 1.越早測試越好,測試過程與開發過程應是相結合的:應當把軟件測試貫穿到整個軟件開發的過程中,而不應該把軟件測試看作是其過程中的一個獨立階段。因為在軟件開發的每一環
23、節都有可能產生意想不到的問題,其影響因素有很多。比如軟件本身的抽象性和復雜性、軟件所涉及問題的復雜性、軟件開發各個階段工作的多樣性,以及各層次工作人員的配合關系等。所以要堅持軟件開發各階段的技術評審,把錯誤克服在早期,從而減少成本,提高軟件質量。保證測試的覆蓋程度,但窮舉測試是不可能的:測試用例應當由測試輸入數據和預期輸出結果這兩部分組成。在設計測試用例時,不僅要考慮合理的輸入條件,更要注意不合理的輸入條件。因為軟件投入實際運行中,往往不遵守正常的使用方法,卻進行了一些甚至大量的意外輸入導致軟件一時半時不能做出適當的反應,就很容易產生一系列的問題,輕則輸出錯誤的結果,重則癱瘓失效!因此常用一些
24、不合理的輸入條件來發現更多的鮮為人知的HYPERLINK :/baike.baidu /view/107502.htm軟件缺陷。嚴格執行測試計劃,排除測試的隨意性,以避免發生疏漏或者重復無效的工作。為了盡可能地發現錯誤,應該由獨立的第三方來測試。不管是程序員還是開發小組都應當避免測試自己的程序或者本組開發的HYPERLINK :/baike.baidu /view/3377707.htm功能模塊。若條件允許,應當由獨立于開發組和客戶的第三方測試組或測試機構來進行軟件測試。但這并不是說程序員不能測試自己的程序,而且更加鼓勵程序員進行調試,因為測試由別人來進行可能會會更加有效、客觀,并且容易成功,
25、而允許程序員自己調試也會更加有效和針對性。4.妥善保存測試用例、測試計劃、測試報告和最終分析報告,以備回歸測試及維護之用。 在遵守以上原則的基礎上進行軟件測試,可以以最少的時間和人力找出軟件中的各種缺陷,從而達到保證軟件質量的目的。1.3 軟件測試的種類 從是否關心軟件內部結構和具體實現的角度劃分:HYPERLINK :/baike.baidu /view/51297.htm白盒測試、HYPERLINK :/baike.baidu /view/51274.htm黑盒測試和HYPERLINK :/baike.baidu /view/105632.htm灰盒測試。 從是否執行程序的角度:HYPER
26、LINK :/baike.baidu /view/106204.htm靜態測試、HYPERLINK :/baike.baidu /view/106213.htm動態測試。從軟件開發的過程按階段劃分有:HYPERLINK :/baike.baidu /view/106237.htm單元測試、HYPERLINK :/baike.baidu /view/106652.htm集成測試、HYPERLINK :/baike.baidu /view/106760.htm確認測試、HYPERLINK :/baike.baidu /view/170112.htm系統測試和HYPERLINK :/baike.ba
27、idu /view/649815.htm驗收測試。 測試過程按以下步驟進行,即單元測試、集成測試、確認測試和系統測試及驗收測試。開始是單元測試,集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。集成測試把已測試過的模塊組裝起來,主要對與設計相關的HYPERLINK :/baike.baidu /view/1317046.htm軟件體系結構的構造進行測試。確認測試則是要檢查已實現的軟件是否滿足了需求規格說明中確定了的各種需求,以及軟件配置是否完全、正確。系統測試把已經經過確認的軟件納入實際運行環境中,與其它系統成份組合在一起進行測試。在這里我們主要討論系統測
28、試中的性能測試,具體見下一章。 第二章 性能測試與LoadRunner例:日本第三大 運營商軟銀移動2006年10月遇到了麻煩,本指望通過降低 資費來吸引用戶,誰想大量用戶蜂擁而至卻導致自己的電腦系統陷入癱瘓,軟銀移動在10月29日不得不宣布暫停接納新的用戶,直接損失逾億日元。用戶當然不想看到以上的場景發生在自己的軟件系統上,“癱瘓”意味著響應時間過長,不能為客戶正常提供服務;數據丟失則是一個不可接受的嚴重問題,損失幾乎不可彌補。因此用戶對軟件性能的要求日益細化嚴格,可以說是“與時俱進”。2.1 什么是性能測試2.1.1 軟件系統性能的常見指標 性能測試用來保證產品發布后系統的性能滿足用戶需求
29、。性能測試在軟件質量保證中起重要作用。通常,衡量一個軟件系統性能的常見指標有: 1響應時間(Response time):響應時間就是用戶感受軟件系統為其服務所耗費的時間。根據“管轄區域”不同,響應時間可以細分為: (1)服務器端響應時間,這個時間指的是服務器完成交易請求執行的時間,不包括客戶端到服務器端的反應(請求和耗費在網絡上的通信時間),這個服務器端響應時間可以度量服務器的處理能力。(2)網絡響應時間,這是網絡硬件傳輸交易請求和交易結果所耗費的時間。 (3)客戶端響應時間,這是客戶端在構建請求和展現交易結果時所耗費的時間,對于普通的瘦客戶端Web應用來說,這個時間很短,通常可以忽略不計;
30、但是對于胖客戶端Web應用來說,比如Java applet、AJAX,由于客戶端內嵌了大量的邏輯處理,耗費的時間有可能很長,從而成為系統的瓶頸,這是要注意的一個地方。2吞吐量(Throughput):是指軟件系統在每單位時間內能處理多少個事務/請求/單位數據等。資源使用率(Resource utilization):常見的資源有:CPU占用率、內存使用率、磁盤I/O、網絡I/O。 4點擊數(Hits per second):點擊數不是我們通常理解的用戶鼠標點擊次數,而是按照客戶端向Web Server發起了多少次 請求計算的,一次鼠標可能觸發多個 請求,這需要結合具體的Web系統實現來計算。
31、5并發用戶數(Concurrent users):并發用戶數用來度量服務器并發容量和同步協調能力。在客戶端指一批用戶同時執行一個操作。并發數反映了軟件系統的并發處理能力,它大多是占用套接字、句柄等操作系統資源。2.1.2 什么是性能測試性能:計算機系統或子系統實現其功能的能力。性能測試:性能測試是為了描述測試對象與性能相關的特征并對其進行評價,而實施和執行的一類測試。如描述和評價計時配置文件、執行流、響應時間等特征。2.1.3 性能測試的分類性能測試分為:并發性能測試、壓力測試、負載測試、疲勞強度測試、大數據量測試和速度測試等,其中并發性能測試是重點。并發性能測試的過程是一個負載測試和壓力測試
32、的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析交易執行指標和資源監控指標來確定系統并發性能的過程。負載測試(Load Testing)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。負載測試是一個分析軟件應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是為了考察系統在極端條件下的表現,極端條件可以是超負荷的交易量和并發用戶數。注意,這個極端條件并不一定是用戶的性能需求,可能要遠遠高于用戶的性能需求。可以這樣
33、理解,壓力測試和負載測試不同的是,壓力測試的預期結果就是系統出現問題,而我們要考察的是系統處理問題的方式。比如說,我們期待一個系統在面臨壓力的情況下能夠保持穩定,處理速度可以變慢,但不能系統崩潰。因此,壓力測試是能讓我們識別系統的弱點和在極限負載下程序將如何運行。疲勞測試是采用系統穩定運行情況下能夠支持的最大并發用戶數,持續執行一段時間業務,通過綜合分析交易執行指標和資源監控指標來確定系統處理最大工作量強度性能的過程。一般情況下以服務器能夠正常穩定響應請求的最大并發用戶數進行一定時間的疲勞測試,獲取交易執行指標數據和系統資源監控數據。如出現錯誤導致測試不能成功執行,則及時調整測試指標,例如降低
34、用戶數、縮短測試周期等。還有一種情況的疲勞測試是對當前系統性能的評估,用系統正常業務情況下并發用戶數為基礎,進行一定時間的疲勞測試。大數據量測試可以分為兩種類型:針對某些系統存儲、傳輸、統計、查詢等業務進行大數據量的獨立數據量測試;與壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試方案。大數據量測試的關鍵是測試數據的準備,可以依靠工具準備測試數據。速度測試目前主要是針對關鍵有速度要求的業務進行手工測速度,可以在多次測試的基礎上求平均值,可以和工具測得的響應時間等指標做對比分析。 2.2 LoadRunner簡介性能測試的執行是基本功能的重復和并發,因此我們在性能開始之前需要模擬多
35、用戶,在性能測試進行時要監控指標參數,同時性能測試的結果不是那么顯而易見,需要對數據進行分析。這些特點決定了性能測試更適合通過工具來完成。 如下表所示為主要的性能自動化測試工具。在這里我們主要介紹Mercury Interactive的LoadRunner。LoadRunner是業界領先的預測系統行為和性能的負載測試工具。通過模擬成千上萬名用戶訪問企業應用系統和實施實時性能監測,LoadRunner能夠對整個企業架構進行性能測試和問題查找。LoadRunner是一種具備高度適應性的,自動負載測試工具,它能預測系統行為,優化系統性能。LoadRunner強調的是整個企業系統,它通過模擬實際用戶的
36、操作行為和實施實時性能檢測,來更快的確認和查找問題的所在。此外,LoadRunner能支持最廣泛的協議標準和技術。 LoadRunner功能強大之處就是它的三大組件: (1)Mercury 虛擬用戶生成器 (VuGen) 創建腳本 VuGen 通過錄制應用程序中典型最終用戶執行的操作來生成虛擬用戶 (Vuser)。VuGen 將這些操作錄制到自動虛擬用戶腳本中,以便作為負載測試的基礎。 (2)Mercury LoadRunner Controller 設計和運行場景 Controller 是用來創建、管理和監控負載測試的中央控制臺。使用 Controller 可以運行用來模擬真實用戶執行的操作
37、的腳本,并可以通過讓多個 Vuser (虛擬用戶)同時執行這些操作來在系統中創建負載。 (3)Mercury Analysis 分析場景Mercury Analysis 提供包含深入的性能分析信息的圖和報告。使用這些圖和報告,可以標識和確定應用程序中的瓶頸,并確定需要對系統進行哪些更改來提高系統性能。LoadRunner執行測試的一般步驟如下圖(圖2.1)。 圖 2.1 LoadRunner測試過程的六個步驟 這里主要介紹創建腳本、創建方案、運行方案、分析測試結果。創建腳本的第一步就是使用 VuGen 錄制典型最終用戶的業務流程。VuGen 采用錄制并回放機制。當我們在應用程序中按照業務流程操
38、作時, VuGen 將這些操作錄制到自動腳本中,以便作為負載測試的基礎。然后再增強腳本,以及回放腳本。 創建方案使用 Controller,可以將應用程序性能測試需求劃分為多個場景。場景定義每個測試會話中發生的事件。例如,一個場景可以定義和控制模擬的用戶數、用戶執行的操作以及用戶運行其模擬時所用的計算機。 在我們已經設計了負載測試方案之后,接下來就可以運行該測試并觀察應用程序如何在負載下運行。完成了場景運行后,即可以使用 LoadRunner Analysis 來分析場景運行期間生成的性能數據。LoadRunner Analysis 將性能數據收集到詳細的圖和報告中。使用這些圖和報告,可以輕松
39、地確定和標識應用程序中的瓶頸以及提高系統性能所需要的改進。2.3 LoadRunner的安裝 首先登陸HP官網下載安裝包(需要注冊),根據需要,選擇windows(T717715008.zip)或Linux(T771715009.iso)系統下的安裝文件。這里以Windows 系統為例。1.下載后解壓,生成T717715008.iso鏡像文件(如圖2.2)。 圖 2.2 T717715008.iso鏡像文件 2.雙擊T717715008.iso鏡像文件,會出現鏡像文件中的文件。再雙擊setup.exe 會顯示正在解壓。解壓完成后,出現如圖2.3的安裝界面。 圖 2.3 LoadRunner安裝
40、界面 點擊LoadRunner完整安裝程序,然后基本上保持圖中的默認選項不變,繼續安裝。當出現選擇安裝類型時,選擇“完成”。如下圖2.4。 圖2.4 選擇安裝類型 圖2.5 安裝完成界面 繼續保持默認選項不變,直至出現如下界面(圖2.5),就說明LoadRunner已經成功的安裝到你的電腦上了。 第三章 使用LoadRunner對Foxmail進行簡單測試3.1.電子郵件協議簡介電子郵件是Internet上最為流行的應用之一。如同郵遞員分發投遞傳統郵件一樣,電子郵件也是異步的,也就是說,人們是在方便的時候發送和閱讀郵件的,無須預先與別人協同。SMTP稱為簡單Mail傳輸協議(Simple Ma
41、il Transfer Protocal),目標是向用戶提供高效、可靠的郵件傳輸。SMTP的一個重要特點是它能夠在傳送中接力傳送郵件,即郵件可以通過不同網絡上的主機接力式傳送。它可以工作在兩種情況下:一是電子郵件從客戶機傳輸到服務器;二是從某一個服務器傳輸到另一個服務器。SMTP是個請求/響應協議,它監聽25號端口,用于接收用戶的Mail請求,并與遠端Mail服務器建立SMTP連接。POP的全稱是 Post Office Protocol ,即郵局協議,用于電子郵件的接收,它使用TCP的110端口,現在常用的是第三版 ,所以簡稱為POP3。POP3仍采用Client/Server工作模式。當客
42、戶機需要服務時,客戶端的軟件(OutlookExpress或FoxMail)將與POP3服務器建立TCP連接,此后要經過POP3協議的三種工作狀態,首先是認證過程,確認客戶機提供的用戶名和密碼,在認證通過后便轉入處理狀態,在此狀態下用戶可收取自己的郵件或做郵件的刪除,在完成響應的操作后客戶機便發出quit命令,此后便進入更新狀態,將做刪除標記的郵件從服務器端刪除掉。到此為止整個POP過程完成。IMAP是Internet Message Access Protocol的縮寫,顧名思義,主要提供的是通過Internet獲取信息的一種協議。IMAP 是一種用于郵箱訪問的協議,使用IMAP協議可以在C
43、lient端管理 Server上的郵箱,它與POP不同,郵件是保留在服務器上而不是download到本地,在這一點上IMAP是與Webmail相似的。但IMAP有比Webmail更好的地方,它比Webmail更高效和安全,可以離線閱讀等等。 IMAP還提供基于服務器的郵件處理以及共享郵件信箱等功能。郵件(包括已下載郵件的副本)在手動刪除前保留在服務器中,這有助于郵件檔案的生成和共享。用戶可在任何客戶機上都可查看服務器上的郵件。這讓那些漫游用戶感到很方便。一般的郵件系統的體系結構如下圖(圖3.1)所示。 圖3.1 郵件系統的體系結構3.2 使用LoadRunner VuGen對Foxmail發郵
44、件進行錄制在對Foxmail進行測試之前要先保證本機已安裝客戶端軟件,然后才可以對其進行錄制。 啟動LoadRunner,打開Vuser,在“file”菜單下,選擇“New”,在Vuser類型列表中,選中“Simple Mail Protocol(SMTP)”,如圖3.3所示。 圖3.3 在虛擬用戶列表中選擇SMTP Vuser單擊“Create”按鈕,會彈出如圖3.4所示的錄制選項設置對話框。 圖3.4 在錄制選項中設置Foxmail應用程序路徑 “Application type”(應用程序類型)選擇“Win32 Applications”,在“Program to record”(錄制程
45、序)選項中輸入Foxmail的應用程序路徑,在本例中為“E:Program FilesFoxmailFoxmail.exe”,單擊“OK”按鈕,開始錄制。錄制開始后,Vuser會找到應用程序路徑,并啟動Foxmail。這時Vuser錄制工具條有如下提示,如圖3.5所示。 圖3.5 Foxmail登錄引起網絡67次交互事件這說明Foxmail完成登錄這個操作,在網絡上已經有了67次交互。下面我們在這里定義一個Transaction(事務),用來度量發郵件的操作。單擊工具條上的Transaction開始點,定義一個名為“sendmail”的Transaction。然后發一封郵件。單擊“發送”按鈕,
46、郵件被發送。這時我們再觀察VU錄制工具條,發現如圖3.6所示的提示。 圖3.6 Foxmail發送郵件引發的網絡交互事件交互事件已經由之前的67次增長到91次,這說明發送郵件的操作在網絡上產生了9167=24次交互。單擊工具條上結束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創建并運行測試場景郵件系統是業務處理十分頻繁、數據交換吞吐量很大的系統,郵件處理的速度直接關系到公司的經濟效益和客戶對公司的評價。在客觀條件下,整個廣域網系統必須在大業務量的情況下同時保持快速的實時響應能力,以保證整個業務系統的通暢運行。為此我們提出如下性能指標:登錄:系統能夠處理900用戶/分鐘,至少支持上百用戶并發,登錄響應時 間不超過30秒。發郵件:系統能夠處理400封郵件/秒,響應時間不超過10秒。鑒于以上性能指標,我們決定把本次性能測試分解為如下步驟來進行。 A.并發登陸測試:900個終端一分鐘內并發登陸系統,且響應時間在30秒之
50、內。B.發送郵件測試:多個終端進行發送,逐漸加壓,以達到400封郵件/秒的壓力為限。下面我們把性能指標的場景實現方式進行了明確的定位: A.并發登陸測試場景并發登陸900用戶/分鐘,登陸響應時間在30秒之內。這里的并發登陸900用戶/分鐘指的是系統能夠在1分鐘內接受900個用戶的登陸請求,而處理的效果如何則在交易終端體現,即登陸響應時間。因此我們把用戶性能指標轉化為如下的測試場景:從第一秒鐘開始,用loadrunner每秒鐘登陸15個用戶,直到1分鐘結束,從終端向系統一共發送900個左右的用戶登陸請求,系統在一分鐘內建立了900個連接。在終端觀察并統計登陸響應時間。如果Foxmail郵件系統不
51、能響應持續增加的登陸請求或平均登陸響應時間大于30秒,并發登陸測試場景都不能算通過。B.發送郵件測試場景在loadrunner中,建立goal-orented的測試場景,以400封郵件/秒為目標,將調度權交給loadrunner來試圖達到這個指標。以上的測試場景要求均在loadrunner中的Controller進行設置完成。設置完場景之后我們就可以運行場景了。在loadrunner中的controller中開啟系統資源計數器,檢測系統資源消耗情況,并最終和測試結果數據合并,成為分析圖表。A: 并發登陸測試依照設計好的測試場景,用loadrunner工具在一分鐘內漸增向系統發送登陸請求。分別進
52、行三次,結果如下 第一次:成功登陸685個用戶,平均響應時間為27.5秒/筆。第二次:成功登陸701個用戶,平均響應時間為28.3秒/筆。第三次:成功登陸692個用戶,平均響應時間為26.9秒/筆。B:發送郵件測試: 對于通過網絡接口發送的批量發送郵件請求,均在性能指標所指定的時間范圍內得到請求成功的反饋消息,說明主機已經處理成功。3.4.使用LoadRunner Analysis來分析軟件性能在Controller工具欄中點擊第一個 圖標,啟動LoadRunner Analysis。由于LoadRunner Analysis生成的分析圖較多,我們在這里只看其中的幾個圖。 圖3.7 評測服務器性能圖 圖 3.8 900個用戶的并發測試結果由上圖我們可以看出在測試期間,服務器比較穩定,沒有出現太大的波動,這說明服務性能比較穩定。 圖 3.9 CPU利用率 由所得分析圖我們可得測試結果分析及性能評價如下: A.并發測試結果分析及性能評價根據上述的并發測試響應時間,以及圖3.8我們可得如下結論:Foxmail郵件系統在一分鐘內并不能接受900個并發用戶的登陸請求,其可接受的登陸請求用戶數大概為690個左右。在這樣的條件下,登陸響應時間在我們所設計的范圍之內。B.發送郵件測試結果分析及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論