日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

性能测试总结(二)---测试流程篇

發(fā)布時(shí)間:2025/4/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 性能测试总结(二)---测试流程篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文主要介紹下性能測(cè)試的基本流程,性能測(cè)試從實(shí)際執(zhí)行層面來看,測(cè)試的過程一般分為這么幾個(gè)階段,如下圖:

       

下面分別介紹下每個(gè)階段具體需要做什么

一、性能需求分析:

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

  一些性能測(cè)試人員常犯的錯(cuò)誤就是測(cè)試一開始就直接用工具對(duì)系統(tǒng)進(jìn)行加壓,沒有弄清楚性能測(cè)試的目的,稀里糊涂做完了以后也不知道結(jié)果是否滿足性能需求。市面上的書籍也大都是直接講性能測(cè)試工具如LR,jmeter如何使用,導(dǎo)致很多新手一提到性能測(cè)試就直接拿工具來進(jìn)行錄制回放,使得很多人認(rèn)為會(huì)使用性能測(cè)試工具就等于會(huì)性能測(cè)試了,殊不知工具其實(shí)只是性能測(cè)試過程中很小的一部分。

 在需求分析階段,測(cè)試人員需要與項(xiàng)目相關(guān)的人員進(jìn)行溝通,收集各種項(xiàng)目資料,對(duì)系統(tǒng)進(jìn)行分析,建立性能測(cè)試數(shù)據(jù)模型,并將其轉(zhuǎn)化為可衡量的具體性能指標(biāo),確認(rèn)測(cè)試的目標(biāo)。所以性能測(cè)試需求分析過程是繁雜的,需要測(cè)試人員有深厚的性能理論知識(shí),除此之外還需要懂一些數(shù)學(xué)建模的知識(shí)來幫助我們建立性能測(cè)試模型。

?

首先,讓我們來看看通過性能需求分析我們需要得出哪些結(jié)論或目標(biāo):

  • 明確倒底要不要做性能測(cè)試?性能測(cè)試的目的是什么?
  • 明確被測(cè)系統(tǒng)是什么?被測(cè)試系統(tǒng)的相關(guān)技術(shù)信息如:架構(gòu)、平臺(tái)、協(xié)議等
  • 明確被測(cè)系統(tǒng)的基本業(yè)務(wù)、關(guān)鍵業(yè)務(wù),用戶行為
  • 明確性能測(cè)試點(diǎn)是什么?哪些需要測(cè),為什么?哪些不需要測(cè),又是為什么?
  • 明確被測(cè)系統(tǒng)未來的業(yè)務(wù)拓展規(guī)劃以及性能需求?
  • 明確性能測(cè)試策略,即應(yīng)該怎么測(cè)試?
  • 明確性能測(cè)試的指標(biāo),知道測(cè)試出來的結(jié)果怎么算通過?

?

其次,需求分析階段我們可以從以下幾個(gè)方面入手:

1、系統(tǒng)信息調(diào)研:

  指對(duì)被測(cè)試系統(tǒng)進(jìn)行分析,需要對(duì)其有全面的了解和認(rèn)識(shí),這是我們做好性能測(cè)試的前提,而且在后續(xù)進(jìn)行性能分析和調(diào)優(yōu)時(shí)將會(huì)大有用處,試想如果連系統(tǒng)的架構(gòu)、協(xié)議都不了解,我們?nèi)绾芜M(jìn)行準(zhǔn)確的性能測(cè)試?如果進(jìn)行性能分析與調(diào)優(yōu)?

  需要分析的系統(tǒng)信息如下(包括但不僅限于如下這些):

?

2、業(yè)務(wù)信息調(diào)研:

  指對(duì)被測(cè)試的業(yè)務(wù)進(jìn)行分析,通過對(duì)業(yè)務(wù)的分析和了解,方便我們后續(xù)進(jìn)行性能測(cè)試場(chǎng)景的確定以及性能測(cè)試指標(biāo)的確定。

  需要分析的業(yè)務(wù)信息如下(包括但不僅限于如下這些):

  

3、性能需求評(píng)估:

  在實(shí)施性能測(cè)試之前,我們需要對(duì)被測(cè)系統(tǒng)做相應(yīng)的評(píng)估,主要目的是明確是否需要做性能測(cè)試。如果確定需要做性能測(cè)試,需要進(jìn)一步確立性能測(cè)試點(diǎn)和指標(biāo),明確該測(cè)什么、性能指標(biāo)是多少,測(cè)試通過or不通過的標(biāo)準(zhǔn)?性能指標(biāo)也會(huì)根據(jù)情況評(píng)估,要求被測(cè)系統(tǒng)能滿足將來一定時(shí)間段的業(yè)務(wù)壓力。

  判斷是否進(jìn)行性能測(cè)試主要從下面兩個(gè)方面進(jìn)行思考:

  • 業(yè)務(wù)角度:

   系統(tǒng)是公司內(nèi)部 or 對(duì)外?系統(tǒng)使用的人數(shù)的多少?如果一個(gè)系統(tǒng)上線后基本沒幾個(gè)人使用,無論系統(tǒng)多大,設(shè)計(jì)多么復(fù)雜,并發(fā)性的性能測(cè)試都是沒必要的,前期可以否決。當(dāng)然,除非在功能測(cè)試階段發(fā)現(xiàn)非常明顯的性能問題,使得用戶體驗(yàn)較差的,此時(shí)可進(jìn)行性能測(cè)試來排查問題。

?

  • 系統(tǒng)角度系統(tǒng)又可以從以下3個(gè)方面進(jìn)行分析

  a)系統(tǒng)架構(gòu):

     如果一個(gè)系統(tǒng)采用的框架是老的系統(tǒng)框架(通常大公司都有自己的統(tǒng)一框架),只是在此框架上增加一些應(yīng)用,其實(shí)是沒有必要做性能測(cè)試,因?yàn)槔峡蚣艿氖褂每隙ㄊ墙?jīng)過了驗(yàn)證的。如果一個(gè)系統(tǒng)采用的是一種新的框架,可以考慮做性能測(cè)試。

  b)數(shù)據(jù)庫(kù)要求:

     很多情況下,性能測(cè)試是大數(shù)據(jù)量的并發(fā)訪問、修改數(shù)據(jù)庫(kù),而瓶頸在于連接數(shù)據(jù)庫(kù)池的數(shù)量,而非數(shù)據(jù)庫(kù)本身的負(fù)載、吞吐能力。這時(shí),可以結(jié)合DBA的建議,來決定是否來做性能測(cè)試。

  c)系統(tǒng)特殊要求:

     從實(shí)時(shí)性角度來分析,某些系統(tǒng)對(duì)響應(yīng)時(shí)間要求比較,比如證券系統(tǒng),系統(tǒng)的快慢直接影響客戶的收益,這種情況就有作并發(fā)測(cè)試的必要,在大并發(fā)量的場(chǎng)景下,查看這個(gè)功能的響應(yīng)時(shí)間。

     從大數(shù)據(jù)量上傳下載角度分析,某些系統(tǒng)經(jīng)常需要進(jìn)行較大數(shù)據(jù)量的上傳和下載操作,雖然此種操作使用的人數(shù)不會(huì)太多,但是也有必要進(jìn)行性能測(cè)試,確定系統(tǒng)能處理的最大容量,如果超過這個(gè)容量時(shí)系統(tǒng)需要進(jìn)行相關(guān)控制,避免由于不人工誤操作導(dǎo)致系統(tǒng)內(nèi)存溢出或崩潰。

?

4、確定性能測(cè)試點(diǎn):?

  在上面第3點(diǎn)中,我們簡(jiǎn)單分析了如何確定一個(gè)系統(tǒng)是否需要做性能測(cè)試。下面簡(jiǎn)單總結(jié)下如果一個(gè)系統(tǒng)確定要做性能測(cè)試,我們?nèi)绾未_定被測(cè)系統(tǒng)的性能測(cè)試點(diǎn)?

  我們可以從下面幾個(gè)方面進(jìn)行分析:

  • 關(guān)鍵業(yè)務(wù):

      確定被測(cè)項(xiàng)目是否屬于關(guān)鍵業(yè)務(wù),有哪些主要的業(yè)務(wù)邏輯點(diǎn),特別是跟交易相關(guān)的功能點(diǎn)。例如轉(zhuǎn)賬,扣款等接口。如果項(xiàng)目(或功能點(diǎn))不屬于關(guān)鍵業(yè)務(wù)(或關(guān)鍵業(yè)務(wù)點(diǎn)),則可轉(zhuǎn)入下面。

  • 日請(qǐng)求量:

      確定被測(cè)項(xiàng)目各功能點(diǎn)的日請(qǐng)求量(可以統(tǒng)計(jì)不同時(shí)間粒度下的請(qǐng)求量如:小時(shí),日,周,月)。如果日請(qǐng)求量很高,系統(tǒng)壓力很大,而且又是關(guān)鍵業(yè)務(wù),該項(xiàng)目需要做性能測(cè)試,而且關(guān)鍵業(yè)務(wù)點(diǎn),可以被確定為性能點(diǎn)。

  • 邏輯復(fù)雜度:

      判定被測(cè)項(xiàng)目各功能點(diǎn)的邏輯復(fù)雜度。如果一個(gè)主要業(yè)務(wù)的日請(qǐng)求量不高,但是邏輯很復(fù)雜,則也需要通過性能測(cè)試。原因是,在分布式方式的調(diào)用中,當(dāng)某一個(gè)環(huán)節(jié)響應(yīng)較慢,就會(huì)影響到其它環(huán)節(jié),造成雪崩效應(yīng)。

  • 運(yùn)營(yíng)推廣活動(dòng):

      根據(jù)運(yùn)營(yíng)的推廣計(jì)劃來判定待測(cè)系統(tǒng)未來的壓力。未雨綢繆、防患于未然、降低運(yùn)營(yíng)風(fēng)險(xiǎn)是性能測(cè)試的主要目標(biāo)。被測(cè)系統(tǒng)的性能不僅能滿足當(dāng)前壓力,更需要滿足未來一定時(shí)間段內(nèi)的壓力。因此,事先了解運(yùn)營(yíng)推廣計(jì)劃,對(duì)性能點(diǎn)的制定有很大的作用。例如,運(yùn)營(yíng)計(jì)劃做活動(dòng),要求系統(tǒng)每天能支撐多少 PV、多少 UV,或者一個(gè)季度后,需要能支撐多大的訪問量等等數(shù)據(jù)。當(dāng)新項(xiàng)目(或功能點(diǎn))屬于運(yùn)營(yíng)重點(diǎn)推廣計(jì)劃范疇之內(nèi),則該項(xiàng)目(或功能點(diǎn))也需要做性能測(cè)試。

  以上 4 點(diǎn),是相輔相成、環(huán)環(huán)相扣的。在實(shí)際工作中應(yīng)該具體問題具體分析。例如,當(dāng)一個(gè)功能點(diǎn)不滿足以上 4 點(diǎn),但又屬于資源高消耗(內(nèi)存、CPU),也可列入性能測(cè)試點(diǎn)行列。

?

5、確定性能指標(biāo):?

  性能需求分析一個(gè)很重要的目標(biāo)就是需要確定后期性能分析用的性能指標(biāo),性能指標(biāo)有很多,可以根據(jù)具體項(xiàng)目選取和設(shè)定,而具體的指標(biāo)值則需要根據(jù)業(yè)務(wù)特點(diǎn)進(jìn)行設(shè)定,本文不詳細(xì)進(jìn)行闡述,后續(xù)可考慮就此單獨(dú)寫一篇。

?

二、性能測(cè)試準(zhǔn)備

1、測(cè)試環(huán)境準(zhǔn)備:

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

  b)執(zhí)行機(jī)環(huán)境:這個(gè)就是用來生成負(fù)載的執(zhí)行機(jī),通常需要在物理機(jī)上運(yùn)行,而物理機(jī)又是稀缺資源,所以我們每次做性能測(cè)試都需要提前準(zhǔn)備好執(zhí)行機(jī)環(huán)境。

2、測(cè)試場(chǎng)景設(shè)計(jì):根據(jù)性能需求分析來設(shè)計(jì)符合用戶使用習(xí)慣的場(chǎng)景,場(chǎng)景設(shè)計(jì)的好不好直接影響到性能測(cè)試的效果。

3、性能工具準(zhǔn)備:

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

  b)監(jiān)控工具:準(zhǔn)備性能測(cè)試時(shí)的服務(wù)器資源、JVM、數(shù)據(jù)庫(kù)監(jiān)控工具,以便進(jìn)行后續(xù)的性能測(cè)試分析與調(diào)優(yōu)。

4、測(cè)試腳本準(zhǔn)備:如果性能測(cè)試工具不能滿足被測(cè)系統(tǒng)的要求或只能滿足部分要求時(shí),需要我們自己開發(fā)腳本配合工具進(jìn)行性能測(cè)試。

5、測(cè)試數(shù)據(jù)準(zhǔn)備:

  a)負(fù)載測(cè)試數(shù)據(jù):并發(fā)測(cè)試時(shí)需要多少數(shù)據(jù)?比如登錄場(chǎng)景?

  b)DB數(shù)據(jù)量大小:為了盡量符合生產(chǎn)場(chǎng)景,需要模擬線上大量數(shù)據(jù)情況,那么要往數(shù)據(jù)庫(kù)里提前插入一定的數(shù)據(jù)量。這可能需要花費(fèi)一些時(shí)間,特點(diǎn)是關(guān)聯(lián)系統(tǒng)較多,邏輯復(fù)雜的業(yè)務(wù)可能同時(shí)涉及多張表。

6、其它:如果需要其它其它關(guān)聯(lián)系統(tǒng)或?qū)I(yè)人士如DBA配合的,也需要提前進(jìn)行溝通。

?

三、性能測(cè)試執(zhí)行

?1、人工邊執(zhí)行邊分析

  通常我們做性能測(cè)試都是人工執(zhí)行并隨時(shí)觀察系統(tǒng)運(yùn)行的情況、資源的使用率等指標(biāo)。性能測(cè)試的吸引力之一就在于它的不可預(yù)知性。當(dāng)我們?cè)谧鲂阅軠y(cè)試的時(shí)候遇到跟預(yù)期不符的情況很正常,這個(gè)時(shí)候需要冷靜的分析。但這個(gè)過程可能會(huì)很慢長(zhǎng),需要不斷的調(diào)整系統(tǒng)配置或程序代碼來定位問題,耗時(shí)耗人力。特別是在當(dāng)前敏捷開發(fā)模式比較流行的大環(huán)境下,版本發(fā)布非常頻繁且版本周期短(通常1~2周一個(gè)版本),沒有那么長(zhǎng)的時(shí)間來做性能測(cè)試。

2、無人值守執(zhí)行性能測(cè)試

  無人值守是最理想化的目標(biāo),目前我們也朝著這個(gè)方向努力。無人值守不是說沒有人力介入,而是把人為的分析和執(zhí)行過程分離,執(zhí)行過程只是機(jī)器服從指令的運(yùn)行而已。通常測(cè)試環(huán)境在白天比較繁忙,出現(xiàn)性能問題及定位難度較大且會(huì)影響功能測(cè)試。所以一般性能測(cè)試最好在晚上或周末進(jìn)行,在相對(duì)較安靜的條件有利于測(cè)試結(jié)果的穩(wěn)定性。這種方法也相對(duì)比較適合敏捷的模式,不需要人工一直守著。只需要在拿到結(jié)果后進(jìn)行分析就好了。同進(jìn),這種方式對(duì)測(cè)試人員能力的要求比較高,需要我們能進(jìn)行自動(dòng)化的收集各種監(jiān)控?cái)?shù)據(jù)、生成報(bào)表便于后續(xù)分析。

?

四、結(jié)果分析與調(diào)優(yōu)

?

關(guān)于性能分析與調(diào)優(yōu)這是一個(gè)比較大的話題,后續(xù)會(huì)單獨(dú)進(jìn)行總結(jié)和分析。

?

五、測(cè)試報(bào)告與總結(jié)

?  性能測(cè)試報(bào)告是性能測(cè)試的里程碑,通過報(bào)告能展示出性能測(cè)試的最終成果,展示系統(tǒng)性能是否符合需求,是否有性能隱患。性能測(cè)試報(bào)告中需要闡明性能測(cè)試目標(biāo)、性能測(cè)試環(huán)境、性能測(cè)試數(shù)據(jù)構(gòu)造規(guī)則、性能測(cè)試策略、性能測(cè)試結(jié)果、性能測(cè)試調(diào)優(yōu)說明、性能測(cè)試過程中遇到的問題和解決辦法等。

  性能測(cè)試工程師完成該次性能測(cè)試后,需要將測(cè)試結(jié)果進(jìn)行備案,并做為下次性能測(cè)試的基線標(biāo)準(zhǔn),具體包括性能測(cè)試結(jié)果數(shù)據(jù)、性能測(cè)試瓶頸和調(diào)優(yōu)方案等。同時(shí)需要將測(cè)試過程中遇到的問題,包括代碼瓶頸、配置項(xiàng)問題、數(shù)據(jù)問題和溝通問題,以及解決辦法或解決方案,進(jìn)行知識(shí)沉淀。

?

?

總結(jié)

以上是生活随笔為你收集整理的性能测试总结(二)---测试流程篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。