性能測試面試題總結(jié)_第1頁
性能測試面試題總結(jié)_第2頁
性能測試面試題總結(jié)_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、,.1.什么是負(fù)載測試?什么是性能測試?負(fù)載測試是一種性能測試指數(shù)據(jù)在超負(fù)荷環(huán)境中運(yùn)行,程序是否能夠承擔(dān)在這種測試中, 將使測試對象承擔(dān)不同的工作量, 以評測和評估測試對象在不同工作量條件下的性能行為, 以及持續(xù)正常運(yùn)行的能力。 負(fù)載測試的目標(biāo)是確定并確保系統(tǒng)在超出最大預(yù)期工作量的情況下仍能正常運(yùn)行。此外,負(fù)載測試還要評估性能特征,例如,響應(yīng)時(shí)間、事務(wù)處理速率和其他與時(shí)間相關(guān)的方面。性能測試主要使用場景測試軟件系統(tǒng)的性能是否滿足生產(chǎn)性能的要求,包括負(fù)載測試, 強(qiáng)度測試,數(shù)據(jù)庫容量測試,基準(zhǔn)測試以及競爭(并發(fā),用戶)測試。2.性能測試包含了哪些測試(至少舉出3 種)包括負(fù)載測試,強(qiáng)度測試,數(shù)據(jù)庫

2、容量測試,基準(zhǔn)測試以及競爭測試3.簡述性能測試的步驟第一步:需求分析、計(jì)劃測試,設(shè)計(jì)測試用例第二步:測試設(shè)計(jì)和開發(fā)(測試腳本錄制及調(diào)試,測試場景設(shè)計(jì))第三步:測試執(zhí)行(測試環(huán)境搭建,場景部署,場景執(zhí)行,監(jiān)視場景)第四步:測試結(jié)果分析,性能問題定位,測試報(bào)告評估4.簡述使用Loadrunner 的步驟制定性能測試計(jì)劃 -使用 Vuser 錄制調(diào)試腳本 VuGen-用 Loadrunner Controller 設(shè)置場景 -運(yùn)行場景 -監(jiān)視場景 by Loadrunner online runtime 等 -分析測試結(jié)果5.什么時(shí)候可以開始執(zhí)行性能測試?功能測試 通過;一般需要進(jìn)行性能測試的系統(tǒng),

3、 都是用戶量比較大、 業(yè)務(wù)使用比較頻繁、 比較重要的功能模塊。6.LoadRunner 由哪些部件組成?Virtual User Generator- 生成用于“ Controlier ”部署的 VusersLoadRunner Controlier- 產(chǎn)生壓力和搜集測試結(jié)果數(shù)據(jù)LoadRunner Analysis-通過圖表分析工具來編譯和顯示測試結(jié)果7.你使用 LoadRunner 的哪個(gè)部件來錄制腳本?使用 Virtual User Generator 錄制測試腳本8.LoadRunner 的哪個(gè)部件可以模擬多用戶并發(fā)下回放腳本?LoadRunner 的 Controller 組件。9.

4、什么是集合點(diǎn)?設(shè)置集合點(diǎn)有什么意義?Loadrunner 中設(shè)置集合點(diǎn)的函數(shù)是哪個(gè)?在性能測試過程中, 需要模擬大量用戶在同一時(shí)刻, 訪問系統(tǒng)并同時(shí)操作某一任務(wù), 可以通過配置集合點(diǎn)來實(shí)現(xiàn),多個(gè)用戶同時(shí)進(jìn)行某操作;集合點(diǎn)可以在服務(wù)器上創(chuàng)建密集的用戶負(fù)載,使LoadRunner 能夠測試服務(wù)器在負(fù)載狀; .,.態(tài)下的性能。設(shè)置集合點(diǎn)函數(shù):lr_rendezvous(Meeting) ;/ Meeting是集合點(diǎn)名稱10.什么是場景?場景的重要性有哪些?如何設(shè)置場景?場景用于模擬用戶實(shí)際業(yè)務(wù)操作;LoadRunner 中場景有手工場景和面向目標(biāo)的場景。設(shè)置場景:選擇場景類型、設(shè)置運(yùn)行時(shí)設(shè)置、模擬用

5、戶數(shù)、加減壓方式、持續(xù)時(shí)間,配置負(fù)載生成器。11.請解釋一下如何錄制web 腳本?利用 Virtual User Generator 錄制測試腳本,錄制步驟:1、選擇合適的協(xié)議-Web(Http/Html),2、設(shè)置錄制選項(xiàng)(HTML-based Script/URL-based Script)3、開始錄制12.為什么要?jiǎng)?chuàng)建參數(shù)?如何創(chuàng)建參數(shù) ?A12:LoadRunner 在錄制腳本的時(shí)候,只是忠實(shí)的記錄了所有從客戶端發(fā)送到服務(wù)器的數(shù)據(jù),而在進(jìn)行性能測試的時(shí)候,為了更接近真實(shí)的模擬現(xiàn)實(shí)應(yīng)用,對于某些信息需要每次提交不同的數(shù)據(jù),或者使用多個(gè)不同的值進(jìn)行循環(huán)輸入。這時(shí),在LoadRunner 中

6、就可以進(jìn)行參數(shù)化設(shè)置,以使用多個(gè)不同的值提交應(yīng)用請求?!緟?shù)化】:使用指定數(shù)據(jù)源中的值來替換腳本錄制生成的語句中的參數(shù)?!緟?shù)化好處】 減少腳本的大小 提供使用不同的值執(zhí)行腳本的能力,更加真實(shí)的模擬現(xiàn)實(shí)應(yīng)用?!緟?shù)化步驟】 用參數(shù)替換Vuser 腳本中的常量值 為參數(shù)設(shè)置屬性和數(shù)據(jù)源13.什么是關(guān)聯(lián)?請解釋一下自動(dòng)關(guān)聯(lián)和手動(dòng)關(guān)聯(lián)的不同。A13:【關(guān)聯(lián)的定義】簡單的說:就是把腳本中某些寫死(固定)的數(shù)據(jù),轉(zhuǎn)變成動(dòng)態(tài)的數(shù)據(jù),或者說將前面語句的結(jié)果數(shù)據(jù)保存下來,然后在后面的語句提交請求時(shí)使用這些數(shù)據(jù)?!拘枰P(guān)聯(lián)的前提條件】:客戶端需要從服務(wù)器端返回?cái)?shù)據(jù)中獲取部分?jǐn)?shù)據(jù),并將這些部分?jǐn)?shù)據(jù)處理后作為自己下

7、一次請求的一部分發(fā)出?!咀詣?dòng)關(guān)聯(lián)與手工關(guān)聯(lián)的不同】:自動(dòng)關(guān)聯(lián)是在腳本錄制過程中,VuGen 會根據(jù)已經(jīng)制定好的規(guī)則,自動(dòng)找出需要關(guān)聯(lián)的值或腳本錄制完成后,執(zhí)行腳本一次,通過CorrelationStudio 自動(dòng)找出需要關(guān)聯(lián)的數(shù)據(jù),并建立關(guān)聯(lián); 而手動(dòng)關(guān)聯(lián)是需要錄制兩份相同業(yè)務(wù)流程的腳本,輸入的數(shù)據(jù)要相同,利用WinDiff 工具,找出兩份腳本之間不同之處,也就是需要關(guān)聯(lián)的數(shù)據(jù),再通過 web_reg_save_param 函數(shù)手動(dòng)建立關(guān)聯(lián),將腳本中用到關(guān)聯(lián)的數(shù)據(jù)參數(shù)化。14.你如何找出哪里需要關(guān)聯(lián)?請給一些你所在項(xiàng)目的實(shí)例。A14:1、錄制兩份相同業(yè)務(wù)流程的腳本,輸入的數(shù)據(jù)要相同; .,.2

8、、利用 WinDiff 工具,找出兩份腳本之間不同之處,也就是需要關(guān)聯(lián)的數(shù)據(jù)3、通過 web_reg_save_param 函數(shù)手動(dòng)建立關(guān)聯(lián),將腳本中用到關(guān)聯(lián)的數(shù)據(jù)參數(shù)化。通過錄制兩份腳本, 進(jìn)行對比, 可知 jsessionid、sap-ext-sid、sap-wd-cltwndid 、sap-wd-tstamp需要進(jìn)行關(guān)聯(lián)。15.你在哪里設(shè)置自動(dòng)關(guān)聯(lián)選項(xiàng)?錄制選項(xiàng)中進(jìn)行設(shè)置16.哪個(gè)函數(shù)是用來截取虛擬用戶腳本中的動(dòng)態(tài)值?(手工管聯(lián))A16:Web_reg_save_param 函數(shù)主要根據(jù)需要做關(guān)聯(lián)的動(dòng)態(tài)數(shù)據(jù)前面和后面的固定字符串來識別、提取動(dòng)態(tài)數(shù)據(jù),所以在做關(guān)聯(lián)時(shí),需要找出動(dòng)態(tài)數(shù)據(jù)的左、

9、右邊界字符串。1.函數(shù)原型:int web_reg_save_param (const char *ParamName, , LAST); 2.參數(shù)說明:ParamNam:存放動(dòng)態(tài)數(shù)據(jù)的參數(shù)名稱List of Attributes :其它屬性,包含 Notfound 、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、 SaveLen。17.你在 VUGen 中何時(shí)選擇關(guān)閉日志?何時(shí)選擇標(biāo)準(zhǔn)和擴(kuò)展日志?在腳本運(yùn)行調(diào)試成功后應(yīng)關(guān)閉日志。 創(chuàng)建發(fā)送函數(shù)和消息日志時(shí)用標(biāo)準(zhǔn)日志, 創(chuàng)建警告和其他信息是用擴(kuò)展日志。18.你如何調(diào)試LoadRunner 腳本?在

10、 VuGen 設(shè)置斷點(diǎn)breakpoints ,然后使用單步跟蹤Run Step by Step,輸出調(diào)試日志19 你在 LR 中如何編寫自定義函數(shù)?請給出一些你在以前進(jìn)行的項(xiàng)目中編寫的函數(shù)。Give me few functions you wrote in your previous project? - Before we create the User Defined functions we need to create the externallibrary (DLL) with the function. We add this library to VuGen bin dire

11、ctory. Once the library is added then we assign user defined function as a parameter. The function should have the following format:_declspec (dllexport) char* (char*, char*)lr_load_dll(user32.dll);Examples of user defined functions are as follows:GetVersion, GetCurrentTime, GetPltform are some of t

12、he user defined functions used in my earlier project.20.在運(yùn)行設(shè)置下你能更改那些設(shè)置?pacing:每個(gè)虛擬用戶腳本包括三個(gè)部分:vuser_init, Run (Actions), vuser_end.當(dāng)你運(yùn)行腳本的時(shí)候你能通知,虛擬用戶重復(fù)執(zhí)行run 部分,每一個(gè)重復(fù)做為一個(gè)iteration.注意:vuser_init和 vuser_end 部分是不被重復(fù)的。; .,.Think Time Settings:虛擬用戶think time 仿效一個(gè)真實(shí)用戶在活動(dòng)中等待的時(shí)間,例如:當(dāng)一個(gè)用戶從服務(wù)器接受數(shù)據(jù)的時(shí)候,在響應(yīng)前這個(gè)用戶需要

13、等待數(shù)秒來接受數(shù)據(jù),這個(gè)被耽擱的時(shí)間就是think time 。Error Handling :你能指定一個(gè)虛擬用戶在腳本執(zhí)行期間如何處理錯(cuò)誤,默認(rèn)的,當(dāng)一個(gè)虛擬用戶發(fā)現(xiàn)一個(gè)錯(cuò)誤的時(shí)候, 它會隨著下一次重復(fù)繼續(xù)下去, 你能使用這個(gè)設(shè)置來通知虛擬用戶當(dāng)發(fā)生錯(cuò)誤的時(shí)候是否繼續(xù)執(zhí)行腳本。Run Logic:迭代次數(shù)21.你在不同的環(huán)境下如何設(shè)置迭代?A21:在 “Run Time Settings”中設(shè)置22.你如何在負(fù)載測試模式下執(zhí)行功能測試?A22:在負(fù)載測試模式下,可以通過同時(shí)運(yùn)行數(shù)個(gè)虛擬用戶,通過增加虛擬用戶數(shù),確定服務(wù)器在多大的負(fù)載量下, 仍然可以正常運(yùn)行, 我一般進(jìn)行核心功能操作, 驗(yàn)證

14、核心功能運(yùn)行是否正常。23.什么是逐步遞增?你如何來設(shè)置?A23:虛擬用戶數(shù)隨著負(fù)載時(shí)間逐漸增加,可以幫助確定系統(tǒng)響應(yīng)時(shí)間減慢的準(zhǔn)確時(shí)間點(diǎn)??梢栽?“加壓 ”選項(xiàng)卡中進(jìn)行設(shè)置:如下圖所示,將設(shè)置更改為:“每 30 秒啟動(dòng)2 個(gè)Vuser ”24.以線程方式運(yùn)行的虛擬用戶有哪些優(yōu)點(diǎn)?A24:以線程方式運(yùn)行的虛擬用戶,在默認(rèn)情況下, Controller 為每 50 個(gè)用戶僅啟動(dòng)一個(gè) mmdrv 進(jìn)程,而每個(gè)用戶都按線程方式來運(yùn)行,這些線程用戶將共享父進(jìn)程的內(nèi)存,這就節(jié)省了大量內(nèi)存空間,從而可以在一個(gè)負(fù)載生成器上運(yùn)行更多的用戶。25.當(dāng)你需要在出錯(cuò)時(shí)停止執(zhí)行腳本,你怎么做?取消運(yùn)行設(shè)置中的“Con

15、tinue on error 復(fù)選”框。或者使用 lr_abort 函數(shù)。26.響應(yīng)時(shí)間和吞吐量之間的關(guān)系是什么?A26:當(dāng)系統(tǒng)吞吐量未達(dá)到系統(tǒng)處理極限時(shí),系統(tǒng)性能不會衰減,交易平均響應(yīng)時(shí)間一般也不會遞增, 當(dāng)系統(tǒng)達(dá)到吞吐量極限時(shí), 客戶端交易會在請求隊(duì)列中排隊(duì)等待, 等待的時(shí)間會記錄在響應(yīng)時(shí)間中,故交易平均響應(yīng)時(shí)間一般會遞增。27.說明一下如何在LR 中配置系統(tǒng)計(jì)數(shù)器?A27:以 windows 資源監(jiān)控為例,可右鍵點(diǎn) “添加度量 ”,輸入系統(tǒng) IP、選擇平臺類型,確定即可,詳細(xì)參加 LR自帶操作手冊 _ 。對于監(jiān)控不同類型的操作系統(tǒng),需要做一些準(zhǔn)備工作,可參見監(jiān)控操作系統(tǒng)資源部分。28.你

16、如何識別性能瓶頸?A28:性能瓶頸分為:硬件瓶頸和軟件瓶頸; .,.性能瓶頸可以通過監(jiān)控器來分析發(fā)現(xiàn),這些監(jiān)控器包括應(yīng)用服務(wù)器監(jiān)控、web 服務(wù)器監(jiān)控、數(shù)據(jù)庫服務(wù)器監(jiān)控器和網(wǎng)絡(luò)監(jiān)控器;它們可以幫助分析導(dǎo)致響應(yīng)時(shí)間增加的原因;性能度量一般包括響應(yīng)時(shí)間、吞吐量、每秒點(diǎn)擊率、網(wǎng)絡(luò)延遲等等。29.如果 web 服務(wù)器、數(shù)據(jù)庫以及網(wǎng)絡(luò)都正常,問題會出在哪里?A29:問題可能出在系統(tǒng)本身或應(yīng)用服務(wù)器、或?yàn)閼?yīng)用編寫的代碼編寫中。30.如何發(fā)現(xiàn) web 服務(wù)器的相關(guān)問題?A30:可以利用web 資源監(jiān)控器發(fā)現(xiàn)web 服務(wù)器相關(guān)問題,在場景執(zhí)行過程中,可以利用監(jiān)控器分析web 服務(wù)器吞吐量、每秒點(diǎn)擊率、每秒HT

17、TP 響應(yīng)數(shù)、每秒頁面下載數(shù),以及web 服務(wù)器硬件資源使用情況等。31.如何發(fā)現(xiàn)數(shù)據(jù)庫的相關(guān)問題?A31:可以通過數(shù)據(jù)庫監(jiān)控器和數(shù)據(jù)資源圖發(fā)現(xiàn)數(shù)據(jù)庫相關(guān)的問題,例如在運(yùn)行 Controller 之前,可以指定需要度量的資源,之后可以根據(jù)監(jiān)控的數(shù)據(jù),分析數(shù)據(jù)庫相關(guān)的問題32.解釋所有 web 錄制配置?A32:選擇錄制協(xié)議、設(shè)置錄制選項(xiàng)、選擇瀏覽器 、選擇存放路徑、開始錄制。33.解釋一下覆蓋圖和關(guān)聯(lián)圖的區(qū)別?A33:覆蓋圖:合并兩個(gè)圖的內(nèi)容,使用同一個(gè) X 軸,合并圖左 Y 軸顯示當(dāng)前圖的值,合并圖右 Y 軸顯示被合并圖的值。關(guān)聯(lián)圖:當(dāng)前活動(dòng)圖的Y 軸變?yōu)楹喜D的X 軸,被合并圖的Y 軸變成

18、合并圖的Y 軸。34.你如何設(shè)計(jì)負(fù)載?標(biāo)準(zhǔn)是什么?A34:負(fù)載測試計(jì)劃多少用戶數(shù)量、使用什么類型的機(jī)器、以及在什么環(huán)境下進(jìn)行。主要基于兩個(gè)重要的文檔, 任務(wù)分布圖和事務(wù)信息, 任務(wù)分布圖告訴我們在負(fù)載時(shí)間段內(nèi), 某一個(gè)事務(wù)使用的用戶數(shù),高峰使用率及低峰使用率均來自該文檔;事務(wù)信息告訴我們事務(wù)名及優(yōu)先級,在設(shè)計(jì)場景時(shí)可以參考。35.Vuser_init 中包括什么內(nèi)容?A35:Vuser_init 中包含在腳本執(zhí)行過程中只需執(zhí)行一次的腳本。 一般來說, 所有需要初始化的都可以放在 vuser_init 里面,比如登錄。36. Vuser_end 中包括什么內(nèi)容?A36: vuser_end 中一般包含退出的過程,比如退出系統(tǒng),主要在腳本執(zhí)行完成或停止時(shí)運(yùn)行,在設(shè)置了迭代次數(shù)時(shí),vuser_end 和 vuser_int 均只執(zhí)行一次。37.什么是 think time ? think_time 有什么用?A37:思考時(shí)間:用戶在各步驟之間停下來進(jìn)行思考的時(shí)間,由于用戶基于其經(jīng)驗(yàn)水平和目標(biāo)而與應(yīng)用程序進(jìn)行交

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論