<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 性能測試教程:什么是類型,度量&示例 > 原文: [https://www.guru99.com/performance-testing.html](https://www.guru99.com/performance-testing.html) ## 什么是性能測試? **性能測試**檢查軟件程序在預期負載下的速度,響應時間,可靠性,資源使用率,可伸縮性。 性能測試的目的不是發現功能缺陷,而是消除軟件或設備中的性能瓶頸。 性能測試的重點是檢查軟件程序的 * 速度-確定應用程序是否快速響應 * 可伸縮性-確定軟件應用程序可以處理的最大用戶負載。 * 穩定性-確定應用程序在各種負載下是否穩定 性能測試通常被稱為“性能測試”,是性能工程的一部分。 在本教程中,您將學習- * [什么是性能測試?](#1) * [為什么要進行性能測試?](#2) * [性能測試的類型](#3) * [常見的性能問題](#4) * [性能測試流程](#5) * [性能測試指標:受監視的參數](#6) * [性能測試案例](#7) * [性能測試工具](#8) * [常見問題解答](#9) ## 為什么要進行性能測試? ![Performance Testing](https://img.kancloud.cn/2a/85/2a8526245d918bc019c86dd93b705709_150x150.png "why_performance_testing") 軟件系統支持的特性和功能不是唯一的問題。 軟件應用程序的性能(如響應時間,可靠性,資源使用率和可伸縮性)至關重要。 性能測試的目的不是發現錯誤,而是消除性能瓶頸。 進行性能測試是為了向涉眾提供有關其應用程序的有關速度,穩定性和可伸縮性的信息。 更重要的是,性能測試發現了產品上市之前需要改進的地方。 如果沒有性能測試,軟件可能會遇到以下問題:運行速度慢,同時多個用戶同時使用它,跨不同操作系統的不一致以及可用性差。 性能測試將確定其軟件在預期的工作負載下是否滿足速度,可伸縮性和穩定性要求。 由于不存在或性能測試不佳而發送到市場的性能指標較差的應用程序可能會獲得不良聲譽,并且無法達到預期的銷售目標。 同樣,對關鍵任務應用(例如太空發射程序或救生醫療設備)應進行性能測試,以確保它們長時間運行而不會出現偏差。 根據 Dunn & Bradstreet 的估計,財富 500 強公司中有 59%的每周停機時間估計為 1.6 個小時。 考慮到擁有至少 10,000 名員工的《財富》 500 強企業的平均時薪為每小時 56 美元,因此此類組織的停機時間的人工部分將為每周 896,000 美元,相當于每年超過 4,600 萬美元。 據估計,只有 5 分鐘的停機時間(即 2013 年 8 月 19 日),Google.com 的損失高達$ 545,000。 據估計,由于最近的 Amazon Web Service 中斷,公司每秒損失了價值 1100 美元的銷售。 因此,性能測試很重要。 ## 性能測試的類型 * **負載測試-**檢查應用程序在預期的用戶負載下的執行能力。 目的是在軟件應用程序上線之前確定性能瓶頸。 * **壓力測試-**涉及在極端工作負載下測試應用程序,以查看其如何處理高流量或數據處理。 目的是確定應用程序的斷點。 * **耐久性測試-**已完成以確保該軟件可以長時間處理預期的負載。 * **峰值測試-**測試軟件對用戶產生的負載突然大峰值的反應。 * **體積測試**-在“體積測試”下 的。 數據被填充到數據庫中,并且監視整個軟件系統的行為。 目的是在變化的數據庫容量下檢查軟件應用程序的性能。 * **可擴展性測試**-可擴展性測試的目的是確定軟件應用程序在“擴展”以支持用戶負載增加方面的有效性。 它有助于計劃軟件系統的容量增加。 ## 常見的性能問題 大多數性能問題都圍繞速度,響應時間,加載時間和較差的可伸縮性。 速度通常是應用程序最重要的屬性之一。 運行緩慢的應用程序將失去潛在的用戶。 執行性能測試以確保應用程序運行足夠快,以保持用戶的注意力和興趣。 查看以下常見性能問題列表,并注意速度是其中許多問題的共同因素: * **較長的加載時間-**加載時間通常是啟動應用程序所需的初始時間。 通常應將其最小化。 盡管某些應用程序不可能在一分鐘內完成加載,但如果可能,加載時間應保持在幾秒鐘之內。 * **響應時間短-**響應時間是指從用戶向應用程序中輸入數據到應用程序輸出對該輸入的響應為止所花費的時間。 通常,這應該很快。 同樣,如果用戶必須等待太久,他們會失去興趣。 * **可伸縮性差-**當軟件產品無法處理預期的用戶數量或不能容納足夠多的用戶時,其可伸縮性較差。 [負載測試](/load-testing-tutorial.html)應該進行以確保應用程序可以處理預期的用戶數量。 * **瓶頸-**瓶頸是導致系統整體性能下降的障礙。 瓶頸是指編碼錯誤或硬件問題在某些負載下導致吞吐量降低時。 瓶頸通常是由一段錯誤的代碼引起的。 解決瓶頸問題的關鍵是找到導致速度下降的代碼部分,然后嘗試在那里進行修復。 通常可以通過修復運行不良的流程或添加其他硬件來解決瓶頸。 一些**常見的性能瓶頸**是 * CPU 利用率 * 內存利用率 * 網絡利用率 * 操作系統限制 * 磁盤使用情況 ## 性能測試過程 性能測試采用的方法可以有很大不同,但是性能測試的目標保持不變。 它可以幫助證明您的軟件系統符合某些預定義的性能標準。 或者它可以幫助比較兩個軟件系統的性能。 它還可以幫助確定軟件系統中會降低其性能的部分。 以下是有關如何執行性能測試的通用過程 ![Performance testing process image](https://img.kancloud.cn/9e/d8/9ed8106f844d97ccf70cc8be6b4c92fb_670x67.png "performance_testing_process") 1. **標識您的測試環境-**了解您的物理測試環境,生產環境以及可用的測試工具。 開始測試過程之前,請先了解測試期間使用的硬件,軟件和網絡配置的詳細信息。 這將幫助測試人員創建更有效的測試。 它還將幫助確定測試人員在性能測試過程中可能遇到的挑戰。 2. **標識性能接受標準-**包括吞吐量,響應時間和資源分配的目標和約束。 在這些目標和限制之外,還必須確定項目成功的標準。 應該授權測試人員設置績效標準和目標,因為項目規范通常不會包括各種各樣的績效基準。 有時可能根本沒有。 在可能的情況下,找到要比較的類似應用程序是設置性能目標的好方法。 3. **計劃&設計性能測試-**確定最終用戶之間的使用情況可能有何不同,并確定關鍵方案以測試所有可能的用例。 有必要模擬各種最終用戶,計劃性能測試數據并概述將收集哪些度量。 4. **配置測試環境-**在執行之前準備測試環境。 另外,安排工具和其他資源。 5. **實施測試設計-**根據您的測試設計創建性能測試。 6. **運行測試-**執行并監視測試。 7. **分析,調整和重新測試**-合并,分析和共享測試結果。 然后微調并再次測試以查看性能是否有所提高或降低。 由于每次重新測試的改進通常會變小,因此當 CPU 造成瓶頸時請停止。 然后,您可以考慮增加 CPU 功率。 ## 性能測試指標:監控參數 性能測試期間監視的基本參數包括: ![performance testing metrics image](https://img.kancloud.cn/05/0e/050e6bd63a4bc866558cdc82b7519c2f_544x248.png "performance testing parameters") * **處理器使用率-**處理器花費在執行非空閑線程上的時間。 * **內存使用-**計算機上的進程可用的物理內存量。 * **磁盤時間-**磁盤忙于執行讀取或寫入請求的時間。 * **帶寬-**顯示網絡接口每秒使用的位數。 * **專用字節-**進程已分配的字節數,這些字節不能在其他進程之間共享。 這些用于測量內存泄漏和使用情況。 * **承諾的內存-**使用的虛擬內存量。 * **內存頁面/秒-**寫入磁盤或從磁盤讀取的頁數,以解決硬頁錯誤。 硬頁錯誤是指從其他地方調用并從磁盤檢索不是來自當前工作集的代碼。 * **頁面故障/秒-**處理器處理故障頁面的總速率。 當流程需要來自其工作集之外的代碼時,會再次發生這種情況。 * **每秒 CPU 中斷數-**是平均值。 處理器每秒接收和處理的硬件中斷數。 * **磁盤隊列長度-**是平均值。 沒有。 一個采樣間隔內排隊等待選定磁盤的讀寫請求。 * **網絡輸出隊列長度-**輸出數據包隊列的長度(以數據包為單位)。 超過兩個意味著延遲和瓶頸必須停止。 * **每秒總網絡字節數-**評估在接口上發送和接收的字節數,包括成幀字符。 * **響應時間-從用戶輸入請求到接收到響應的第一個字符為止的時間。** * **吞吐量-**評估計算機或網絡每秒接收請求的速度。 * **連接池的數量-**池連接滿足的用戶請求數。 池中的連接滿足的請求越多,性能將越好。 * **最大活動會話數-**可一次激活的最大會話數。 * **命中率-**與緩存數據而不是昂貴的 I / O 操作處理的 [SQL](/sql.html) 語句的數量有關。 這是開始解決瓶頸問題的好地方。 * **每秒點擊數-**否。 負載測試的每一秒內 Web 服務器上的點擊數。 * **回滾段-**在任何時間點均可回滾的數據量。 * **數據庫鎖定-需要監視并仔細調整表和數據庫的**鎖定。 * **最高等待時間-監視**,以確定在處理從內存中檢索數據的速度時可以減少哪些等待時間 * **線程數-**應用程序運行狀況可以通過編號來衡量。 正在運行且當前處于活動狀態的線程數。 * **垃圾回收-**與將未使用的內存返回系統有關。 需要監控垃圾收集的效率。 ## 性能測試用例示例 * 當 1000 個用戶同時訪問該網站時,請確認響應時間不超過 4 秒。 * 當網絡連接緩慢時,請驗證“負載下的應用程序”的響應時間是否在可接受的范圍內 * 在應用程序崩潰之前,檢查該應用程序可以處理的最大用戶數。 * 同時讀取/寫入 500 條記錄時,檢查數據庫執行時間。 * 在高峰負載情況下檢查應用程序和數據庫服務器的 CPU 和內存使用情況 * 驗證應用程序在低負載,正常負載,中等負載和重負載條件下的響應時間。 在實際性能測試執行期間,模糊的術語(如可接受范圍,重負載等)被具體數字代替。 性能工程師根據業務需求和應用程序的技術環境設置這些數字。 ## 性能測試工具 市場上有各種各樣的性能測試工具。 您選擇進行測試的工具將取決于許多因素,例如所支持的協議類型,許可證成本,硬件要求,平臺支持等。以下是常用的測試工具列表。 * [LoadNinja](https://bit.ly/2W4Ytu5) –正在徹底改變我們的負載測試方式。 這個基于云的負載測試工具使團隊能夠記錄&,即時回放全面的負載測試,而無需復雜的動態關聯&,即可在實際的瀏覽器中大規模運行這些負載測試。 團隊能夠增加測試范圍。 &將負載測試時間縮短了 60%以上。 * [NeoLoad](http://bit.ly/2JeuvzA) **-**是專為 DevOps 設計的性能測試平臺,可無縫集成到您現有的持續交付管道中。 使用 NeoLoad,團隊可以比傳統工具更快地測試 10 倍,從而滿足整個敏捷軟件開發生命周期(從組件到整個系統范圍的負載測試)的新水平要求。 * [HP LoadRunner](/loadrunner-v12-tutorials.html) **-**是當今市場上最受歡迎的性能測試工具。 該工具能夠模擬成千上萬的用戶,將應用程序置于實際負載下,以確定其在預期負載下的行為。 [Loadrunner](/loadrunner-v12-tutorials.html) 具有一個虛擬用戶生成器,它可以模擬人類用戶的行為。 * [Jmeter](/jmeter-tutorials.html) **-**用于對 Web 和應用程序服務器進行負載測試的領先工具之一。 ## 常見問題 #### 我們應該對哪些應用程序進行性能測試? 始終僅對基于客戶端-服務器的系統執行性能測試。 這意味著,任何不是基于客戶端服務器架構的應用程序都不需要性能測試。 例如,Microsoft Calculator 既不是基于客戶端服務器的,也不是運行多個用戶的。 因此,它不是性能測試的候選人。 ![Introduction to HP LoadRunner and its Architecture](https://img.kancloud.cn/be/12/be12eab10bfb29123cdc7dcfbb0792e9_631x198.png "Introduction to HP LoadRunner and its Architecture") #### 性能測試& Performance Engineering 有什么區別 了解性能測試和性能工程之間的區別非常重要。 以下是一種理解: **性能測試**是一門涉及 ***測試并報告*** 在各種參數下軟件應用程序當前性能的學科。 **性能工程**是測試和調試軟件的過程,旨在實現所需的性能。 該過程旨在優化最重要的應用程序性能特征,即用戶體驗。 從歷史上看,測試和調優是截然不同的,并且常常是相互競爭的領域。 但是,在最近幾年中,幾千名測試人員和開發人員獨立合作創建了調優團隊。 由于這些團隊取得了巨大的成功,因此將性能測試與性能調整相結合的概念流行起來,現在我們將其稱為性能工程。 ### 結論 在軟件工程中,必須進行性能測試才能銷售任何軟件產品。 它確保客戶滿意度&保護投資人免受產品故障的影響。 性能測試的成本通常可以通過提高客戶滿意度,忠誠度和保留率來彌補。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看