使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試_第1頁(yè)
使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試_第2頁(yè)
使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試_第3頁(yè)
使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試_第4頁(yè)
使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、使用ACT對(duì)Web程序進(jìn)行性能容量測(cè)試測(cè)試中心 劉艷會(huì)通過(guò)對(duì)WAS使用文檔的閱讀,我們已經(jīng)知道了壓力測(cè)試的必要性,并且我們也已經(jīng)可以使用WAS來(lái)對(duì)Web應(yīng)用程序進(jìn)行壓力測(cè)試。下面我們將對(duì)Microsoft提供的另外一個(gè)類似的測(cè)試工具ACT進(jìn)行介紹。我們將從以下幾個(gè)方面來(lái)介紹:l ACT概要介紹l 使用錄制的方式生成測(cè)試腳本l 理解測(cè)試報(bào)表l 錄制腳本會(huì)遇到的問(wèn)題以及解決方法l 使用VBScript編寫ACT測(cè)試腳本l ACT與WAS的比較1 ACT概要介紹ACT(全名為 Microsoft Application Center Test)是Microsoft的一個(gè)單獨(dú)的工具,不過(guò)這里我們介紹的

2、是ACT是VS.NET版本,不具備一些功能(可以參見(jiàn)幫助中的“功能”一節(jié))。ACT是專門為對(duì) Web 服務(wù)器進(jìn)行壓力測(cè)試和分析 Web 應(yīng)用程序(包括 Active Server Pages (ASP) 及其所用的組件)的性能和可伸縮性問(wèn)題而設(shè)計(jì)的。它通過(guò)與服務(wù)器建立多個(gè)連接并快速發(fā)送 HTTP 請(qǐng)求來(lái)模擬成員眾多的一組用戶,可以對(duì)Web應(yīng)用程序進(jìn)行持續(xù)時(shí)間長(zhǎng)、高負(fù)載的應(yīng)力測(cè)試。開(kāi)發(fā)人員可通過(guò)使用 Application Center Test,方便地測(cè)試 XML Web 服務(wù)和應(yīng)用程序的性能和功能是否正確。使用瀏覽器的記錄功能快速創(chuàng)建性能測(cè)試腳本,這些腳本可在 Visual Studio .

3、NET 環(huán)境中修改和運(yùn)行。Application Center Test 提供完全自動(dòng)化的模型,以使開(kāi)發(fā)人員可方便地創(chuàng)建測(cè)試套件(當(dāng)新項(xiàng)目版本可用時(shí),這些套件可自動(dòng)運(yùn)行),從而提高開(kāi)發(fā)效率和準(zhǔn)確率。2 開(kāi)始使用ACT使用ACT創(chuàng)建測(cè)試腳本有兩種方法:l 通過(guò)記錄瀏覽器的活動(dòng)l 手工制作在這一章中我們只介紹通過(guò)第一種方式。第五章我們將介紹第二種方式。2.1 建立一個(gè)新的測(cè)試點(diǎn)擊菜單“操作”“新建測(cè)試”出現(xiàn)新建向?qū)Ы缑?,直接下一步,然后選擇“錄制新測(cè)試”,見(jiàn)下圖然后選擇腳本語(yǔ)言(只能選擇VBScript),進(jìn)入下圖時(shí),點(diǎn)“開(kāi)始錄制”,ACT同時(shí)出現(xiàn)IE窗口,在IE地址欄中輸入要測(cè)試的站點(diǎn)的URL,

4、比如(99),然后開(kāi)始操作。操作的過(guò)程可以看作是執(zhí)行測(cè)試用例的過(guò)程。等測(cè)試用例執(zhí)行完以后,點(diǎn)上圖的“停止錄制”按鈕,輸入測(cè)試的名稱下一步,即可錄制完成測(cè)試。2.2 編輯測(cè)試腳本選中需要編輯的測(cè)試名稱,其中的腳本是ACT是自動(dòng)生成的。在代碼區(qū)域直接編輯,就像記事本一樣,非常的方便。2.3 設(shè)置測(cè)試屬性2.3.1 為系統(tǒng)建立多用戶在需要身份驗(yàn)證的Web應(yīng)用程序中,為了模擬多用戶,我們需要事先建立Web系統(tǒng)中的用戶。比如我們需要添加用戶組ABC來(lái)測(cè)試ABC系統(tǒng),可以這樣:1. 在導(dǎo)航欄中選擇用戶,點(diǎn)右鍵,選擇“添加”,出現(xiàn)“新建用戶組”,選擇“新建用戶組”,點(diǎn)右鍵,

5、選擇“重命名”,改成“A系統(tǒng)用戶組”2. 在A系統(tǒng)用戶組中生成用戶:選擇主菜單“操作”“生成用戶”,出現(xiàn)“生成用戶”對(duì)話框,輸入需要生成的用戶數(shù)、用戶前綴以及用戶密碼,確定,ACT會(huì)生成test0-9的用戶,所有用戶密碼都為test,當(dāng)然這些必須和A系統(tǒng)的用戶一致。2.3.2 設(shè)置屬性選擇測(cè)試名稱,右鍵,點(diǎn)“屬性”,見(jiàn)下圖打開(kāi)屬性窗口的“常規(guī)”選項(xiàng)卡1. 設(shè)置測(cè)試的負(fù)載級(jí)別 瀏覽器同時(shí)連接數(shù)。在測(cè)試運(yùn)行中,ACT可以打開(kāi)多個(gè)與 Web 服務(wù)器的連接,并可以在每個(gè)連接上發(fā)送請(qǐng)求。使用多個(gè)連接可以模擬同時(shí)有多個(gè)用戶訪問(wèn) Web 服務(wù)器的情況。2. 準(zhǔn)備時(shí)間:也就是我們?cè)赪AS文檔中所說(shuō)的“熱身時(shí)間

6、”,意思完全一樣。在測(cè)試運(yùn)行的前幾秒內(nèi),Web 應(yīng)用程序或服務(wù)器可能正在初始化組件或調(diào)整緩存數(shù)據(jù)。在準(zhǔn)備時(shí)間內(nèi),ACT不收集統(tǒng)計(jì)數(shù)據(jù)。3. 運(yùn)行時(shí)間:執(zhí)行測(cè)試腳本要連續(xù)運(yùn)行的時(shí)間,格式為:天數(shù):小時(shí)數(shù):分鐘數(shù):秒數(shù)。通常情況下,要進(jìn)行持續(xù)的壓力測(cè)試,運(yùn)行時(shí)間至少8小時(shí)。4. 迭代次數(shù):在建立測(cè)試腳本的初期,我們常常為了驗(yàn)證測(cè)試腳本運(yùn)行的正確性,通常需要執(zhí)行運(yùn)行的次數(shù)。打開(kāi)屬性窗口的“用戶”選項(xiàng)卡,可以選擇在測(cè)試中選擇需要的用戶組,這里選擇“A系統(tǒng)用戶組”。這里可以多選幾個(gè)用戶組,也可以讓ACT自動(dòng)生成用戶(用于不需要進(jìn)行登陸的系統(tǒng))。關(guān)于自動(dòng)生成用戶和指定用戶組的優(yōu)缺點(diǎn)比較可以參考幫助中的“關(guān)

7、于用戶”。打開(kāi)屬性窗口的“計(jì)數(shù)器”選項(xiàng)卡,可以添加性能計(jì)數(shù)器。關(guān)于計(jì)數(shù)器的作用以及添加計(jì)數(shù)器的必要性,可以參見(jiàn)WAS的使用文檔。2.4 執(zhí)行測(cè)試選擇測(cè)試名稱,右鍵,點(diǎn)“啟動(dòng)測(cè)試”,出現(xiàn)下圖,執(zhí)行測(cè)試頁(yè)面以上界面顯示程序測(cè)試的時(shí)間、剩余時(shí)間、每秒提交的Request數(shù)量、提交的Request總量、錯(cuò)誤數(shù)量等。點(diǎn)擊按鈕【Show details】可以查看詳細(xì)數(shù)據(jù)。3 理解測(cè)試結(jié)果3.1 摘要在導(dǎo)航欄中選擇“結(jié)果”,在“測(cè)試運(yùn)行”中選擇測(cè)試運(yùn)行名稱,在“報(bào)告”中選擇“概述”“摘要”,這樣就可以顯示出測(cè)試結(jié)果的摘要信息。在“摘要”中,包含以下元素:l 簡(jiǎn)單說(shuō)明l 測(cè)試運(yùn)行圖形l 屬性l 摘要l 錯(cuò)誤計(jì)

8、數(shù)l 網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)l 響應(yīng)代碼3.2 性能計(jì)數(shù)器在導(dǎo)航欄中選擇“結(jié)果”,在“測(cè)試運(yùn)行”中選擇測(cè)試運(yùn)行名稱,在“報(bào)告”中選擇“概述”“計(jì)數(shù)器”,這樣就可以顯示出測(cè)試結(jié)果的計(jì)數(shù)器信息。3.3 圖表在導(dǎo)航欄中選擇“結(jié)果”,在“測(cè)試運(yùn)行”中選擇測(cè)試運(yùn)行名稱,在“報(bào)告”中選擇“圖表”,然后選擇X軸和Y軸的代表的信息,這樣就可以顯示出圖表信息。ACT 可以使用測(cè)試運(yùn)行過(guò)程中收集的數(shù)據(jù)創(chuàng)建圖表。圖表對(duì)于可視化分析結(jié)果以及找出數(shù)據(jù)的變化趨勢(shì)很有幫助。可以將某個(gè)測(cè)試的多個(gè)報(bào)告甚至多個(gè)測(cè)試的報(bào)告中的結(jié)果疊加到一張圖表中,這樣可以查看一段時(shí)間內(nèi),對(duì) Web 應(yīng)用程序進(jìn)行修改和調(diào)整時(shí)所引起的性能變化。大多數(shù)分析方法都

9、需要多次測(cè)試運(yùn)行的結(jié)果。這些技術(shù)通常依賴于多次運(yùn)行測(cè)試,通過(guò)逐漸增高負(fù)載級(jí)別來(lái)確定每秒的最大請(qǐng)求數(shù)或 Web 應(yīng)用程序可以處理的最大同時(shí)連接。以下是一些常用圖表值和比較的示例。3.3.1 每秒連接數(shù)與請(qǐng)求數(shù)本圖表有助于確定 Web 服務(wù)器可以處理的每秒最大請(qǐng)求數(shù)。 應(yīng)該逐漸增加瀏覽器的同時(shí)連接數(shù)(如 1、2、5、10、20、50、100、500 和 1000)來(lái)多次運(yùn)行測(cè)試。使用的最大數(shù)目可以大于也可以小于 1000。這取決于正在測(cè)試的 Web 服務(wù)器和 Web 應(yīng)用程序。完成所有測(cè)試運(yùn)行之后,可以創(chuàng)建一張圖表,在其橫軸上繪制瀏覽器同時(shí)連接數(shù),在豎軸上繪制每秒請(qǐng)求數(shù) (RPS)。如果同時(shí)連接數(shù)

10、很大,還可以顯示測(cè)試運(yùn)行過(guò)程中 TCP 錯(cuò)誤的增長(zhǎng)情況。因?yàn)榭梢栽谪Q軸上繪制多重值,所以您可以在上面添加 TCP 錯(cuò)誤,同時(shí)查看 TCP 錯(cuò)誤和 RPS 值。圖表刻度將反映“源”列表中當(dāng)前選中的度量。很多 Web 應(yīng)用程序會(huì)增大 RPS 值直至某一特定值,在連接數(shù)超過(guò)了 Web 服務(wù)器可以處理的數(shù)量時(shí),就會(huì)開(kāi)始顯示較低的 RPS 值。這樣,就可以確定最佳每秒請(qǐng)求數(shù)對(duì)應(yīng)的瀏覽器同時(shí)連接數(shù)。如果同時(shí)連接數(shù)超過(guò)了該最佳值,Web 站點(diǎn)每秒處理的請(qǐng)求數(shù)就會(huì)降低。3.3.2 連接與接收最后一個(gè)字節(jié)的時(shí)間 (TTLB)本圖表有助于量化由于同時(shí)連接數(shù)的增長(zhǎng)而引起的性能降低。 接收最后一個(gè)字節(jié)的時(shí)間 (TTL

11、B) 值測(cè)量 Web 服務(wù)器響應(yīng)流的最后部分到達(dá)用戶 Web 瀏覽器所花費(fèi)的時(shí)間。隨著 TTLB 的增加,站點(diǎn)的速度會(huì)降低,并且對(duì)用戶的響應(yīng)也會(huì)減慢。本圖表中的數(shù)據(jù)也是通過(guò)針對(duì)每次測(cè)試運(yùn)行逐漸增大同時(shí)連接數(shù)、并經(jīng)多次運(yùn)行測(cè)試而得到的。在圖表橫軸上繪制同時(shí)連接數(shù),在豎軸上繪制 TTLB。 隨著連接數(shù)的增加,TTLB 值通常會(huì)逐漸增長(zhǎng)。對(duì)于 Web 站點(diǎn)來(lái)說(shuō),這意味著當(dāng)用戶數(shù)和同時(shí)連接數(shù)增長(zhǎng)時(shí),Web 服務(wù)器需要花費(fèi)較長(zhǎng)的時(shí)間來(lái)完成每次響應(yīng)。3.4 請(qǐng)求3.4.1 摘要顯示了所有請(qǐng)求的平均TTFB、TTLB的值。通過(guò)分析每個(gè)請(qǐng)求的值,可以找出在相同的硬件軟件環(huán)境下,很方便地地比較服務(wù)器上所有頁(yè)面的

12、性能,并找出速度最慢的頁(yè)面。同時(shí)這些數(shù)據(jù)還可以用來(lái)計(jì)算頁(yè)面的性能。4 錄制腳本時(shí)可能會(huì)遇到的問(wèn)題以及解決方法4.1 錄制腳本時(shí)如何設(shè)置多用戶?在需要身份驗(yàn)證的Web程序中,錄制完成后,直接執(zhí)行測(cè)試腳本,會(huì)發(fā)現(xiàn)多種連接用的都是在錄制過(guò)程中的用戶?,F(xiàn)在我們假設(shè)錄制過(guò)程中,我們登陸用戶名為 ,密碼為tmptmp1 為Web程序建立用戶組(詳細(xì)過(guò)程參考2.3.1)2 首先在“屬性”設(shè)置“用戶”選項(xiàng)卡中,指定特定的用戶組(參考2.3.2)。3 編輯腳本 3.1 定義全局變量 Dim g_oUser3.2 在腳本中查找到was1所在的過(guò)程,然后在該過(guò)程開(kāi)始給g_oUser賦值 g_oUser = Test

13、.GetCurrentUser3.3 在腳本中查找到was1 , 確認(rèn)就是登陸的用戶名,用 “ & g_oUser.Name & “替換3.4 在腳本中查找到tmptmp,確認(rèn)就是登陸的密碼,用 “ & g_oUser.Password &”替換這樣就可以了。5 使用VBScript編寫ACT測(cè)試腳本使用VBScript直接編寫測(cè)試腳本,只要在2.1中直接“創(chuàng)建空測(cè)試”即可。直接編寫運(yùn)行腳本,有以下好處:l 腳本代碼邏輯比較清楚,易維護(hù)l 一旦Web程序界面、邏輯變化時(shí),容易升級(jí)缺點(diǎn):l 需要比較多的時(shí)間編寫腳本l 必須對(duì)Web程序的內(nèi)部邏輯非常清楚l 如果沒(méi)有腳本編程的經(jīng)驗(yàn)和不熟悉HTTP協(xié)

14、議,比較難上手下面將主要提煉出能夠在大多數(shù)測(cè)試腳本中重用的代碼5.1 需要定義的全局變量以及初始化信息Option ExplicitOn Error Resume Next Comment out this line when debugging.Dim g_oConnectionDim g_oRequestDim g_oUserDim g_oResponseDim g_oCookiesWeb應(yīng)用使用cookies時(shí)才需要定義Dim g_sPageDim g_HTTPServerDim g_HTTPPathDim g_HTTPPortDim g_UseSSLDim g_HTTPVersionD

15、im g_UseKeepAliveDim g_ViewState- 根據(jù)實(shí)際配置情況,初始化以下全局變量的值-g_HTTPServer = localhost需要測(cè)試的Web Server名稱或者IPg_HTTPPath = /duwamish7/需要測(cè)試的虛擬目錄的名字g_HTTPVersion = HTTP/1.1一般情況下不需要更改g_HTTPPort = 80使用的端口號(hào),默認(rèn)是80,一般不需要更改g_UseSSL = False是否使用了加密的安全連接。使用了請(qǐng)?jiān)O(shè)成Trueg_UseKeepAlive = True?一般情況下都設(shè)置成True- 初始化測(cè)試過(guò)程中可能發(fā)生的各種情況-C

16、onst L_ErrHomePage_Text = Error: Page not found. Make sure site is configured and setup properly.Const L_ErrRequest_Text = Error: Invalid request or host not found.Const L_ErrConnect_Text = Error: Unable to create connection.Const L_ErrResponse_Text = Error: Request failed for page: Const L_ErrPageN

17、otFound_Text = Error: Page not found: Const L_NotLoggedIn_Text = not logged in successfully. Make sure proper users are setup.- Web Pages,列出本次測(cè)試要訪問(wèn)到的所有的網(wǎng)頁(yè)的文件名-Const BOOK_PAGE = book.aspxConst CATEGORIES_PAGE = categories.aspxConst DEFAULT_PAGE = default.aspxConst SHOPPINGCART_PAGE = shoppingcart.asp

18、xConst SEARCHRESULTS_PAGE = searchresults.aspxConst ACCOUNT_PAGE = /secure/account.aspxConst LOGON_PAGE = /secure/logon.aspxConst CHECKOUT_PAGE = /secure/checkout.aspxConst ORDER_PAGE = /secure/order.aspx5.2 把測(cè)試過(guò)程日志寫入ACTTrace.LOG文件- ActTrace 參數(shù)說(shuō)明 in strText : 要寫入日志文件的字符串. 功能 把字符串寫入ACTTrace.LOG 日志文件.

19、-Sub ActTrace(strText) Test.Trace strText & vbCrLFEnd Sub5.3 判斷HTTP響應(yīng)是否成功- IsSuccessful 參數(shù)說(shuō)明: in g_oResponse : Response 對(duì)象 功能: 檢查服務(wù)器的返回代碼,驗(yàn)證請(qǐng)求是否成功-Function IsSuccessful(g_oResponse) Dim lStatusCode : lStatusCode = 0 Dim bIsSuccessful lStatusCode = g_oResponse.ResultCode bIsSuccessful = (lStatusCode

20、= 200) And (lStatusCode 0 Then PosStart = InStr(Pos, g_oResponse.Body, value=) PosStart = PosStart + Len (value=) PosEnd = InStr(PosStart, g_oResponse.Body, ) res = Mid(g_oResponse.Body, PosStart, PosEnd - PosStart) Test.SetGlobalVariable vState,res g_ViewState = Test.GetGlobalVariable(vState) End I

21、f End IfEnd Sub5.6 檢查Response.Body是否包含指定的字符串- CheckBody參數(shù): in sTarget : 要在Response.Body中查找的字符串 功能: 驗(yàn)證返回的Response.Body中是否包含sTarget字符串-Function CheckBody(sTarget) Dim oRegExp Dim oMatches Dim sBody Dim bFoundTarget bFoundTarget = False sBody = g_oResponse.Body Set oRegExp = New RegExp oRegExp.Pattern

22、= sTarget run the search Set oMatches = oRegExp.Execute(sBody) If oMatches.Count 0 Then bFoundTarget = True Else ActTrace L_ErrPageNotFound_Text & & sTarget End If CheckBody = bFoundTargetEnd Function5.7 請(qǐng)求指定的網(wǎng)頁(yè)名- GetPage 參數(shù)說(shuō)明: in sGetPage : 要請(qǐng)求的網(wǎng)頁(yè)名 in sPageString : 在請(qǐng)求的網(wǎng)頁(yè)中需要驗(yàn)證的關(guān)鍵字 功能: 請(qǐng)求指定的網(wǎng)頁(yè)sGetPa

23、ge,并且驗(yàn)證該網(wǎng)頁(yè)中是否包含sPageString字符串-Sub GetPage(sGetPage, sPageString) Call PopulateRequest() g_sPage = g_HTTPPath & sGetPage g_oRequest.Path = g_sPage g_oRequest.Verb = GET Set g_oResponse = g_oConnection.Send(g_oRequest) If (g_oResponse Is Nothing) Then ActTrace L_ErrRequest_Text Else If IsSuccessful(g_oResponse) Then Call SetViewState(g_oResponse) If Not CheckBody(sPageString) Then ActTrace L_ErrPageNotFound_Text & & sPageString End If End If End If Set g_oRequest = Nothin

溫馨提示

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

評(píng)論

0/150

提交評(píng)論