• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于JMeter的Web性能測(cè)試研究

      2021-08-28 02:08:36唐承玲李光平唐春蓬
      電腦與電信 2021年6期
      關(guān)鍵詞:測(cè)試計(jì)劃用戶數(shù)性能指標(biāo)

      唐承玲 王 虎 李光平 唐春蓬

      (汽車噪聲振動(dòng)與安全技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,重慶 401122)

      1 引言

      隨著互聯(lián)網(wǎng)的飛速發(fā)展、計(jì)算機(jī)的普及,Web 應(yīng)用系統(tǒng)已滲透到人們的生活及工作中。隨著網(wǎng)絡(luò)的發(fā)展,用戶對(duì)計(jì)算機(jī)、網(wǎng)絡(luò)的依賴性越來(lái)越大,在使用Web應(yīng)用強(qiáng)大、便捷的功能同時(shí),用戶也更加關(guān)注Web應(yīng)用的良好性能。用戶期望能獲得更快、更高的服務(wù)品質(zhì)。軟件的性能測(cè)試已成為衡量軟件質(zhì)量的重要標(biāo)準(zhǔn)之一。

      性能測(cè)試的價(jià)值就是保障系統(tǒng)的性能,提供良好的用戶體驗(yàn);盡可能地找出系統(tǒng)性能薄弱環(huán)節(jié),幫助進(jìn)行性能優(yōu)化。

      2 JMeter介紹

      Apache JMeter是Apache組織開(kāi)發(fā)的基于Java的壓力測(cè)試工具,用于對(duì)軟件做壓力測(cè)試。它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,后來(lái)擴(kuò)展到其他測(cè)試領(lǐng)域。它可以用于測(cè)試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java對(duì)象、數(shù)據(jù)庫(kù)、FTP服務(wù)器等等[1]。

      JMeter 的工作原理是通過(guò)線程組來(lái)驅(qū)動(dòng)多個(gè)線程運(yùn)行測(cè)試腳本對(duì)被測(cè)服務(wù)器發(fā)起負(fù)載,每一個(gè)負(fù)載機(jī)上都可以運(yùn)行多個(gè)線程組[1]。

      在Web性能測(cè)試中,JMeter軟件被當(dāng)作Web服務(wù)器與瀏覽器之間的一個(gè)代理網(wǎng)管,模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對(duì)象上附加高負(fù)載以測(cè)試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負(fù)載條件下的總性能情況。

      使用JMeter 進(jìn)行性能測(cè)試具有以下優(yōu)勢(shì):開(kāi)源免費(fèi),文件小安裝方便,不受軟件界面改動(dòng)的影響,操作簡(jiǎn)單易上手,可進(jìn)行功能定制或擴(kuò)充,不需要關(guān)注對(duì)象是否被識(shí)別的問(wèn)題,可以通過(guò)其自帶的配置元件及其他元件的組合來(lái)處理復(fù)雜的業(yè)務(wù)邏輯,測(cè)試腳本維護(hù)方便[1]。

      3 性能測(cè)試概述

      3.1 性能測(cè)試的目的

      Web性能測(cè)試是指在各種負(fù)載條件下,利用測(cè)試工具模擬運(yùn)行被測(cè)系統(tǒng),以此獲得該系統(tǒng)的各種性能指標(biāo),并對(duì)所得結(jié)果加以分析的一種測(cè)試活動(dòng)。性能測(cè)試的目的主要體現(xiàn)在以下5點(diǎn)[2]:

      (1)驗(yàn)證系統(tǒng)是否達(dá)到用戶預(yù)期的性能目標(biāo)。

      (2)尋找系統(tǒng)的最優(yōu)配置,獲取最小的系統(tǒng)成本。

      (3)挖掘存在的性能缺陷和瓶頸,以此優(yōu)化系統(tǒng)。

      (4)驗(yàn)證系統(tǒng)是否具有穩(wěn)定性、可靠性。

      (5)預(yù)測(cè)未來(lái)性能。當(dāng)用戶數(shù)和業(yè)務(wù)量增加時(shí)能否及時(shí)應(yīng)對(duì)?如何調(diào)整?是增加應(yīng)用服務(wù)器,還是數(shù)據(jù)庫(kù)服務(wù)器,還是要優(yōu)化代碼邏輯?

      3.2 性能測(cè)試的分類

      性能測(cè)試是在軟件可靠性和正確性的基礎(chǔ)上側(cè)重效率方面的驗(yàn)證,是在功能測(cè)試的基礎(chǔ)上測(cè)試軟件在集成系統(tǒng)中的運(yùn)行性能。Web性能測(cè)試一般包含以下6項(xiàng)[2]:

      (1)負(fù)載測(cè)試:通過(guò)不斷加壓直到系統(tǒng)性能測(cè)試瓶頸或資源達(dá)到飽和。

      (2)壓力測(cè)試:系統(tǒng)在一定的負(fù)載下長(zhǎng)時(shí)間運(yùn)行的穩(wěn)定性,關(guān)注大業(yè)務(wù)量下系統(tǒng)長(zhǎng)時(shí)間運(yùn)行時(shí)性能的變化,確定在什么負(fù)載條件下,系統(tǒng)性能處于失效狀態(tài)。

      (3)配置測(cè)試:通過(guò)對(duì)被測(cè)系統(tǒng)的軟硬件環(huán)境的調(diào)整,找到系統(tǒng)各項(xiàng)資源的最優(yōu)分配原則。

      (4)并發(fā)測(cè)試:模擬多用戶并發(fā)訪問(wèn)同一應(yīng)用的測(cè)試,記錄是否存在線程鎖、資源爭(zhēng)用、內(nèi)存泄漏等問(wèn)題。

      (5)容量測(cè)試:運(yùn)行一種或多種業(yè)務(wù)場(chǎng)景在一定虛擬用戶數(shù)量的情況下,獲取不同數(shù)量級(jí)別的性能指標(biāo),從而得到數(shù)據(jù)庫(kù)能夠處理的最大會(huì)話能力、最大容量等。

      (6)可靠性測(cè)試:給系統(tǒng)加載一定的業(yè)務(wù)壓力,讓其持續(xù)運(yùn)行一段時(shí)間,測(cè)試系統(tǒng)是否可以穩(wěn)定運(yùn)行。

      3.3 性能測(cè)試的指標(biāo)

      軟件的性能從不同角度來(lái)看會(huì)有不同的結(jié)果,以下從3個(gè)不同的角度來(lái)看待軟件的性能[3]:

      (1)用戶角度:他們關(guān)心的是應(yīng)用程序的單步響應(yīng)時(shí)間,也就是數(shù)據(jù)流經(jīng)過(guò)服務(wù)器/服務(wù)器集群經(jīng)過(guò)網(wǎng)絡(luò)傳輸后往返的時(shí)間總和。例如當(dāng)用戶點(diǎn)擊“查詢”按鈕后多長(zhǎng)時(shí)間能獲得結(jié)果。

      (2)軟件開(kāi)發(fā)者的角度:他們關(guān)注的是功能的代碼實(shí)現(xiàn),數(shù)據(jù)庫(kù)的設(shè)計(jì),框架設(shè)計(jì)是否合理,系統(tǒng)里內(nèi)存的使用方法是否合理,線程使用方式是否合理,系統(tǒng)資源是否存在不合理競(jìng)爭(zhēng)。

      (3)運(yùn)維人員的角度:他們關(guān)注的是系統(tǒng)所有服務(wù)器是否正常運(yùn)行,數(shù)據(jù)庫(kù)、中間件等服務(wù)器的硬件資源利用率情況,內(nèi)存是否有可用空間,CPU 是否超過(guò)70%,網(wǎng)絡(luò)是否順暢,I/O是否存在瓶頸。

      體現(xiàn)軟件性能的數(shù)據(jù)我們稱之為性能指標(biāo)[4],常見(jiàn)的Web性能指標(biāo)如下:

      (1)響應(yīng)時(shí)間:用戶從客戶端發(fā)出請(qǐng)求,并得到響應(yīng),以及展示出來(lái)的整個(gè)過(guò)程的時(shí)間。

      (2)吞吐量:每秒鐘系統(tǒng)能夠處理的請(qǐng)求數(shù)/事務(wù)數(shù)。

      (3)資源利用率:系統(tǒng)中不同資源的使用程度,如CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)帶寬等。

      (4)并發(fā)用戶數(shù):系統(tǒng)能同時(shí)處理的請(qǐng)求數(shù)/事務(wù)數(shù)。

      (5)錯(cuò)誤率:一段時(shí)間內(nèi)出錯(cuò)的請(qǐng)求在總請(qǐng)求數(shù)中的占比。

      (6)平均傳輸帶寬:計(jì)算服務(wù)端的數(shù)據(jù)傳輸量。

      3.4 性能測(cè)試的流程

      性能測(cè)試實(shí)施流程能夠加強(qiáng)測(cè)試工作的控制,明確測(cè)試各階段應(yīng)完成的工作,主要流程如下:

      (1)性能測(cè)試準(zhǔn)備工作:組建團(tuán)隊(duì),需求調(diào)研,選擇工具。

      (2)性能測(cè)試計(jì)劃:分析測(cè)試背景、用戶場(chǎng)景,確定性能指標(biāo),制定性能測(cè)試實(shí)施計(jì)劃。

      (3)性能測(cè)試設(shè)計(jì):測(cè)試環(huán)境設(shè)計(jì),測(cè)試場(chǎng)景設(shè)計(jì),測(cè)試用例設(shè)計(jì),編寫(xiě)或錄制測(cè)試腳本。

      (4)性能測(cè)試執(zhí)行:部署測(cè)試環(huán)境,執(zhí)行測(cè)試腳本,性能監(jiān)控和記錄。

      (5)性能測(cè)試報(bào)告:根據(jù)執(zhí)行結(jié)果,整理編寫(xiě)性能測(cè)試報(bào)告。

      (6)性能測(cè)試總結(jié):根據(jù)執(zhí)行結(jié)果對(duì)比性能指標(biāo),分析并統(tǒng)計(jì)系統(tǒng)的性能瓶頸,給出系統(tǒng)調(diào)優(yōu)建議。

      4 JMeter性能測(cè)試實(shí)例

      4.1 測(cè)試分析

      文章以某個(gè)項(xiàng)目管理系統(tǒng)為例,該項(xiàng)目管理系統(tǒng)主要包括項(xiàng)目管理、協(xié)議管理、市場(chǎng)拓展、維修改造、接管項(xiàng)目五個(gè)模塊。其中項(xiàng)目信息填報(bào)列表的查詢是最為重要的,使用頻率最高,因此以查詢項(xiàng)目信息填報(bào)列表接口為例使用JMeter軟件進(jìn)行Web性能測(cè)試。系統(tǒng)頁(yè)面如圖1所示。

      圖1 項(xiàng)目管理系統(tǒng)

      4.2 準(zhǔn)備性能測(cè)試腳本及環(huán)境

      (1)小組準(zhǔn)備3個(gè)人參加,與項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理一起對(duì)需求進(jìn)行調(diào)研。

      (2)搭建測(cè)試環(huán)境,將此系統(tǒng)安裝到與線上環(huán)境相似的測(cè)試環(huán)境服務(wù)器上。

      (3)準(zhǔn)備數(shù)據(jù),新增10萬(wàn)條項(xiàng)目管理填報(bào)數(shù)據(jù)。

      (4)根據(jù)接口文檔詳細(xì)信息,打開(kāi)JMeter工具,將服務(wù)器地址、端口號(hào)、路徑等參數(shù)填入HTTP請(qǐng)求中。

      (5)添加監(jiān)聽(tīng)器來(lái)記錄測(cè)試結(jié)果,在線程組或HTTP請(qǐng)求下添加“察看結(jié)果樹(shù)”“聚合報(bào)告”“響應(yīng)時(shí)間圖”“圖形結(jié)果”“PerfMon Metrics Collector”。在“PerfMon Metrics Collector”界面上添加需要監(jiān)控的服務(wù)器對(duì)應(yīng)的CPU、Memory、Disks I/O。對(duì)腳本所做的設(shè)置如圖2所示。

      圖2 腳本設(shè)置

      4.3 制定測(cè)試系統(tǒng)性能指標(biāo)

      根據(jù)項(xiàng)目管理系統(tǒng)的需求,首先并發(fā)用戶數(shù)從100開(kāi)始,逐漸增加100,最大并發(fā)用戶數(shù)為500,制定性能指標(biāo)如表1所示。

      表1 測(cè)試系統(tǒng)性能指標(biāo)

      4.4 制定性能測(cè)試計(jì)劃

      在腳本中線程組界面,對(duì)屬性“線程數(shù)”“Ramp-Up Period(in seconds)”“循環(huán)次數(shù)”“調(diào)度器配置”設(shè)置不同的屬性值,可實(shí)現(xiàn)系統(tǒng)在不同負(fù)載下的性能測(cè)試。結(jié)合本實(shí)例系統(tǒng)的性能指標(biāo),計(jì)劃如表2所示。

      表2 性能測(cè)試計(jì)劃

      4.5 分析性能測(cè)試執(zhí)行結(jié)果

      根據(jù)測(cè)試計(jì)劃,運(yùn)行腳本,可看到測(cè)試結(jié)果如表3所示。

      表3 性能測(cè)試結(jié)果

      測(cè)試執(zhí)行時(shí)監(jiān)控的資源利用率結(jié)果如圖3-圖7所示。

      圖3 測(cè)試計(jì)劃1的資源利用率結(jié)果

      圖4 測(cè)試計(jì)劃2的資源利用率結(jié)果

      圖5 測(cè)試計(jì)劃3的資源利用率結(jié)果

      圖6 測(cè)試計(jì)劃4的資源利用率結(jié)果

      圖7 測(cè)試計(jì)劃5的資源利用率結(jié)果

      對(duì)上述測(cè)試結(jié)果,分析如下:

      (1)當(dāng)并發(fā)用戶數(shù)為100 時(shí),平均響應(yīng)時(shí)間是0.502 秒,CPU 使用率比較低,平均值在36%左右,內(nèi)存使用率保持平穩(wěn),平均在43%左右,磁盤(pán)讀寫(xiě)速度正常,系統(tǒng)各項(xiàng)結(jié)果數(shù)據(jù)都滿足性能指標(biāo)。

      (2)當(dāng)并發(fā)用戶數(shù)為200 時(shí),平均響應(yīng)時(shí)間是0.692 秒,CPU 使用率最高是54%,平均值在30%左右,內(nèi)存使用率保持平穩(wěn),平均在40%左右,磁盤(pán)讀寫(xiě)速度正常,系統(tǒng)各項(xiàng)結(jié)果數(shù)據(jù)都滿足性能指標(biāo)。

      (3)當(dāng)并發(fā)用戶數(shù)為300 時(shí),平均響應(yīng)時(shí)間是1.345 秒,CPU使用率有些波動(dòng),最高是69%,平均值在40%左右,內(nèi)存使用率保持平穩(wěn),平均在40%左右,磁盤(pán)讀寫(xiě)速度正常,系統(tǒng)各項(xiàng)結(jié)果數(shù)據(jù)都滿足性能指標(biāo)。

      (4)當(dāng)并發(fā)用戶數(shù)為400時(shí),平均響應(yīng)時(shí)間是2.597滿足指標(biāo),CPU 使用率有些波動(dòng),最高是91%,平均值在43%左右,內(nèi)存使用率保持平穩(wěn),平均在35%左右,磁盤(pán)讀寫(xiě)速度正常,最長(zhǎng)響應(yīng)時(shí)間、吞吐量、CPU使用率均未滿足性能指標(biāo)。

      (5)當(dāng)并發(fā)用戶數(shù)為500時(shí),平均響應(yīng)時(shí)間是5.06,對(duì)服務(wù)器的CPU消耗比較大,小部分時(shí)間使用率達(dá)到了100%,部分時(shí)間磁盤(pán)讀寫(xiě)速度比較快。系統(tǒng)各項(xiàng)結(jié)果數(shù)據(jù)都未滿足性能指標(biāo)。

      對(duì)上述測(cè)試結(jié)果做出風(fēng)險(xiǎn)判斷和建議如下:

      風(fēng)險(xiǎn)一:在查詢時(shí),篩選條件同時(shí)具備了分區(qū)和索引性質(zhì),查詢語(yǔ)句只走了分區(qū),沒(méi)有走索引。

      建議:采用全局索引。

      風(fēng)險(xiǎn)二:當(dāng)并發(fā)用戶數(shù)為500時(shí),會(huì)大量報(bào)錯(cuò),查看日志顯示外部通信異常。

      建議:建立管理線程池,支持大量并發(fā),避免線程異常拒絕。

      風(fēng)險(xiǎn)三:當(dāng)并發(fā)用戶數(shù)>=400時(shí),對(duì)服務(wù)器的CPU消耗比較大,可能會(huì)造成服務(wù)器宕機(jī)。

      建議:對(duì)線程隊(duì)列做限制,不能無(wú)限制地消耗服務(wù)器資源。

      5 結(jié)語(yǔ)

      Web性能測(cè)試是系統(tǒng)開(kāi)發(fā)的重要環(huán)節(jié),它能保障系統(tǒng)性能,給用戶提供良好體驗(yàn)。文章以某項(xiàng)目管理系統(tǒng)為例,給出了基于JMeter測(cè)試工具的性能測(cè)試方案,根據(jù)測(cè)試需求制定了性能指標(biāo),根據(jù)測(cè)試計(jì)劃設(shè)置了不同場(chǎng)景下的性能測(cè)試,根據(jù)測(cè)試的執(zhí)行結(jié)果,分析了該項(xiàng)目管理系統(tǒng)的性能瓶頸,給出了風(fēng)險(xiǎn)判斷及優(yōu)化策略。

      猜你喜歡
      測(cè)試計(jì)劃用戶數(shù)性能指標(biāo)
      基于改進(jìn)V模型的軟件測(cè)試過(guò)程研究
      瀝青膠結(jié)料基本高溫性能指標(biāo)相關(guān)性研究
      石油瀝青(2021年1期)2021-04-13 01:31:08
      嵌入式軟件單元測(cè)試方法研究
      軟件工程(2019年8期)2019-09-04 10:00:46
      儲(chǔ)熱水箱分層性能指標(biāo)的研究進(jìn)展
      WebGIS關(guān)鍵性能指標(biāo)測(cè)試技術(shù)研究
      基于VBS實(shí)現(xiàn)BRAS在線用戶數(shù)的自動(dòng)提取
      磁共振成像儀主磁場(chǎng)計(jì)量性能指標(biāo)的選擇
      2016年6月電話用戶分省情況
      2013年12月電話用戶分省情況
      2013年4月電話用戶分省情況
      雅安市| 彝良县| 济宁市| 富民县| 武川县| 沧州市| 临沂市| 平度市| 涪陵区| 喀什市| 左贡县| 手游| 融水| 江城| 汪清县| 宁都县| 梁山县| 宜昌市| 沅江市| 连州市| 普兰店市| 台中市| 大庆市| 梨树县| 溧阳市| 布尔津县| 广平县| 神池县| 昭平县| 娄烦县| 襄樊市| 溧阳市| 徐闻县| 九龙坡区| 措勤县| 波密县| 齐河县| 镇沅| 金秀| 马鞍山市| 栾城县|