版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件性能測試培訓(xùn)初級教程性能測試基礎(chǔ)知識LoadRunner基礎(chǔ)知識Vuser-用戶行為模擬器Controller-性能測試的指揮中心Analysis-尋找系統(tǒng)瓶頸的得力助手培訓(xùn)內(nèi)容簡介什么是性能測試性能測試策略性能測試方面的技能性能測試流程性能測試基礎(chǔ)知識性能測試基礎(chǔ)知識性能測試的含義:通過自動(dòng)化測試工具模擬生產(chǎn)運(yùn)行的業(yè)務(wù)壓力或用戶使用場景來測試系統(tǒng)的性能是否滿足生產(chǎn)性能的要求。性能測試的目的:評估系統(tǒng)的能力識別系統(tǒng)的弱點(diǎn)系統(tǒng)調(diào)優(yōu)驗(yàn)證穩(wěn)定性、可靠性性能測試基礎(chǔ)知識性能測試策略:性能測試(PerformanceTesting)負(fù)載測試(LoadTesting)壓力測試(StressTesting)并發(fā)測試(ConcurrencyTesting)可靠性測試(ReliabilityTesting)……性能測試基礎(chǔ)知識性能測試需要的相關(guān)技能:測試專業(yè)技能軟件編程技能網(wǎng)絡(luò)知識操作系統(tǒng)知識數(shù)據(jù)庫知識中間件知識行業(yè)知識個(gè)人素養(yǎng)性能測試基礎(chǔ)知識性能測試流程:PerformanceTestProcessTestPhasesTaskDeliveryAssessPhaseCollectRequirements,testscope,testgoalPerformancechecklistPlanPhaseFinalizetestscope,milestones,goal,toolsPerformancePlanDesignPhaseDesignthedetailtestcase;CreatetestscriptPerformancetestcaseExecutePhaseCreateScenario;Execute
ScenarioPerformancetestresultPerformanceTuningPhaseAnalyzeissuesandre-testingRe-testresultPostProductionPhaseReviewthefinalperformancetestresultPerformanceTestreportBusinessProfileCreateScriptsScenarioCreationScenarioExecutionResultAnalysisPerformanceTuningLoadRunner基礎(chǔ)知識LoadRunner的組件LoadRunner工作原理LoadRunner在性能測試中的映射LoadRunner常用術(shù)語LoadRunner的協(xié)議HTTP協(xié)議詳解LoadRunner基礎(chǔ)知識LoadRunner的總體架構(gòu)圖,包括各個(gè)組件Vuser,Controller和Analysis之間的關(guān)系。LoadRunner的三大高手Vuser:用戶行為模擬器Controller:性能測試的指揮中心Analysis:尋找系統(tǒng)瓶頸的得力助手LoadRunner基礎(chǔ)知識這是LoadRunner的工作原理,從圖中可以看出如何利用LoadRunner進(jìn)行一次典型的系統(tǒng)性能測試。LoadRunner基礎(chǔ)知識LoadRunner在性能測試中的映射:PlanningTheTestCreatingVuScriptCreatingTheScenarioRunningTheScenarioAnalyzingTheResultsMonitoringTheScenarioLoadRunner性能測試的過程:制定性能測試計(jì)劃開發(fā)測試腳本創(chuàng)建運(yùn)行場景執(zhí)行測試監(jiān)視場景分析測試結(jié)果LoadRunner基礎(chǔ)知識LoadRunner常用術(shù)語<基本概念>:事務(wù)(Transaction):為了衡量服務(wù)器的性能,我們需要定義事務(wù)以獲取這一操作所花費(fèi)的時(shí)間。例如:有一數(shù)據(jù)查詢操作,輸入查詢條件的時(shí)間是我們所不關(guān)注的。從點(diǎn)擊“查詢”按鈕之后到查詢結(jié)果顯示出來,這段時(shí)間才是我們真正需要獲取到的。也就是說當(dāng)點(diǎn)擊按鈕之前讓LoadRunner開始計(jì)時(shí),直到而且顯示出來計(jì)時(shí)結(jié)束。這個(gè)事務(wù)的響應(yīng)時(shí)間才會(huì)在結(jié)果中顯示出來。?思考如何定義一個(gè)事務(wù)的大???它是單一的任務(wù)還是一系列復(fù)雜的任務(wù)?LoadRunner基礎(chǔ)知識LoadRunner常用術(shù)語<基本概念>:思考時(shí)間(ThinkTime):用戶在執(zhí)行兩個(gè)連續(xù)操作期間等待的時(shí)間稱為“思考時(shí)間”。?思考在一個(gè)事務(wù)中如果插入了思考時(shí)間,對事務(wù)會(huì)有什么影響?有思考時(shí)間的腳本和沒有思考時(shí)間的腳本相比,哪個(gè)給服務(wù)器造成的壓力大?哪個(gè)更符合用戶實(shí)際的工作場景?LoadRunner基礎(chǔ)知識LoadRunner常用術(shù)語<基本概念>:集合點(diǎn)(Rendezvous):用以同步虛擬用戶以便恰好在同時(shí)刻執(zhí)行任務(wù)。!提示:集合點(diǎn)只能在Action中添加,Init和End部分不能添加。由于集合點(diǎn)是協(xié)調(diào)多個(gè)虛擬用戶的并發(fā)操作,因而在VU運(yùn)行腳本時(shí)它是沒有任何意思的,它只有在Controller多用戶并發(fā)場景時(shí)才有意義。?思考集點(diǎn)應(yīng)該放在腳本的何處為益?LoadRunner基礎(chǔ)知識LoadRunner常用術(shù)語<基本概念>:檢查點(diǎn)(Checkpoint):用以驗(yàn)證程序的運(yùn)行結(jié)果是否與預(yù)期結(jié)果相符。它并不是LoadRunner里專有的,在WinRunner和QTP中都有檢查點(diǎn)。對于自動(dòng)化測試來講,檢查點(diǎn)是一個(gè)很重要的概念。!提示:選取的檢查點(diǎn)必須滿足是驗(yàn)證事務(wù)通過與否的充分必要條件。它能夠確定系統(tǒng)是一個(gè)正常的狀態(tài)。檢查點(diǎn)可以是常量、變量、文本、圖像文件或是數(shù)據(jù)庫記錄等。LoadRunner基礎(chǔ)知識LoadRunner常用術(shù)語<基本概念>:場景(Scenario):即測試場景,主要表現(xiàn)為Controller中設(shè)計(jì)與執(zhí)行測試用例中的用戶場景。主要工作有,在Controller中選擇虛擬用戶腳本、設(shè)計(jì)虛擬用戶數(shù)量、配置虛擬用戶運(yùn)行時(shí)的行為、選擇負(fù)載發(fā)生器、設(shè)置執(zhí)行時(shí)間等。!提示:LoadRunner中的場景分為兩種:手工場景(ManualScenario)和面向目標(biāo)場景(Goal-OrientedScenario)。在面向目標(biāo)場景中,集合點(diǎn)是不可用的。LoadRunner基礎(chǔ)知識LoadRunner的協(xié)議:網(wǎng)上有很多資料去解釋協(xié)議選擇的重要性,說的貌似很高深,其實(shí)原理很簡單。LoadRunner就像一個(gè)木馬程序,他監(jiān)聽著你與服務(wù)器端的全部“交談”并把它們記錄下來。而不同的應(yīng)用程序所采用的實(shí)現(xiàn)技術(shù)不一樣,就如同我們?nèi)艘粯?,不同地方的人說著不同的語言。這時(shí)我們就需要根據(jù)被測系統(tǒng)的特性來選擇協(xié)議,LoadRunner就會(huì)派出不同語種的“翻譯人員”去監(jiān)聽你們之間的談話。如果選擇了錯(cuò)誤的協(xié)議LoadRunner將不能生成正確的腳本,就如同你派出一個(gè)只會(huì)中文的人去監(jiān)聽美國人之間的談話一般,你將一無所獲。LoadRunner基礎(chǔ)知識LoadRunner所支持協(xié)議按應(yīng)用領(lǐng)域分類:電子商務(wù):FTP、LDAP、Palm、PeopleSoft8mulit-lingual、SOAP、Web(HTTP/HTML)和雙Web/WinSocket協(xié)議。客戶端/服務(wù)器:DB2CLI、DNS、Informix、MSSQLServer、ODBC、Oracle(2層)、SybaseCtlib、SybaseDblib和WindowsSockets協(xié)議。自定義:C模板、VisualBasic模板、Java模板、Javascrīpt和VBscrīpt類型的腳本。EnterpriseJavaBean:EJB測試和Rmi-Java協(xié)議。布式組件:適用于COM/DCOM、Corba-Java和Rmi-Java協(xié)議。中間件:Jacada和Tuxedo(6、7)協(xié)議。流數(shù)據(jù):MediaPlayer(MMS)和Real協(xié)議。郵件服務(wù):Internet郵件訪問協(xié)議(IMAP)、MSExchange(MAPI)、POP3和SMTP。ERP/CRM:Baan、OracleNCA、Peoplesoft-Tuxedo、SAP-Web、SAPGUI、Siebel-DB2CLI、Siebel-MSSQL、Siebel-Web和Siebel-Oracle協(xié)議······LoadRunner基礎(chǔ)知識HTTP協(xié)議原理詳解:瀏覽器Web服務(wù)器DNS域名解析服務(wù)器請求web頁返回頁面請求頁中包含的圖片等元素返回元素瀏覽器解析成網(wǎng)頁當(dāng)用戶在瀏覽器的地址欄里輸入網(wǎng)頁的URL然后回車,瀏覽器首先會(huì)發(fā)送一個(gè)HTTP的命令到Server,Server就會(huì)把頁面的數(shù)據(jù)傳送給瀏覽器,瀏覽器把數(shù)據(jù)解析成我們看到的HTML頁面。但HTTP協(xié)議有一個(gè)特點(diǎn),它是無狀態(tài)的,也就是說瀏覽器和Server的每個(gè)交互都是獨(dú)立無關(guān)的,Server不知道來自瀏覽器的任何兩個(gè)請求是否出自同一頁面,或者是有次序的規(guī)定。因此Web系統(tǒng)在HTTP協(xié)議上層進(jìn)行了控制,通過Cookie、Session等機(jī)制來保證請求的狀態(tài)。LoadRunner基礎(chǔ)知識HTTP協(xié)議原理詳解:當(dāng)用戶在瀏覽器的地址欄里輸入網(wǎng)頁的URL然后回車,瀏覽器首先會(huì)發(fā)送一個(gè)HTTP的命令到Server,Server就會(huì)把頁面的數(shù)據(jù)傳送給瀏覽器,瀏覽器把數(shù)據(jù)解析成我們看到的HTML頁面。但HTTP協(xié)議有一個(gè)特點(diǎn),它是無狀態(tài)的,也就是說瀏覽器和Server的每個(gè)交互都是獨(dú)立無關(guān)的,Server不知道來自瀏覽器的任何兩個(gè)請求是否出自同一頁面,或者是有次序的規(guī)定。因此Web系統(tǒng)在HTTP協(xié)議上層進(jìn)行了控制,通過Cookie、Session等機(jī)制來保證請求的狀態(tài)。LoadRunner基礎(chǔ)知識以下是一個(gè)通過HTTPVuser錄制生成的腳本例子:web_add_cookie("g_current_language=en;DOMAIN=");web_add_cookie("hostSignOn=true;DOMAIN=");web_url(":5443","URL=:5443/","Resource=0","Snapshot=t1.inf","Mode=HTTP",LAST);……web_submit_data("getconfigs.do","Action=:5443/portlets/language/getconfigs.do","Method=POST","RecContentType=text/html","Referer=:5443/security/hostSignon.do?hostSignOn=true","Snapshot=t12.inf","Mode=HTTP",ITEMDATA,"Name=action","Value=signon",ENDITEM,"Name=servProvCode","Value=",ENDITEM,"Name=username","Value=",ENDITEM,"Name=password","Value=",ENDITEM,"Name=accela_select_language","Value=",ENDITEM,"Name=switchLanguageForV360","Value=false",ENDITEM,LAST);HTTP協(xié)議相關(guān)的函數(shù)以web開頭添加Cookie設(shè)置這是LoadRunner錄制的典型HTTP請求請求一個(gè)web頁這個(gè)請求的名字Web頁的具體的URL該頁面在VU里的快照名提交表單HTTP的請求方法,POST方法可用于提交表單信息允許服務(wù)器生成回退鏈表,當(dāng)URL資源訪問失敗瀏覽器所退回的頁面。表單中提交的具體內(nèi)容,即所有涉及的變量名及其參數(shù)值。LoadRunner基礎(chǔ)知識HTTP協(xié)議常用狀態(tài)碼的含義:200:OK
一切正常,對GET和POST請求的應(yīng)答文檔跟在后面。
201:Created
服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。
202:Accepted
已經(jīng)接受請求,但處理尚未完成。300:Multiple
Choices
客戶請求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。
301:Moved
Permanently
客戶請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問新的URL。
302:Found
類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。400:Bad
Request
請求出現(xiàn)語法錯(cuò)誤。
401:Unauthorized
客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面。500:Internal
Server
Error
服務(wù)器遇到了意料不到的情況,不能完成客戶的請求。Vuser-用戶行為模擬器Vuser:通過錄制典型終端用戶執(zhí)行的操作來生成用戶操作腳本。以便作為負(fù)載測試的基礎(chǔ)。LoadRunner腳本開發(fā)步驟:錄制用戶的操作增強(qiáng)測試腳本配置Run-Timesetting在Vuser中獨(dú)立運(yùn)行腳本將腳本集成到ControllerRecordabasicuseroperationEnhance/edittheVuserscriptConfigureRun-TimesettingsIncorporatethescriptintoScenarioRunthescriptinVuser選擇錄制時(shí)所用的瀏覽器Vuser-用戶行為模擬器錄制腳本1、協(xié)議選擇2、錄制選項(xiàng)設(shè)置(以web協(xié)議為例)錄制方式選擇:HTMLorURL自動(dòng)關(guān)聯(lián)策略…Vuser-用戶行為模擬器增強(qiáng)測試腳本:1、插入事務(wù)點(diǎn)2、插入集合點(diǎn)3、插入檢查點(diǎn)4、插入特殊函數(shù)控制腳本流程:if…else字符串函數(shù):strcmp輸出函數(shù):lr_output_messageLR的標(biāo)準(zhǔn)函數(shù):lr_save_stringVuser-用戶行為模擬器配置Run-Timesetting1、Thinktime策略2、Log記錄策略3、Error發(fā)生時(shí)的處理策略4、生成虛擬用戶的方式5、檢查點(diǎn)策略6、網(wǎng)絡(luò)情況設(shè)置7、腳本的迭代控制8、…Vuser-用戶行為模擬器在Vuser中運(yùn)行腳本:保證腳本運(yùn)行的正確性。然而要想腳本能夠真正的在測試場景中正確無誤的運(yùn)行,我們不僅僅需要將腳本放在Vuser中運(yùn)行,還需要在Controller中運(yùn)行。一般需要以下幾步:1、VU里單用戶單循環(huán)run(SUSI)2、VU里單用戶多循環(huán)run(SUMI)3、Controller里多用戶單循環(huán)run(MUSI)4、Controller里多用戶多循環(huán)run(MUMI)驗(yàn)證腳本的正確性驗(yàn)證數(shù)據(jù)池動(dòng)作的正確性驗(yàn)證腳并發(fā)的正確性驗(yàn)證數(shù)據(jù)池并發(fā)的正確性Controller-性能測試的指揮中心如果說性能測試的總導(dǎo)演是性能測試工程師,那么Controller就是當(dāng)之無愧的執(zhí)行導(dǎo)演了。Controller首先把演員(虛擬用戶)都召集齊,然后把劇本交給它們(VU腳本),分配到各自的舞臺(tái)(LoadGenerator),一聲今下,演出開始?。∽⒁猓寒?dāng)Controller運(yùn)行場景任務(wù)時(shí),在任務(wù)管理器可以找到一個(gè)名為“l(fā)r_bridge”的進(jìn)程,顧名思義,它就是起到聯(lián)系Controller和Generator的橋梁作用,Controller的指令就是通過它來下達(dá)到LoadGenerator的。而LoadGenerator接到運(yùn)行指令后,會(huì)啟動(dòng)一個(gè)mdrv.exe,以多進(jìn)程/多線程方式調(diào)用運(yùn)行腳本文件。Controller-性能測試的指揮中心多進(jìn)程/多線程方式:用戶可以在Controller的runtimesetting中選擇Vuser的運(yùn)行方式:多線程/多進(jìn)程。如果按進(jìn)程運(yùn)行每個(gè)Vuser,LR則對每個(gè)Vuser生成一個(gè)實(shí)例,都將啟動(dòng)一個(gè)mdrv進(jìn)程。多個(gè)mdrv進(jìn)程會(huì)占用大量的內(nèi)在及其它資源,這就限制了在同一負(fù)載生成器上運(yùn)行的Vuser數(shù)量。如果按線程運(yùn)行,在默認(rèn)情況下,Controller為每50個(gè)Vuser僅啟動(dòng)一個(gè)mdrv進(jìn)程,這些線程Vuser將共享父進(jìn)程的內(nèi)存段。這就大大節(jié)省了內(nèi)存空間,從而在同一負(fù)載生存器上運(yùn)行更多的Vuser.!注意:只有線程安全協(xié)議才能作為線程運(yùn)行。需要注意的是下列協(xié)議不線程安全協(xié)議:Sybase-Ctlib、Sysbase-Dbib、Informix、Tuxedo和PeopleSoft-Tuxedo.Controller-性能測試的指揮中心設(shè)計(jì)性能測試場景:1、手工場景(ManualScenario):創(chuàng)建虛擬用戶組,設(shè)置虛擬用戶數(shù)目以及其它Run-time信息。2、面向目標(biāo)場景(Goal-OrientedScenario):先定義測試要達(dá)到的目標(biāo),然后LR自動(dòng)基于這些目標(biāo)創(chuàng)建場景,運(yùn)行過程中,會(huì)不斷地把結(jié)果和目標(biāo)相比較,以決定下一步怎么。手工場景是我們常用的設(shè)計(jì)模式,負(fù)載測試就常用它。手工場景符合我們的性能測試
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 承包到期工程合同范例
- 機(jī)械招聘合同范例
- 正規(guī)合同范例好處
- 子基金成立合同范例
- 2013版造價(jià)合同范例
- 滅火救援服務(wù)合同范例
- 數(shù)字禮品采購合同范例
- 南京醫(yī)科大學(xué)康達(dá)學(xué)院《建筑冷熱源課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中小學(xué)古田會(huì)議課程設(shè)計(jì)
- 折紙小馬課程設(shè)計(jì)
- 氣相色譜檢測器FID-培訓(xùn)講解課件
- 新教材人教A版高中數(shù)學(xué)選擇性必修第一冊全冊教學(xué)課件
- 《HSK標(biāo)準(zhǔn)教程1》-HSK1-L8課件
- 幼兒園小班繪本:《藏在哪里了》 課件
- 上冊外研社六年級英語復(fù)習(xí)教案
- 替班換班登記表
- 社會(huì)保險(xiǎn)法 課件
- 阿利的紅斗篷 完整版課件PPT
- 橋梁工程擋土墻施工
- 供應(yīng)商質(zhì)量問題處理流程范文
- 實(shí)驗(yàn)室生物安全手冊(完整版)資料
評論
0/150
提交評論