最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

終于把性能測試這事兒講清楚了

2021-11-23 18:05 作者:北京博睿宏遠  | 我要投稿

性能測試顧名思義指的是應用軟件中各項指標的負載情況。

根據(jù)百度百科的釋義,性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。

性能測試在軟件的質量保證中起著重要的作用,它包括的測試內容豐富多樣。中國軟件評測中心將性能測試概括為三個方面:應用在客戶端性能的測試、應用在網(wǎng)絡上性能的測試和應用在服務器端性能的測試。通常情況下,三方面有效、合理的結合,可以達到對系統(tǒng)性能全面的分析和瓶頸的預測。

簡而言之,性能測試目標就是為了識別并消除應用程序中的性能瓶頸。

今天,我們就以博睿數(shù)據(jù)的個別產(chǎn)品為例,講講性能測試的那些事兒。

性能測試的基本常識

首先,要想全面的認識性能測試,就要對性能測試的基本常識、術語以及性能測試的基本方法論有基本的認識。

性能測試的概念前文已經(jīng)陳述,在這里我們就不再贅述。

我們來看下什么是軟件性能。

軟件測試是軟件的一種非功能特性,它關注的不是軟件是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。

一般而言,性能測試主要包含以下5個術語:

2 響應時間:對請求做出響應需要的時間。

2 并發(fā)用戶數(shù):在同一時間段內訪問系統(tǒng)的用戶數(shù)量。

2 吞吐量:單位時間內系統(tǒng)處理的客戶請求的數(shù)量。

2 性能計數(shù)器:描述服務器或操作系統(tǒng)性能的一些數(shù)據(jù)指標。

2 思考時間:休眠時間。

按照類型來劃分,性能測試又分為六大類型:

l 負載測試:負載測試用于測試應用程序在正常和峰值情況下的性能。在負載測試中,我們對應用程序性能好壞的判定依據(jù)主要源于該應用程序對用戶請求的響應情況,以及它在不同負載變化下(可接受的程度內)一致響應的能力來檢測的。

負載測試中的核心關注點:

在應用程序出現(xiàn)異常情況前,該應用程序所能容納的最大負載量是多少?

在系統(tǒng)變慢或出現(xiàn)崩潰之前,數(shù)據(jù)庫所能處理的數(shù)據(jù)量有多少?

是否有任何與網(wǎng)絡相關的問題需要解決?

l 驗收性能測試:通過模擬生產(chǎn)運行的業(yè)務壓力量和使用場景組合,測試系統(tǒng)性能是否滿足生產(chǎn)性能要求。

l 壓力測試:壓力測試旨在尋找破壞系統(tǒng)的方法。該測試同時還能為我們找到系統(tǒng)可以承受的最大負載范圍。

通常,壓力測試采用增量方法,通過逐步增加負載來觀察系統(tǒng)各項性能指標的變化情況。

首先,我們可以從應用程序已經(jīng)測試過的負載開始(例如當前用戶數(shù) 100 個);然后慢慢地增加更多的負載來給系統(tǒng)增加壓力(例如從 100個用戶數(shù)逐步增加到 10000)。

當我們發(fā)現(xiàn)服務器沒有響應請求的那個點開始,這個點就被認為是斷點(在一些性能測試報告圖表中,往往也視為性能拐點)。

在壓力測試過程中,我們需要關注的問題有:

系統(tǒng)在崩潰前能承受的最大負載是多少?

在實施壓力測試過程中,系統(tǒng)是如何崩潰的?系統(tǒng)能否在崩潰后自行恢復?

被測系統(tǒng)/應用程序在處理異常負載時,有哪幾種中斷方式?

l 配置測試:通過對被測系統(tǒng)軟硬件環(huán)境的調整,了解各種不同環(huán)境對系統(tǒng)性能的影響程度,從而找到系統(tǒng)各項資源的最優(yōu)分配原則。

l 可靠性/可恢復測試:可靠性測試或恢復測試用于驗證應用程序在出現(xiàn)故障或異常行為后,是否能夠恢復到正常狀態(tài),以及恢復階段需要經(jīng)過多長時間。

例如在某線交易站點出現(xiàn)故障,致使用戶不能在一天的某個點(高峰時間)買賣股票,但在一兩個小時后用戶能夠進行在線股票交易,我們就可以說該應用程序是可靠的,即有能力從異常行為中自行恢復。

l 并發(fā)測試:模擬用戶的并發(fā)訪問,測試多用戶并發(fā)訪問同一個應用、同一個模塊或者數(shù)據(jù)記錄時,是否存在死鎖或者其他性能問題。

了解了這些基本信息后,一個很重要的問題是如何測試性能?

博睿數(shù)據(jù)為大家整理了7個方法論:

ü SEI負載測試計劃過程:關注負載測試計劃的方法,包括6個關注區(qū)域:目標、用戶、用例、生成環(huán)境、測試環(huán)境、測試場景。

ü RBI方法:是Empirix公司提出的一種用于快速識別系統(tǒng)性能瓶頸的方法。

RBI方法基于以下事實:

1、發(fā)現(xiàn)的80%系統(tǒng)的性能瓶頸都由吞吐量制約;

2、并發(fā)用戶數(shù)和吞吐量瓶頸之間存在一定的關聯(lián);

3、采用吞吐量測試可以更快速的定位問題。

需要注意的是RBI的分析方法是自上而下的:即首先確定是由并發(fā)還是吞吐量引發(fā)的性能表現(xiàn)限制;然后從網(wǎng)絡、數(shù)據(jù)庫、應用服務器和代碼4個環(huán)節(jié)確定系統(tǒng)性能具體瓶頸。

ü 性能下降曲線分析:描述的是性能隨用戶數(shù)增加而出現(xiàn)下降趨勢的曲線。

性能下降曲線可以分為以下幾個部分:

單用戶區(qū)域——對系統(tǒng)的單用戶響應時間;對建立性能的參考值有幫助;

性能平坦區(qū)域——在不進行更多性能調優(yōu)的情況下所能期望達到的最佳性能;該區(qū)域可被用作基線。

壓力區(qū)域——應用輕微下降的區(qū)域;典型的、最大的建議用戶負載,是壓力區(qū)域的開始。

拐點——性能開始急劇下降的點。

ü LoarRunner性能測試過程:計劃測試、測試設計、創(chuàng)建VU腳本、創(chuàng)建測試場景、運行測試場景、分析結果。

ü Segue提供的性能測試過程:是Segue公司Silk Performer提供的性能測試過程;適合性能調優(yōu)和優(yōu)化。

ü 敏捷性能測試:是隨著敏捷技術發(fā)展而來的一種行的性能測試方法。

敏捷性能測試包括如下特點:

在每個迭代目標中包含明確的性能目標;

建立不同層次的性能測試——端到端、基于接口、面向具體函數(shù);

完全或接近完全自動化的性能測試——LoadRunner、JMeter、JUnit;

使用測試驅動的方法保證性能與優(yōu)化性能。

ü PTGM模型:應用于非敏捷過程的性能測試模型;分測試前期準備、測試工具引入、測試計劃、測試設計與開發(fā)、測試執(zhí)行與管理、測試分析6個步驟。

此外,在應用領域方面,性能測試又可細分為5個領域:

u 能力驗證——在給定條件下,系統(tǒng)能否具有預期的能力表現(xiàn)。

u 規(guī)劃能力——應該如何使系統(tǒng)具有我們要求的性能能力;如:應該如何調整,使系統(tǒng)能夠滿足增長的用戶數(shù)的需要。

u 性能調優(yōu)——主要應用于對系統(tǒng)性能進行調優(yōu)。

u 發(fā)現(xiàn)缺陷——主要時通過性能測試的手段發(fā)現(xiàn)系統(tǒng)種存在的缺陷。

u 性能基準比較——通常應用在敏捷開發(fā)過程,是在不設定明確目標的情況下,通過比較得到每次迭代中的性能表現(xiàn)的變化,根據(jù)這些變化決定迭代是否達到了預期的目標。

性能測試怎么做?

那么,了解了性能測試的基本常識后,我們接下來就要了解性能測試要怎么做?

一般而言,性能測試的流程分為需求分析——測試準備——執(zhí)行測試——結果分析與調優(yōu)——報告與總結五個階段。

接下來,我們具體來看下。

(1) 需求分析:

首先需要明確性能需求分析是整個性能測試工作開展的基礎,如果連性能的需求都沒弄清楚,后面的性能測試執(zhí)行其實是沒有任何意義的,而且性能需求分析做的好不好直接影響到性能測試的結果。

需求分析需要明確倒底要不要做性能測試?性能測試的目的是什么?明確被測系統(tǒng)是什么?被測試系統(tǒng)的相關技術信息如:架構、平臺、協(xié)議等?明確被測系統(tǒng)的基本業(yè)務、關鍵業(yè)務,用戶行為?明確性能測試點是什么?哪些需要測,為什么?哪些不需要測,又是為什么?

一般而言,需求分析可以從系統(tǒng)信息調研、業(yè)務信息調研、性能需求評估、性能測試點、性能指標等五方面入手。


以博睿數(shù)據(jù)的SDK 產(chǎn)品為例。

我們在分析需求時首先會從其架構入手分析,然后從業(yè)務層面進行分析,例如新增、活躍用戶數(shù),第一次使用和啟動app(config請求)、啟動以后每一分鐘上報一次數(shù)據(jù)(upload請求)、controller接收請求,簡單解析封裝,發(fā)送到kafka、ETL從kafka上獲取controller存儲的數(shù)據(jù),進行解析(解析成不同表數(shù)據(jù),封裝)、ETL解析數(shù)據(jù)后,將封裝好的數(shù)據(jù),再次上傳到kafka、druid從kafka獲取數(shù)據(jù)入到庫中、web頁面從druid中查詢數(shù)據(jù)展示等等業(yè)務信息情況,最終從性能測試和性能指標入手,確定性能需求。

(2) 性能測試準備:

性能測試準備階段又分為6個階段:

環(huán)境準備:

a)系統(tǒng)運行環(huán)境:這個通常指的是我們的測試環(huán)境,有些時候需求比較多,做性能測試擔心把環(huán)境搞跨了影響其它的功能測試,可能需要重新搭建一套專門用來做性能測試的環(huán)境。

b)執(zhí)行機環(huán)境:這個就是用來生成負載的執(zhí)行機,我們每次做性能測試都需要提前準備好執(zhí)行機環(huán)境,建議執(zhí)行機使用liunx系統(tǒng),不要使用windows系統(tǒng)。

(3)場景設計:

根據(jù)性能需求分析來設計符合用戶使用習慣的場景,場景設計的好不好直接影響到性能測試的效果。

(4)工具準備:

a)負載工具:根據(jù)需求分析和系統(tǒng)特點選擇合適的負載工具,比如LR、Jmeter或galting等。

b)監(jiān)控工具:準備性能測試時的服務器資源、JVM、數(shù)據(jù)庫監(jiān)控工具,以便進行后續(xù)的性能測試分析與調優(yōu)、redis狀態(tài)監(jiān)控、kafka消費情況監(jiān)控。

測試腳本:

如果性能測試工具不能滿足被測系統(tǒng)的要求或只能滿足部分要求時,需要我們自己開發(fā)腳本配合工具進行性能測試。

(5)測試數(shù)據(jù):

a)用例數(shù)據(jù)。

b)負載測試數(shù)據(jù)。

其他:如果需要其它關聯(lián)系統(tǒng)或專業(yè)人士,如DBA配合的,也需要提前進行溝通。

(6)性能結果分析:

性能結果分析則主要從兩個層面出發(fā):即性能指標與負載的簡單關系和結果分析。

其中,性能指標與負載的簡單關系又可分為響應時間、吞吐量、資源利用率三個層面。

首先來看響應時間。

響應時間對應的負載的關系從函數(shù)的角度理解,可以簡單理解為負載隨著響應時間的增加而增加的正向關系。

也就是說,響應時間突然增加,意味著系統(tǒng)的一種或多種資源利用可能達到的極限。通常可以利用拐點來進行性能測試分析與定位。

再來看下吞吐量。

吞吐量逐漸達到飽和意味著系統(tǒng)的一種或多種資源利用達到的極限。

最后說到資源利用率。

與負載對應關系可以理解為服務器某薦資源使用逐漸達到飽和。

結果分析需具體問題具體分析,一般是多項指標結合分析,通過單個指標一般得不出結論。

結果可以從以下幾個方面分析:

v 執(zhí)行發(fā)壓機器性能是否正常。

v 被壓測程序所在機器,資源是否正常。

v 依賴組件是否正常。

v 依賴組件所在機器資源是否正常。

v 宿主機機器資源是否正常。

最后需要注意的是,完整的性能測試報告以簡潔為主,不需要任何推導,開發(fā)團隊需要更多關于分析、比較結果的信息,以及如何獲得結果的細節(jié)。

總結

不難發(fā)現(xiàn)要成功完成一個性能測試項目,我們需要確保性能測試計劃階段各方面的準確性。

即計劃、基于測試需求分析的用例開發(fā)、場景設計、測試執(zhí)行和結果分析,這些關鍵點都必須按照正確的方式進行,加上合理的風險預估及緩解策略。


終于把性能測試這事兒講清楚了的評論 (共 條)

分享到微博請遵守國家法律
南涧| 怀柔区| 东至县| 临桂县| 土默特左旗| 承德县| 兰州市| 上饶市| 巴塘县| 调兵山市| 民和| 瓮安县| 唐河县| 柞水县| 洪洞县| 桦南县| 清苑县| 宣恩县| 南部县| 固阳县| 营口市| 衢州市| 梓潼县| 常宁市| 阳春市| 馆陶县| 甘泉县| 巩留县| 军事| 盘锦市| 四子王旗| 沐川县| 雷山县| 镇宁| 清水县| 定陶县| 高唐县| 赤水市| 成都市| 河曲县| 贡山|