面試穩(wěn)了!集齊幾千名程序員精選的 100 道性能面試題!
什么是性能測試?
在軟件中,性能測試(也稱為性能測試)確定或驗證被測系統(tǒng)或應(yīng)用程序的速度,可伸縮性和/或穩(wěn)定性特征。性能與實現(xiàn)滿足項目或產(chǎn)品性能目標的響應(yīng)時間,破壞和資源利用水平有關(guān)。進行Web應(yīng)用程序性能測試是為了降低系統(tǒng)可用性,可靠性,可伸縮性,響應(yīng)性,穩(wěn)定性等風(fēng)險。性能測試包含多種不同類型的測試,例如負載測試,體積測試,壓力測試,容量測試,均熱/耐久測試和逐步測試,以測試測試發(fā)現(xiàn)或解決系統(tǒng)中的性能問題。
性能工程與性能測試之間的區(qū)別?
性能工程是一門學(xué)科,其中包括在軟件開發(fā)生命周期(SDLC)的每個階段中的最佳實踐和活動,以測試和調(diào)整應(yīng)用程序,以實現(xiàn)所需的性能。性能測試可模擬實際的最終用戶負載,以確定系統(tǒng)的速度,響應(yīng)能力和穩(wěn)定性。它涉及在各種參數(shù)(例如響應(yīng)時間,并發(fā)用戶負載,服務(wù)器吞吐量等)下測試和報告應(yīng)用程序的當(dāng)前性能。
什么是性能調(diào)優(yōu)?性能調(diào)整有哪些類型?
性能調(diào)整是一個專注于提高系統(tǒng)性能的過程。有兩種類型的性能調(diào)整。1.硬件調(diào)優(yōu):優(yōu)化,添加或替換系統(tǒng)的硬件組件以提高系統(tǒng)性能的過程稱為硬件調(diào)優(yōu)。2.軟件調(diào)優(yōu):通過對代碼,數(shù)據(jù)庫等進行概要分析來確定軟件級別的瓶頸。借助微調(diào)或修改軟件來解決瓶頸的方法稱為軟件調(diào)優(yōu)。
性能測試中的配置文件是什么?
通過優(yōu)化代碼,性能分析有助于微調(diào)應(yīng)用程序。必須對代碼進行分析,調(diào)試和審查,以確定使其運行更快的最有效方法。
列舉一些常見的性能瓶頸?
性能測試的目的是消除性能瓶頸。一些常見的性能瓶頸如下CPU利用率內(nèi)存利用率網(wǎng)絡(luò)利用軟件限制磁盤使用情況
性能測試的進入和退出標準是什么?
進入標準:明確定義的服務(wù)水平協(xié)議(SLA)/性能目標退出標準:實現(xiàn)SLA /性能目標
性能測試過程涉及什么
識別測試環(huán)境:確定物理測試環(huán)境,生產(chǎn)環(huán)境,并知道可用的測試工具。在開始測試過程之前,請了解硬件,軟件和網(wǎng)絡(luò)配置的詳細信息。必須在項目的整個生命周期中定期重新審查此過程。確定性能驗收標準:這包括響應(yīng)時間,吞吐量和資源利用率的目標和約束。響應(yīng)時間是用戶關(guān)心的問題,吞吐量是業(yè)務(wù)問題,資源利用率是系統(tǒng)問題。還必須確定那些目標和約束可能無法捕獲的項目成功標準。計劃和設(shè)計性能測試:確定關(guān)鍵方案以測試所有可能的用例。確定如何模擬該可變性,定義測試數(shù)據(jù)以及建立要收集的指標。配置測試環(huán)境:在執(zhí)行之前準備測試環(huán)境,安排工具和其他資源實施測試設(shè)計:根據(jù)測試設(shè)計進行性能測試執(zhí)行測試:執(zhí)行和監(jiān)控測試分析結(jié)果,報告并重新測試:合并,分析和共享測試結(jié)果。微調(diào)并重新測試以查看性能是否有所提高。當(dāng)所有度量標準值都在可接受的范圍內(nèi)時,就說明您已經(jīng)在該特定配置上測試了該特定方案。
我們什么時候應(yīng)該使用性能測試?
性能測試應(yīng)該在開發(fā)過程中,質(zhì)量保證過程中,產(chǎn)品發(fā)布之前,新版本發(fā)布之后以及市場計劃中進行。簡單的答案是在系統(tǒng)更改時的任何時候。
為什么要自動化性能測試?
市場上許多性能測試工具都包含用于執(zhí)行自動化測試的組件。我們的構(gòu)建系統(tǒng)使用自動化來完成重復(fù)性任務(wù),因此我們有更多時間花在分析結(jié)果上。由于執(zhí)行了這些重復(fù)性的自動化任務(wù),因此更容易定期進行測試,并且可以及早發(fā)現(xiàn)問題。給出一些性能測試用例的例子與編寫功能測試用例相比,編寫用于性能測試的測試用例需要不同的心態(tài)。驗證應(yīng)用程序是否能夠處理一定數(shù)量的同時用戶當(dāng)網(wǎng)絡(luò)連接緩慢時,驗證負載下應(yīng)用程序的響應(yīng)時間是否在可接受的范圍內(nèi)驗證應(yīng)用程序在低,正常,中等和重負載條件下的響應(yīng)時間檢查服務(wù)器在高負載下是否仍可正常運行而不會崩潰驗證峰值負載后應(yīng)用程序是否恢復(fù)到正常行為驗證峰值負載下的數(shù)據(jù)庫服務(wù)器以及應(yīng)用程序的CPU和內(nèi)存使用情況
性能測試生命周期涉及哪些階段?
性能測試生命周期的各個階段如下非功能需求分析性能測試策略性能測試設(shè)計性能測試執(zhí)行性能測試結(jié)果分析基準和建議
功能測試和非功能測試之間的區(qū)別?
| 功能測試 | 非功能測試 |
|---|---|
| 系統(tǒng)實際執(zhí)行的是功能測試 | 系統(tǒng)的性能如何是非功能測試 |
| 確保您的產(chǎn)品符合客戶和業(yè)務(wù)要求,并且沒有任何重大錯誤 | 確保產(chǎn)品符合客戶期望 |
| 驗證軟件與預(yù)期輸出的準確性 | 驗證軟件在各種負載條件下的行為 |
| 在非功能測試之前執(zhí)行 | 在功能測試后執(zhí)行 |
| 功能測試用例的示例是驗證登錄功能 | 非功能測試用例的示例是檢查是否在不到2秒的時間內(nèi)加載了主頁 |
| 測試類型為 ? ?單元測試 ? ?冒煙測試 ? ?用戶接受度 ? ?集成測試 ? ?回歸測試 ? ?本地化 ? ?全球化 ? ?互操作性 | 測試類型包括 ? ?? 性能測試 ? ?容量測試 ? ?可伸縮性 ? ?可用性測試 ? ?負載測試 ? ?壓力測試 ? ?一致性測試 ? ?可移植性測試 ? ?災(zāi)難恢復(fù)測試 |
| 可以手動或自動執(zhí)行 | 如果自動化,則可以高效執(zhí)行 |
性能測試,負載測試和壓力測試之間的區(qū)別
| 性能測試 | 負載測試 | 壓力測試 |
|---|---|---|
| 它是負載和壓力測試的超集 | 它是性能測試的一部分 | 它是性能測試的一部分 |
| 性能測試的目標是為應(yīng)用程序設(shè)置基準和標準 | 負載測試的目標是確定系統(tǒng)的上限,設(shè)置應(yīng)用程序的SLA并檢查系統(tǒng)如何處理重負載 | 壓力測試的目的是發(fā)現(xiàn)系統(tǒng)在極端負載下的行為以及如何從故障中恢復(fù) |
| 負載極限在中斷閾值之上和之下 | 負載極限是突破的門檻 | 負載極限高于中斷閾值 |
| 性能測試中檢查的屬性是速度,響應(yīng)時間,資源使用,穩(wěn)定性,可靠性和吞吐量 | 在負載測試中檢查的屬性是峰值性能,服務(wù)器吞吐量,各種負載級別下的響應(yīng)時間,負載平衡要求等。 | 在壓力測試中檢查的屬性是穩(wěn)定性響應(yīng)時間,帶寬容量等, |
有哪些不同類型的性能測試?
性能測試的類型如下負載測試壓力測試浸泡/耐力測試峰值測試量測可伸縮性測試/容量測試
什么是負載測試?
進行了負載測試,以驗證系統(tǒng)/應(yīng)用程序可以處理預(yù)期的事務(wù)數(shù)量,并驗證系統(tǒng)/應(yīng)用程序在正常和峰值負載條件(用戶數(shù)量)下的行為。負載測試是性能測試的子集,是一種非功能測試。
什么是可伸縮性/容量測試:
容量測試用于確定系統(tǒng)/應(yīng)用程序在性能目標變得無法接受之前可以成功處理多少用戶。這使我們能夠避免將來出現(xiàn)潛在問題,例如增加的用戶群或增加的數(shù)據(jù)量。它可以幫助用戶確定擴展策略,從而確定系統(tǒng)是應(yīng)該向上擴展還是向外擴展。它主要在電子商務(wù)和銀行網(wǎng)站上完成。有一些例子。這種測試有時稱為可伸縮性測試。
什么是壓力測試?
壓力測試用于在負載增加超過系統(tǒng)設(shè)計預(yù)期的情況下驗證系統(tǒng)的行為。該測試解決了當(dāng)我們通過施加超出設(shè)計預(yù)期的負載給系統(tǒng)施加壓力時,哪些組件首先會失敗。這樣我們就可以設(shè)計出更強大的系統(tǒng)。
什么是浸泡/耐力測試?
浸泡測試又名耐力測試。長時間在高負載下運行系統(tǒng)以識別性能問題稱為“浸泡測試”。這是為了確保該軟件可以長時間處理預(yù)期的負載。
什么是峰值測試?
峰值測試用于確定系統(tǒng)負載突然增加(大量用戶)時系統(tǒng)的行為。用戶的面孔有哪些常見的性能問題?
用戶面臨的一些常見性能問題是加載時間更長響應(yīng)時間短可擴展性差諸如編碼錯誤或硬件問題之類的瓶頸
列出性能測試考慮的一些參數(shù)?
性能測試的一些參數(shù)是:內(nèi)存使用情況處理器使用率帶寬??內(nèi)存網(wǎng)絡(luò)輸出隊列長度響應(yīng)時間每秒CPU中斷承諾的內(nèi)存線程數(shù)等待
選擇性能工具時應(yīng)考慮哪些因素?
選擇最佳性能測試工具進行性能測試時需要考慮的一些因素。預(yù)算(許可費用)牌照種類簡易安裝協(xié)議支持客戶偏愛負載測試工具培訓(xùn)員工使用所選工具的成本加載工具的硬件/軟件要求工具供應(yīng)商支持和更新政策詳細報告云端整合
列舉一些流行的性能測試工具?
一些流行的性能測試工具如下Web加載LoadRunnerNeoLoadApache JMeterLoadUI專業(yè)版
什么是性能測試中的吞吐量?
吞吐量是性能測試中的關(guān)鍵指標之一。它是指在給定時間段內(nèi)在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)量,通常以每秒位數(shù)(bps)表示。它是根據(jù)每次請求數(shù)計算的。吞吐量=(請求數(shù))/(總時間)示例:每秒比特,每秒字節(jié)(Bps),每秒千字節(jié)(KBps),每秒兆字節(jié)(MBps)和每秒千兆字節(jié)(GBps)。如果服務(wù)器在一分鐘內(nèi)收到60個請求,則吞吐量為每秒一個請求。如果它在一分鐘內(nèi)收到120個請求,則吞吐量為每秒兩個請求。等等。
并發(fā)用戶在性能測試中意味著什么?
并發(fā)用戶數(shù)是給定時間與應(yīng)用程序交互的用戶數(shù)。所有用戶可能都處于某種會話的中間,但是他們都在執(zhí)行不同的操作。
性能測試中的協(xié)議是什么?
性能測試中的協(xié)議是一種用于客戶端和服務(wù)器之間通信的語言。通過在性能測試工具中選擇協(xié)議,指示該工具捕獲所選客戶端與其服務(wù)器的所選語言的通信。一些協(xié)議是:HTTPHTTPSFTPWeb ServicesCitrix
什么是性能測試中的參數(shù)化?
參數(shù)化用于用參數(shù)替換腳本中的硬編碼值。性能測試之間有什么關(guān)聯(lián)?
關(guān)聯(lián)用于在性能測試中捕獲測試腳本中的動態(tài)值,并防止腳本在執(zhí)行期間失敗。如果在相同或不同用戶重放操作時,每個用戶操作的值都發(fā)生變化,則稱為動態(tài)值。
性能測試中的基準測試是什么?
在得出任何結(jié)論之前,應(yīng)在應(yīng)用程序上進行此測試,以獲取我們進一步測試的參考。這些測試應(yīng)有助于我們確定服務(wù)器的正常響應(yīng)。然后,我們可以使用這些值在其他測試中設(shè)置斷言。
性能測試中的基準測試是什么?
基準測試是將軟件或硬件的性能與其他組織設(shè)定的行業(yè)標準進行比較的過程。在這里,我將結(jié)束本性能測試面試問題帖子。如果您發(fā)現(xiàn)我沒有涵蓋某些問題,請在下面的評論部分中告訴我。我將嘗試更新此性能測試面試問題與解答。
往期推薦
評論
圖片
表情
