性能測試是什麼?

addtoany linkedin

不時地有人問這個問題:“為什麼性能測試呢?”I've heard it several times over the 30 years I've been involved at some level with application performance assessment. Throughout those years the applications and customer expectation have evolved and in most cases have become more challenging.

隨著穀歌和它的令人驚訝的快速搜索引擎,最終用戶的應用程序所期望的一個幾乎像Google一樣的水平的性能,無論應用程序和商業案例的複雜性。因此,快速性能和彈性可伸縮性成為客戶的黃金標準。

競爭性產業的web應用程序中,如果您的解決方案不能解決問題速度不夠快,應用程序可能注定要失敗。大數據的出現和流數據要求企業快速理解數據的變化並進行實時決策,可以區別輸贏大出售給競爭對手。

頻繁的性能測試在開發周期中確保產品最終被以最快的速度響應,有能力規模和可靠性有24 / 7/365。適當的大小,將確保客戶解決方案,將可靠地滿足他們的需求。

性能測試是什麼?

廣泛的測試相關術語“性能測試”。Often a popular oversimplification of the area of performance testing is a set of tests that measures the time for users' gestures (transactions) for single user or very light loads. But that type of testing only covers a small sliver of what performance testing entails.

另一個誤解是性能測試是一個活動安排在開發周期的後期,因此沒有多少想法或計劃在性能是進一個項目的開始。性能測試的後期規劃往往導致欠佳的表現,減少伸縮特性和控製缺陷。解決性能缺陷在開發周期的後期是非常具有挑戰性的,常常需要一個建築和/或技術變化。

性能需要考慮的所有方麵,烤到整體發展規劃階段的發布周期。隨著應用程序將做什麼,我們應該考慮到我們想要的應用程序,執行和健壯性是必不可少的嗎?我們想要不同的節點上部署應用程序的能力,所以我們需要更多的吞吐量時可以添加節點?我們需要結果多快?有一般的期望或服務水平協議(sla),需要見麵嗎?有無故障運行時間預計從應用程序嗎?所有這些因素都應該被認為是在應用程序的設計和架構,盡可能確保所選擇的技術和設計將結合這些期望。

經常與微妙的變化在一個性能測試,如持續時間或用戶負載,測試方法可以得到不同的結果,以滿足不同的問題。下麵是一個簡單的一些性能測試的變化列表可以下降傘下的性能測試:

  • 單用戶的性能
  • 單位級性能
  • 用戶規模
  • 公牛著急
  • 斯派克
  • 穩定性/耐力或浸泡
  • 數據規模或體積
  • 垂直或擴大資源
  • 水平或擴展資源万搏体育app官方平台
  • 測量時間對於某些係統活動來完成(如啟動應用程序)

讓我們深入研究這些學科和擴展他們的目的是什麼,他們如何被執行。

類型的性能測試

單位級性能測試

一個離散的工作單元完成的組件甚至代碼級別低的措施基本代碼的執行時間。這種類型的開發人員快速測試所使用的測試通常是改變他們的代碼,以確保不會引入性能退化。

這些類型的測試的權力包括:

  • 快速的執行時間
  • 幾乎立即反饋給開發人員
  • 通常最低組件所需的測試環境(嘲笑環境)
  • 適合連續代碼交付係統
  • 可以經常跑步嗎
  • 相對容易創建和維護

這些類型的測試通常由開發人員的語言寫的源代碼和維護源代碼。因此測試相當迅速創建一個可以開發一個多產的數量的測試,以確保可靠的代碼覆蓋率。

單用戶性能測試

一個更常見的性能測試是單用戶或用戶負載測試。這種形式的測試執行的一係列用戶操作運行多個迭代,以便更好的統計值。

一般跟蹤的關鍵指標的意思是,中位數,第90個百分位最大值。這些結果是相對於基線的值或一組預定義的值被認為是可以接受的。單用戶測試通常比較快的執行,在尋找優秀的軟件瓶頸或緩慢的代碼執行不是因為係統資源限製。万搏体育app官方平台

雖然這種類型的測試不過度稅收係統不是節流點,因此資源資源指標和各種應用程序和係統日誌也應該監控確認。万搏体育app官方平台這些測試可以使用國產測試的自動化工具,免費軟件性能測試工具(例如Jmeter)或許可(例如Loadrunner)性能測試工具。

每種類型的測試工具有它的優點和缺點:

  • 本土測試往往可以最好的調整,但需要定期維護的測試和測試工具。
  • 使用免費工具沒有成本,但可能沒有所需的所有功能或能力,所以它可能需要增加或理解的工具的局限性。
  • 許可工具更好的支持工具和它的用法,但通常是一個相當可觀的。

應該做一個適當的成本/效益分析,以確定哪些測試工具應該使用策略。

用戶規模的測試

重要的是要了解你的應用程序/軟件執行更多的用戶被添加到一個有限的係統。就是一個很好的例子,如果你想大小的環境提出了最終用戶的數量,你可能想要表現一個用戶規模測試,看看用戶被添加到係統的性能變化。良好的結果將是一個線性剖麵,使外推法和插值更容易估計。

可以使用一係列的個人測試增加用戶的數量比例/測試,例如0.5用戶核心,1 /核心,每核心2等等。

另一種方法可能是運行一個用戶數量允許一段時間推移或達到穩定狀態然後在階段增加更多的用戶。這通常是指舉行或加強性能測試。

在輕負荷這種類型的測試可用於快速識別代碼執行緩慢。但是當你用戶規模、資源限製很容易變得明顯(如鎖,線程、內存等)。這將允許開發來決定他們的應用程序是否能最大限度的利用有限資源。万搏体育app官方平台采取這種極端負載測試可以確定應用程序的上限,發生在這些限製,可以用來開發護欄或州長可能需要的地方。

因此當用戶規模測試係統指標執行,應該小心地監視應用程序日誌和事務響應指標和相關的最佳理解應用程序和係統的擴展特性。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

垂直擴展或擴大資源万搏体育app官方平台

企業應用程序的一個本質屬性是能夠垂直規模或當您添加更多的資源到服務器,應用程序的性能改善相對比例的資源補充道。万搏体育app官方平台

一個例子是,如果你的數量增加一倍的cpu和RAM用戶事務將改善性能可能是雙重的或如果你兩倍的資源和交互式用戶的數量增加一倍的性能將保持相對不變。万搏体育app官方平台一個簡單的方法來測試這是與不同的用戶負載運行一組測試之前和之後你添加資源。万搏体育app官方平台

例子:一個應用程序,該應用程序是強烈和積極影響核的數量。

配置1:10個核心機與足夠的RAM

Test1a:10個並發用戶,Test2a:20個並發用戶和Test3a:30個並發用戶

配置2:20核心機與足夠的RAM

Test1b:20個並發用戶,Test2b:40個並發用戶和Test3b:60個並發用戶

比較1測試1 b;2 3 b 2 b & 3。如果事務時間統計等效那麼應用程序演示了垂直伸縮性特點。

垂直擴展的應用程序的好處是:

  • 一個可以預測需要額外的資源來支持不同的用戶負載。万搏体育app官方平台
  • 如果多用戶性能低於票麵價值,添加額外的資源可能不相上下。万搏体育app官方平台
  • 可以使用資源的彈性擴展來處理峰值負載然後減少資源當不是必需的。万搏体育app官方平台

如果添加資源不能提高万搏体育app官方平台性能,有可能是一個軟件需要解決的瓶頸。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

水平標尺或擴展資源万搏体育app官方平台

許多應用程序的部分應用程序或整個應用程序,可以分布在不同的服務器上。能夠分發應用程序允許公司利用更小更便宜的硬件規模應用,用戶,數據等。以確保應用程序可能需要額外的硬件的性能優勢可以計劃和執行一個擴展測試將幫助確定添加h / w影響性能或規模。

例如:在應用程序的服務器數量翻倍假設整個應用程序可以向外擴展。

配置1:10一個核心機足夠的RAM

Test1a:10個並發用戶,Test2a:20個並發用戶和Test3a:30個並發用戶

配置2:拖10核心機器與足夠的RAM

Test1b:10個並發用戶,Test2b:20個並發用戶,Test3b:40個並發用戶和Test4b:60個並發用戶。

現在可以比較Test1a Test1b和Test2b,同樣Test2a Test2b和Test3b Test3a Test4b。

完美的水平規模翻倍h / w和保持使用負載不變將減半響應時間和保持用戶與h / w將導致一個常數響應時間。

這種形式的性能測試應該促進擴展了硬件的應用程序上執行,確保客戶會看到顯著的優勢,因為他們添加h / w和能夠正確地估計h / w和計劃拓撲作為用戶群生長。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

數據量規模或數據測試

在當今競爭激烈的市場當前的信息和及時的數據變得越來越重要,這意味著應用程序數據,但仍然快速增長能力和響應比以往任何時候都重要。

因此,測試數據規模完成定期協助發展提高他們的應用程序在規劃他們的公司和客戶增長。數據規模指標,有助於正確地估計硬件需求。

測試數據規模的最簡單的方法是保持形狀數據,數據屬性和測試工件常數和簡單地擴大數據(例如,數量的記錄)。接下來,運行一個常數用戶負載測試工件在不同大小的數據,開發一個理解的增加數據大小如何影響性能。這種方法減少了變量的數量基本上一個變量(數據大小)。

一個更具挑戰性的測試可能會添加一個新表或不同的數據類型,在這種情況下,持有所有原始表中的數據大小和形狀不變,並添加一個表,然後測試。之後,你可以開始新的表或數據類型和規模測量性能和資源的影響。這樣我們有單獨添加一個新表和測量的影響的影響擴展表或所有的表。

的例子類型的數據合成工具,可以使用:朦朧,補藥,Sogeti。

公牛著急測試

如果你有一個情況,許多用戶登錄到一個關鍵的應用程序開始工作在一個相當短的時間內,這可能影響性能的用戶的觀點。

一頭公牛衝測試就是許多並發用戶模擬執行一組係列的行動來測量對係統的影響。這種測試可以快速發現軟件和資源瓶頸或任何類型的限製,可以對用戶的感知性能有負麵影響。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

峰值檢測

類似一頭公牛衝測試,除了峰值測試通常有一係列的突然增加的負載測量影響和可能應用程序的上邊界。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

穩定性測試

穩定的執行長時間運行的測試,測試是主要目標來確定應用程序如何回應刺激在一段時間內穩定狀態或一致的模式建立了活動。最好的測試是由一組活動緊密模擬客戶使用模式和/或活動強調各種應用程序的關鍵領域。監控錯誤和警告,係統和應用程序資源,響應時間,等將決定是否有運行時資源泄漏,性能損失,或損失的完整性。万搏体育app官方平台

穩定性試驗的持續時間取決於應用程序,循環活動和應用程序的可接受的期限之前需要重啟。在現實世界環境中應用程序可能需要24/7/365或者一個重新啟動一段時間後是可以接受的,比如一個星期。需要了解這些期望和獲得一個穩定持續時間可以達到的目標發現運行時問題先發製人。

的一個例子如何模擬現實世界活動的周數小時或數天的測試是使用零思考時間或並發用戶,模擬管理活動如數據每小時刷新而不是每周、每月或其他時期,因此執行成千上萬小時的活動時間,而不是數周或數月在現實世界中。

穩定性試驗床是很好的測試環境嚐試新功能,代碼修改,第三方升級,新的安全措施,等客戶釋放這些之前,你可以衡量其影響在許多迭代來確認他們的可靠性。結束時,每個穩定運行一個可以利用這段時間嚐試故障轉移或混亂的活動來確定其影響之前重新啟動穩定性測試。故障轉移或混亂測試結束時,成千上萬的行動是一個偉大的整體彈性應用程序的測試。

類型的工具,可以使用的例子有:Loadrunner, NeoLoad, Jmeter, Rational Performance Tester,轉K6。

故障轉移測試

盡管不總是與性能測試相關,它往往性能團隊來執行這種類型的測試,因為他們通常有自動化測試,模擬用戶的操作。故障轉移測試是當應用程序受到某種程度的穩態負載故障時,重啟或崩潰模擬和應用程序恢複正常操作的時間測量。

總結

性能測試是一個廣泛的測試方法和紀律是絕對有必要的健康和成功企業的軟件。部分或全部的各種性能測試方法應該運行在您的軟件應用程序,確保客戶提供一種快速、可靠和有彈性的產品。

顯示選項
主要

留下一個回複

讓博客更新

通過電子郵件保持最新的博客文章:

Eloqua webform