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

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

領導給你一個項目,你將如何開展性能測試工作?

2023-08-02 11:26 作者:銳碼IT  | 我要投稿

本文主要介紹何時開展性能測試,如何開展性能測試,性能測試的開展需要做哪些準備。

性能測試三連問

1、何時進行性能測試?

性能測試的工作是基于系統(tǒng)功能已經(jīng)完備或者已經(jīng)趨于完備之上的,在功能還不夠完備的情況下沒有多大的意義。因為后期功能完善上會對系統(tǒng)的性能有影響,過早進入性能測試會出現(xiàn)測試結(jié)果不準確、浪費測試資源。因此,性能測試首先是基于功能測試的,必須了解其功能需求才能開展性能測試。

2、如何進行性能測試?

一個被測系統(tǒng),我們需要分3部分來分析:

入口:需要怎么發(fā)送請求,施壓方應該施加多大的壓力,用什么方法施壓;

被測系統(tǒng):系統(tǒng)怎么應對單個請求,系統(tǒng)業(yè)務流程是怎么樣的,系統(tǒng)網(wǎng)元節(jié)點、數(shù)據(jù)流向等,整體性能需求有沒有,需要考察哪些指標,怎么監(jiān)控;

出口:接收數(shù)據(jù)有哪些,怎么獲取和比對;

是不是感覺就和功能測試差不了多少?是的,就是先分析單個用戶的功能流程以及系統(tǒng)的數(shù)據(jù)流向(包括后臺的數(shù)據(jù)流向)結(jié)構(gòu)圖,然后再考慮大量的用戶操作。

3、開展性能測試的步驟?

一般系統(tǒng)的性能測試步驟大體如下:

1.確認測試目標;

2.分析被測系統(tǒng)業(yè)務需求;

3.分析被測系統(tǒng)的系統(tǒng)結(jié)構(gòu);

4.分析被測系統(tǒng)的性能測試點;

5.設計測試方案、檢測方案和測試案例;

6.選擇測試工具;

7.測試開發(fā);

8.測試執(zhí)行;

9.測試結(jié)果分析;

10.測試調(diào)優(yōu)、測試驗證、測試分析;

11.輸出測試報告;

性能測試開展前的準備

測試準備工作越充分,后期的測試執(zhí)行越順利,一般測試準備工作如下:

1.確認測試目標;

2.分析被測系統(tǒng)的業(yè)務;

3.分析被測系統(tǒng)的結(jié)構(gòu);

4.分析被測系統(tǒng)可能產(chǎn)生性能瓶頸的節(jié)點;

5.設計測試方案、檢測方案和測試方案;

以下具體分析以上5個步驟:

1、確認測試目標

任何一個任務首先都要確認任務的目標是什么,如果不知道目標,任何努力得到的結(jié)果有可能都不是最終所需要的結(jié)果。性能測試也一樣,首先需要確立明確的目標。無論是隨機測試系統(tǒng)的當前性能情況,還是奔著對系統(tǒng)進行優(yōu)化而去,或是檢驗一下系統(tǒng)的性能是否滿足需求等等,這些都是開展性能測試之前的一個目標。之后的分析到方案和用例設計,到測試執(zhí)行監(jiān)控,再到最后的測試分析和報告,都是要圍繞這個目標展開。所以,首要的任務就是確認測試的目標要求,需要達到怎樣的一個測試目的和目標。

假如有一些測試任務沒有明確的目標或者要求,并不說明它沒有目的和目標,這需要我們進行溝通和分析。及時與項目組達成一致的目的要求,分析需求,分析系統(tǒng),最后明確項目或者系統(tǒng)測試任務的目的要求。

2、分析被測系統(tǒng)的業(yè)務

大家想一想要怎么設計方案?

猜想面試官是想面試者回答,正態(tài)分布、二八原理等基本的測試原則應用。朋友當時沒有回答任何與正態(tài)分布、二八原理相關的東西。當時面試官對他的回答好像是“蔑視”的笑了笑,可能是覺著連基本的正態(tài)分布、二八原理都不知道,還搞性能測試?。其實,性能測試并不是想象的那樣簡單,并不是一個簡單的原理的應用就行的,如果這么容易,那豈不是誰都能搞定。

性能測試的基礎是基于系統(tǒng)的業(yè)務功能基本趨于穩(wěn)定,首要的任務就是性能在系統(tǒng)滿足業(yè)務功能需求上展開,因此我們必須要分析系統(tǒng)的業(yè)務。不管是普通的網(wǎng)站也好還是比較專業(yè)的系統(tǒng)也好,它都是有業(yè)務功能需求,所有的性能測試都要基于這些功能才能進行,脫離了業(yè)務功能的性能測試沒有意義。性能測試首要的任務就是分析系統(tǒng)的業(yè)務功能,分析系統(tǒng)業(yè)務上的性能限制,也就是業(yè)務需求。

那么,怎么分析系統(tǒng)的業(yè)務需求呢?

如果有用戶需求規(guī)格說明,首要的任務就是閱讀和理解分析用戶需求規(guī)格說明;

如果沒有用戶需求規(guī)格說明,那么就需要分析系統(tǒng)功能,提煉出系統(tǒng)的業(yè)務需求。如果可能,項目組比較熟悉的人講述一遍是最好的了。

最后無論哪一種,最好的方法就是按照自己的理解畫出系統(tǒng)的業(yè)務流程或者系統(tǒng)的功能結(jié)構(gòu)圖,拿到項目組進行確認。一定要進行確認,和整個項目組達成一致的認同。

有人會問,我們項目組沒有可確認的業(yè)務需求時候怎么辦?

首先依然需要從分析入手。如果不分析,你就不會知道系統(tǒng)的功能數(shù)據(jù)流向,請求的數(shù)據(jù)構(gòu)成,系統(tǒng)的網(wǎng)元結(jié)構(gòu),以及系統(tǒng)可能出現(xiàn)的瓶頸在哪一個節(jié)點,你又怎么進行優(yōu)化呢?

當然面對一種全新的知識領域的時候,可能需要我們多積累經(jīng)驗,更多的進行分析;我們可能需要結(jié)合實踐,多次實際運行系統(tǒng)或者執(zhí)行測試,在測試中不斷的進行優(yōu)化和完善我們的分析過程、分析結(jié)果、測試方案、測試開發(fā)甚至是測試執(zhí)行等等。

分析被測系統(tǒng)的業(yè)務,有時候不是一蹴而就,需要我們進行多次反復的分析、確認和再分析、再確認,直到把系統(tǒng)弄明白,甚至有可能在測試執(zhí)行的最后階段你還需要再次進行分析和確認,然后重新規(guī)劃測試。

3、分析被測系統(tǒng)的結(jié)構(gòu)

系統(tǒng)的結(jié)構(gòu)和系統(tǒng)的業(yè)務一樣重要,不知道系統(tǒng)的網(wǎng)元結(jié)構(gòu)可能就沒有辦法進行監(jiān)控,就沒有辦法知道瓶頸在哪個節(jié)點,就不能進行優(yōu)化。

分析系統(tǒng)的結(jié)構(gòu),最好的方法就是項目組提供系統(tǒng)的部署和構(gòu)成圖;如果項目組不能提供或者沒有項目組,那就需要用TCPDUMP等抓包工具,分析數(shù)據(jù)流向。

4、分析系統(tǒng)可能的性能瓶頸

分析系統(tǒng)的業(yè)務需求和系統(tǒng)的結(jié)構(gòu)組成,同時預判系統(tǒng)可能存在的性能瓶頸,這是分析中的一個目標;得到預判的性能瓶頸后我們后面需要在監(jiān)控的時候多注意一下這些節(jié)點。

當然有一些常見的可能會是系統(tǒng)瓶頸的節(jié)點我們需要注意:

1. 登錄,一般系統(tǒng)登錄要進行多種校驗,可能數(shù)據(jù)交互比較頻繁;

2.下單,搶單、搶紅包這個時候會有一定量的并發(fā)需求;

3.大數(shù)據(jù)的查詢、統(tǒng)計和報表分析,會對系統(tǒng)產(chǎn)生壓力;

4.視頻、動畫等會對網(wǎng)絡產(chǎn)生壓力;

5.消息比較集中的系統(tǒng)功能節(jié)點,會對系統(tǒng)產(chǎn)生壓力;

6.一些特殊的業(yè)務需求會對系統(tǒng)產(chǎn)生壓力;

常見的瓶頸

1. 數(shù)據(jù)庫的瓶頸一般在磁盤IOPS過高造成進程阻塞;

2.系統(tǒng)進程數(shù)過多一般會消耗系統(tǒng)的內(nèi)存空間;

3.消息隊列和緩存服務,開啟持久化后會需要考察磁盤IOPS,不開啟持久化則需要考察內(nèi)存占用;

4.頻繁的管道開辟和銷毀會導致CPU占用較高;

5. 有部分程序結(jié)構(gòu)上不能利用多個CPU;

在分析業(yè)務和系統(tǒng)結(jié)構(gòu)的過程中,我們就需要考慮這個業(yè)務點或者結(jié)構(gòu)點會不會有大量的數(shù)據(jù)訪問,會不會產(chǎn)生壓力,我們的設計會不會產(chǎn)生性能瓶頸。

5、測試計劃和測試用例的設計

測試計劃的設計以及最后測試總結(jié)文檔的形成,實際就是所有分析工作的總結(jié)。

寫測試計劃的過程就是明確測試目的、分析業(yè)務需求、系統(tǒng)結(jié)構(gòu)以及評估測試方法、測試安排、測試風險等等的過程總結(jié)。而這些全部來源于在測試執(zhí)行之前的分析,有時候可能你在測試過程中還需要做出一些分析和調(diào)整。

測試計劃包含了分析和整理的各個方面,一個好的測試計劃包含的內(nèi)容:測試目的、測試目標、測試內(nèi)容(可能包含業(yè)務性能、可靠性、穩(wěn)定性等等),業(yè)務需求目標,系統(tǒng)業(yè)務構(gòu)成,系統(tǒng)節(jié)點構(gòu)成,測試方法流程,需要監(jiān)控的指標要求和節(jié)點等等。

測試用例一般包含在測試計劃中,測試用例實際上就是普通的業(yè)務操作流程,用測試工具或者其他測試手段來模擬大的數(shù)據(jù)量業(yè)務操作,并對系統(tǒng)的各個節(jié)點進行監(jiān)控,獲取監(jiān)控數(shù)據(jù)。預期的監(jiān)控數(shù)據(jù)和實際監(jiān)控數(shù)據(jù)的對比,滿足要求就是預期要求,實際對比結(jié)果就是測試結(jié)果。

6、測試前的準備

環(huán)境搭建:測試環(huán)境搭建這一步工作量不大,如果有必要可以請開發(fā)協(xié)助配置完成。

場景建模:考慮哪些場景下可能存在性能瓶頸,相應的設置對應的測試腳本和測試邏輯,以盡可能模擬生產(chǎn)環(huán)境(?一定要熟悉系統(tǒng)業(yè)務,因為需求的產(chǎn)生,就是用戶+場景)。

測試數(shù)據(jù)準備:測試數(shù)據(jù)準備常用的有這兩種方式:將生產(chǎn)數(shù)據(jù)復制一份過來、開發(fā)腳本預埋造數(shù)據(jù)(但無論哪種,一定要注意數(shù)據(jù)隔離,防止數(shù)據(jù)污染)。

測試腳本開發(fā):首先,需要從開發(fā)那里獲取開發(fā)接口文檔和數(shù)據(jù)庫表設計文檔。然后,通過工具或者寫測試腳本調(diào)試接口,先保證接口可以成功調(diào)用。

性能測試的正式開展

1、執(zhí)行測試腳本

在保證接口可以成功調(diào)用之后,先進行單接口基準測試,即:對一個接口進行壓力測試,不斷加壓,直到響應時間達到或超過指標,觀察當前其并發(fā)數(shù)TPS。同樣的并發(fā)數(shù),多執(zhí)行幾次,得到一個平均值或穩(wěn)定值(即TPS和TRT曲線相對穩(wěn)定的值),并記錄下來。

“80%的性能瓶頸可以通過分析TPS和TRT的數(shù)值變化得到”。雖然有點片面,但也不失為一種方法。比如按照上圖記錄的數(shù)值變化來看,很明顯領券接口性能極差,這時候就可以告知開發(fā),通過查看log、檢查代碼、SQL語句等方法來查詢原因。當然個人能力足夠的話,這些可以自己來做。

2、監(jiān)控調(diào)試

所謂的監(jiān)控調(diào)試,就是一個不斷調(diào)整重復的過程,這個需要根據(jù)性能測試的目的去判斷具體如何執(zhí)行。

Jmeter本身就用監(jiān)聽器這個元件提供了一定的監(jiān)聽數(shù)值報告元件,但畢竟是開源工具,其本身的組件功能不夠強大,可以通過下載支持jmeter的增強型功能插件來進行監(jiān)控。

Jmeter插件下載地址:https://jmeter-plugins.org/

下載后可以解壓縮,將plugins-manager.jar放入jmeter安裝目錄lib/ext,然后重啟Jmeter即可,可以通過點擊下圖圈出來的按鈕檢驗是否成功安裝:

性能測試

?無論是對服務器資源使用率還是測試數(shù)據(jù)報表生成,甚至TPS、TRT等的監(jiān)聽,該插件都提供了組件支持,具體使用方法自行探索。

3、分析和調(diào)優(yōu)

性能測試除了為獲取性能指標外,更多是為了發(fā)現(xiàn)性能瓶頸和性能問題,然后對性能問題和瓶頸進行分析和調(diào)優(yōu),在當今互聯(lián)網(wǎng)高速發(fā)展的時代,性能調(diào)優(yōu)的模型可以歸納總結(jié)如下圖所示。

銳碼教育性能測試

性能調(diào)優(yōu)就是不斷采集系統(tǒng)中的性能指標以及系統(tǒng)模型中各層的資源消耗,從中發(fā)現(xiàn)性能瓶頸和性能問題,然后對瓶頸和問題進行分析診斷來確定性能調(diào)優(yōu)方案,最后通過性能壓測進行驗證調(diào)優(yōu)方案是否有效,如果無效繼續(xù)重復這個過程進行性能分析,直到調(diào)優(yōu)方案有效,瓶頸和問題得到解決。這個過程一般是非常漫長,因為很多時候性能調(diào)優(yōu)方案往往不是一次就能有效或者一次就能解決所有的瓶頸和問題,或者解決了當前的瓶頸和問題,但是繼續(xù)性能壓測又可能會出現(xiàn)新的瓶頸和問題。

4、輸出測試報告

根據(jù)以上幾個步驟,得到測試結(jié)果,分析系統(tǒng)存在的瓶頸,然后采用各種方法提出解決方案或優(yōu)化建議,最后對本次性能測試進行一個完整的總結(jié),這樣,一次性能測試就完成了。在整個過程中,費時較長一般是在測試數(shù)據(jù)準備和測試執(zhí)行以及監(jiān)控調(diào)優(yōu)階段。

性能測試路漫漫其修遠兮,想要進一步真正做好性能測試還需上下求索。

★免費領工具+簡歷模板+最新視頻!

★私信或者加vx:yyl091528或者ruima178

★喜歡請一鍵三連加關注,謝謝大家支持!



























領導給你一個項目,你將如何開展性能測試工作?的評論 (共 條)

分享到微博請遵守國家法律
湖南省| 东安县| 重庆市| 永新县| 冷水江市| 德庆县| 胶州市| 蓝田县| 三都| 文安县| 崇义县| 天水市| 萝北县| 淳安县| 琼海市| 晋江市| 板桥市| 永胜县| 涿鹿县| 南通市| 海阳市| 东莞市| 台前县| 安义县| 越西县| 团风县| 宝鸡市| 当涂县| 怀来县| 罗山县| 沈丘县| 岗巴县| 惠州市| 娱乐| 柳林县| 秦安县| 汤原县| 石屏县| 资溪县| 龙井市| 喀什市|