免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
測試開發(fā):新手學(xué)習(xí)性能測試經(jīng)驗分享,值得收藏!

干貨技術(shù),第一時間送達(dá)!

開課通知:重磅消息 | 2021年最新全棧測試開發(fā)技能實戰(zhàn)指南(第2期)

大家好,我是黎潘,來自重慶,狂師老師的全棧測開訓(xùn)練營中上一期的學(xué)員。

大多數(shù)測試人員在談到性能測試時,往往會倍感壓力。對于我來說更是如此,想做好性能測試需要龐大的知識體系,不斷實踐所總結(jié)的經(jīng)驗教訓(xùn)更是彌足珍貴。而且每個人對性能測試的理解都有獨到的地方,此次有幸參加全棧測開訓(xùn)練營在狂師老師的指導(dǎo)下逐步揭開性能測試得神秘面紗,結(jié)合課堂學(xué)習(xí)及自身消化理解后的,歸納了一些性能測試的基礎(chǔ)知識,希望對大家理解性能測試有所幫助。

一、簡述性能測試

性能測試含義:系統(tǒng)在一個給定的環(huán)境和場景中的性能表現(xiàn)是否與預(yù)期目標(biāo)一致,評判系統(tǒng)是否存在性能缺陷,并根據(jù)測試結(jié)果識別性能瓶頸,改善系統(tǒng)性能的完整的過程。

介入時機(jī):通常是在功能測試完成之后,并且系統(tǒng)功能處于相對穩(wěn)定狀態(tài)。

1.1性能測試開展范圍

客戶端:web端,PC端,移動端,小程序,每一個都是不同領(lǐng)域的性能測試,關(guān)注點都不盡相同。還包括一個服務(wù)端的性能測試,本篇也主要是以服務(wù)端的性能測試來展開的。

1.2軟件性能關(guān)注點

  1. 終端用戶

使用過程中更加關(guān)注響應(yīng)時間,穩(wěn)定性??偟脕碚f就是用戶體驗要好。

  1. 系統(tǒng)運(yùn)維人員

系統(tǒng)最大并發(fā),最大業(yè)務(wù)處理量,能支持多少用戶訪問,能否長時間提供服務(wù),服務(wù)器資源使用,數(shù)據(jù)庫資源使用,系統(tǒng)是否可以實現(xiàn)擴(kuò)展。總的來說,更加關(guān)注系統(tǒng)的穩(wěn)定性,資源利用率,可擴(kuò)展性,系統(tǒng)容量等。

  1. 軟件設(shè)計開發(fā)人員

架構(gòu)設(shè)計,數(shù)據(jù)庫設(shè)計,代碼設(shè)計,是否存在不合理的內(nèi)存使用和線程同步方式,以及資源競爭等,總的來說,更加關(guān)注系統(tǒng)架構(gòu),數(shù)據(jù)庫設(shè)計,設(shè)計與代碼實現(xiàn)等。

  1. 性能測試人員

系統(tǒng)資源指標(biāo),業(yè)務(wù)性能指標(biāo),DB性能指標(biāo),系統(tǒng)穩(wěn)定性,支持最大并發(fā),性能拐點等,幾乎包括了上述所有人員的關(guān)注點。

二、后端性能常見指標(biāo)

2.1業(yè)務(wù)性能指標(biāo)

并發(fā)用戶數(shù):并發(fā)用戶數(shù)取決于業(yè)務(wù)并發(fā)用戶數(shù)和用戶行為模式,也就是說實際使用的用戶并不是每種用戶行為都會對服務(wù)端產(chǎn)生壓力,通常是指同一批用戶同時執(zhí)行一個對后端服務(wù)產(chǎn)生壓力的操作行為。

響應(yīng)時間:響應(yīng)時間是系統(tǒng)最重要的性能指標(biāo),直觀的反映了系統(tǒng)的快慢。指的是用戶端發(fā)出請求到得到響應(yīng)的整個過程所經(jīng)歷的。

系統(tǒng)處理能力:系統(tǒng)處理能力是指系統(tǒng)在利用系統(tǒng)硬件平臺和軟件平臺進(jìn)行信息處理的能力,通常有以下幾個指標(biāo)衡量。

  • TPS:每秒事務(wù)數(shù),指服務(wù)器在單位時間內(nèi)(秒)可以處理的事務(wù)數(shù)量。
  • QPS:每秒查詢率,指服務(wù)器在單位時間內(nèi)(秒)處理的查詢請求速率。
  • HPS:每秒點擊次數(shù),單位是次/秒。

吞吐量:系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量。

事務(wù)成功率:單位時間內(nèi)系統(tǒng)可以成功完成多少個定義的事務(wù)。

超時錯誤率:主要指事務(wù)由于超時或系統(tǒng)內(nèi)部其它錯誤導(dǎo)致失敗占總事務(wù)的比率。

2.2系統(tǒng)資源指標(biāo)

CPU使用率:指用戶進(jìn)程與系統(tǒng)進(jìn)程消耗的CPU時間百分比。

內(nèi)存利用率:內(nèi)存利用率=(1-空閑內(nèi)存/總內(nèi)存大?。?100%。

磁盤I/O:磁盤吞吐量簡稱為 Disk Throughput,是指在無磁盤故障的情況下單位時間內(nèi)通過磁盤的數(shù)據(jù)量。

網(wǎng)絡(luò)帶寬:發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。

數(shù)據(jù)庫性能指標(biāo):sql語句,連接數(shù),讀寫速度,資源使用率等。

上述只是一些常見的指標(biāo),通常還包括一些其他中間件,以及整個鏈路所經(jīng)過的服務(wù)器指標(biāo)。

2.3并發(fā)用戶數(shù),響應(yīng)時間,系統(tǒng)吞吐量三者之間的關(guān)系

未達(dá)到系統(tǒng)瓶頸:隨著并發(fā)用戶數(shù)的增加,系統(tǒng)吞吐量會逐漸增加,此時響應(yīng)時間會較快。

達(dá)到系統(tǒng)瓶頸:隨著并發(fā)用戶數(shù)的增加,系統(tǒng)吞吐量不再會增加,此時響應(yīng)時間會開始變長。

超過系統(tǒng)瓶頸:隨著并發(fā)用戶數(shù)的增加,系統(tǒng)吞吐量出現(xiàn)下降,此時響應(yīng)時間會逐漸拉長,甚至無響應(yīng)。

三、常見性能測試方法

后端性能測試:通過模擬一定的并發(fā)用戶量,獲取一系列需要的系統(tǒng),業(yè)務(wù)性能指標(biāo),來驗證是否滿足我們預(yù)期性能需求或者探索系統(tǒng)的容量和潛在的問題。

代碼級性能測試:在單元測試階段,針對代碼本身,例如通過多次執(zhí)行單元測試用例,獲取一些關(guān)鍵算法的性能指標(biāo),是否滿足需求。

壓力測試:系統(tǒng)在一定資源飽和的情況下,模擬一定用戶量,不斷對系統(tǒng)施壓,驗證系統(tǒng)處于壓力情況下的性能表現(xiàn),尋找系統(tǒng)的性能瓶頸點。

配置測試:觀察系統(tǒng)在不同配置下性能的表現(xiàn),了解不同環(huán)境配置對系統(tǒng)性能的影響程度。

并發(fā)測試:模擬多個用戶同一時間訪問一個系統(tǒng),模塊或數(shù)據(jù)記錄等其他并發(fā)操作,關(guān)注系統(tǒng)可能存在的性能瓶頸,如內(nèi)存泄漏,線程死鎖或資源競爭等問題。

可靠性測試:給系統(tǒng)施加一定的壓力,持續(xù)運(yùn)行一段時間,觀察系統(tǒng)能否穩(wěn)定運(yùn)行。

四、企業(yè)中常見性能測試類型

性能基準(zhǔn)測試:基于固定的硬件環(huán)境和部署架構(gòu)(比如專用的服務(wù)器、固定的專用網(wǎng)絡(luò)環(huán)境、固定大小的集群規(guī)模、相同的系統(tǒng)配置、相同的數(shù)據(jù)庫背景數(shù)據(jù)等),通過執(zhí)行固定的性能測試場景得到系統(tǒng)的性能測試報告,然后與上一版本發(fā)布時的指標(biāo)進(jìn)行對比,如果發(fā)現(xiàn)指標(biāo)有“惡化”的趨勢,就需要進(jìn)一步排查。

穩(wěn)定性測試:又稱可靠性測試,主要是通過長時間(7*24 小時)模擬被測系統(tǒng)的測試負(fù)載,來觀察系統(tǒng)在長期運(yùn)行過程中是否有潛在的問題。通過對系統(tǒng)指標(biāo)的監(jiān)控,穩(wěn)定性測試可以發(fā)現(xiàn)諸如內(nèi)存泄漏、資源非法占用等問題。

并發(fā)測試:是在高并發(fā)情況下驗證單一業(yè)務(wù)功能的正確性以及性能的測試手段。高并發(fā)測試一般使用思考時間為零的虛擬用戶腳本來發(fā)起具有“集合點”的測試。

容量規(guī)劃測試:是為了完成容量規(guī)劃而設(shè)計執(zhí)行的測試。容量規(guī)劃的主要目的是,解決當(dāng)系統(tǒng)負(fù)載將要達(dá)到極限處理能力時,我們應(yīng)該如何通過垂直擴(kuò)展(增加單機(jī)的硬件資源)和水平擴(kuò)展(增加集群中的機(jī)器數(shù)量)增加系統(tǒng)整體的負(fù)載處理能力的問題。

五、常見的性能測試工具

目前市面上比較常見的服務(wù)端性能測試少說也有幾十種,這里我們簡單的比較下常見的三種,即JMeter,locust,LoadRunner。

5.1 組件對比

5.2 功能區(qū)別

通過以上對比,大家結(jié)合自己公司的需求,選擇合適的性能測試工具。

5.3 locust入門

定義

Locust是使用Python語言編寫實現(xiàn)的開源性能測試工具,簡潔、輕量、高效,并發(fā)機(jī)制基于gevent協(xié)程,可以實現(xiàn)單機(jī)模擬生成較高的并發(fā)壓力。中文意為:蝗蟲,蝗蟲過境,寸草不生。

主要特點

  • 使用Python語言編寫用戶測試場景
  • 分布式、可擴(kuò)展,支持成千上萬的用戶
  • 基于事件驅(qū)動,基于gevent協(xié)程實現(xiàn)并發(fā)機(jī)制。
  • 基于Web的用戶界面,用戶可以實時監(jiān)控腳本運(yùn)行狀態(tài)
  • 幾乎可以測試任何系統(tǒng),除了Web HTTP接口外,還可自定義Clients測試其他類型系統(tǒng)

安裝

直接通過pip install locust命令安裝。

安裝成功后可以輸入pip show locust命令查看是否安裝成功,以及通過locust --help查看幫助信息。

簡單腳本示例

from locust import HttpUser, TaskSet, task


class WebsiteTasks(TaskSet):
    # 任務(wù)啟動前置執(zhí)行 
    #def on_start(self):
        self.login()
    # self.client屬性使用Python request庫的所有方法,調(diào)用和使用方法和requests完全一致
    #def login(self):
    #    self.client.post("/login", {"username": "mikezhou", "password": "123456"})  
 # 此腳本用不到提前登陸,只起個示例作用,運(yùn)行前注釋掉
    
    @task(2)  # 通過@task()裝飾的方法為一個事務(wù),方法的參數(shù)用于指定該行為的執(zhí)行權(quán)重,參數(shù)越大每次被虛擬用戶執(zhí)行的概率越高,默認(rèn)為1
    def index(self):
        self.client.get("/")

    def about(self):
        self.client.get("/about/")


class WebsiteUser(HttpUser):
    # 被測系統(tǒng)的host,在終端中啟動locust時沒有指定--host參數(shù)時才會用到
    host = "http://example.com"  
    # TaskSet類,該類定義用戶任務(wù)信息,必填。這里就是WebsiteTasks類名,因為該類繼承TaskSet
    tasks = [WebsiteTasks]  
    # 每個用戶執(zhí)行兩個任務(wù)間隔時間的上下限(毫秒),具體數(shù)值在上下限中隨機(jī)取值,若不指定默認(rèn)間隔時間固定為1秒
    min_wait = 3000  
    max_wait = 10000

locust腳本命令運(yùn)行

# 方法一:腳本調(diào)試無頭模式運(yùn)行
locust -f locustfile.py --headless -u 10 -r 1 -t 30s
# -f:指定文件
# -u:指定用戶量
# -r:每秒啟動用戶數(shù)
# -t:運(yùn)行時間
# --headless:開啟無頭模式,即不使用UI界面操作

#
 方法二:指定IP和端口啟動,使用UI界面
locust -f locustfile.py --web-host 127.0.0.1 --web-port 8080

#
 以上就是簡單的啟動locust腳本的方式,詳細(xì)可以查看官方文檔或者locust --help

locust的UI界面

  • Number of new load test:設(shè)置模擬的用戶總數(shù)
  • Spawn rate  (users spawned/second):每秒啟動的虛擬用戶數(shù)
  • Host  (e.g. http://www.example.com):被測目標(biāo)地址
  • Start swarming:執(zhí)行l(wèi)ocust腳本

測試結(jié)果頁面

  • Type:請求類型
  • Name:請求路徑
  • Requests:當(dāng)前完成的請求數(shù)量
  • Fails:當(dāng)前失敗數(shù)量
  • Median:響應(yīng)時間中間值
  • 90%ile(ms):正態(tài)分布90%的值在300ms內(nèi)
  • Average(ms):平均響應(yīng)時間
  • Min(ms):最小響應(yīng)時間
  • Max(ms):最大響應(yīng)時間
  • Average size (bytes):平均
  • Current RPS:當(dāng)前RPS
  • Current Failures/s:當(dāng)前失敗的RPS/s

其他模塊

  • New test:點擊該按鈕對總虛擬用戶數(shù)和每秒啟動的虛擬用戶數(shù)進(jìn)行編輯重跑
  • Statistics:類似JMeter的聚合報告
  • Charts:測試結(jié)果變化趨勢圖
  • Failures:失敗請求的展示界面
  • Exceptions:異常請求的展示界面
  • Download Data:測試數(shù)據(jù)下載模塊,提供三種類型的CSV格式下載,分別是:Statistics、responsetime、exceptions,還有總的測試報告Report

由于本篇是對性能測試?yán)碚撝R的分享,想了解更多l(xiāng)ocust的高級使用方法,可以參考官方文檔。

注意: 后端性能測試工具是實現(xiàn)后端性能測試的技術(shù)手段,不能簡單地把使用后端性能測試工具等同于后端性能測試。一般是在測試腳本開發(fā)和測試執(zhí)行階段發(fā)揮作用

六、性能測試流程

對于我們初學(xué)性能測試時,往往會陷入一個誤區(qū),那就是單純的去學(xué)習(xí)性能測試工具,認(rèn)為學(xué)會了工具的使用,就掌握了性能測試。這其實是大錯特錯的,工具的學(xué)習(xí)只是其中的一個階段,而且是比較基礎(chǔ)的一個階段,在整個性能測試流程中,性能測試執(zhí)行策略,性能場景和分析才是重中之重,也是最難的部分。

性能測試的學(xué)習(xí)路徑可以分為五個階段:

  • 性能理論學(xué)習(xí)期
  • 性能工具學(xué)習(xí)期
  • 性能場景學(xué)習(xí)期
  • 性能分析學(xué)習(xí)期
  • 性能調(diào)優(yōu)學(xué)習(xí)期

6.1 性能測試的前提

日常工作中,被問及何時進(jìn)行性能測試時,往往很多人都是摸不著頭腦,大多數(shù)情況下都是被動接受領(lǐng)導(dǎo)或者開發(fā)給的任務(wù),才回去進(jìn)行性能測試,很少人會主動出擊,去思考在什么階段進(jìn)行性能測試,下面給出幾點建議,當(dāng)然大前提肯定是在功能測試之后,整個系統(tǒng)都是處于一種穩(wěn)定的狀態(tài)。

  • 應(yīng)用使用人數(shù)逐漸增多,性能問題頻發(fā),影響到用戶的日常操作
  • 需要提供很高穩(wěn)定性的基礎(chǔ)服務(wù),這種一般都是系統(tǒng)的核心服務(wù),支撐了多端的業(yè)務(wù)
  • 改動了核心應(yīng)用,擔(dān)心對鏈路有影響

6.2 制定性能測試目標(biāo)

  • 第一種是以衡量系統(tǒng)的處理能力為核心目標(biāo)
  • 第二種檢測系統(tǒng)的健壯性
  • 第三種目標(biāo)是系統(tǒng)的穩(wěn)定性
  • 第四種性能測試目標(biāo)是專項能力是否達(dá)標(biāo)

6.3 性能測試場景設(shè)計

1. 測試負(fù)載組成

  • 虛擬用戶腳本
  • 各個虛擬用戶腳本的并發(fā)數(shù)量
  • 總的并發(fā)用戶數(shù)

2. 負(fù)載策略

  • 加壓策略
  • 減壓策略
  • 最大負(fù)載運(yùn)行時間
  • 延時策略

3. 資源監(jiān)控范圍定義

  • 操作系統(tǒng)級別的監(jiān)控指標(biāo)
  • 應(yīng)用服務(wù)器的監(jiān)控指標(biāo)
  • 數(shù)據(jù)庫服務(wù)器的監(jiān)控指標(biāo)
  • 緩存集群的監(jiān)控指標(biāo)

4. 終止方式

  • 腳本出錯時的處理方式
  • 負(fù)載熔斷機(jī)制

5. 負(fù)載產(chǎn)生規(guī)劃

  • 壓力產(chǎn)生器數(shù)量
  • 網(wǎng)絡(luò)帶寬要求

6.4 制定性能測試方案

性能測試方案是在正式進(jìn)行性能測試之前的工作,主要包括:

  • 制定性能測試目的
  • 性能測試場景梳理
  • 確定被測業(yè)務(wù)的部署結(jié)構(gòu)
  • 業(yè)務(wù)數(shù)據(jù)的分析
  • 業(yè)務(wù)規(guī)則的分析確認(rèn)
  • 測試監(jiān)控的內(nèi)容確定
  • 性能測試排期涉及人員

七、總結(jié)

今天談到的性能測試知識,不過是九牛一毛。想要正真掌握性能測試還需要不斷的親身實踐,擴(kuò)大自己知識的廣度和深度,對于初識性能測試且沒有實際經(jīng)驗的我來說,這將是我以后學(xué)習(xí),并加以實踐的基石。

如果你覺得文章還不錯,幫忙 點贊、轉(zhuǎn)發(fā)、關(guān)注、留言 ,因為這將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動力!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Jmeter性能測試 -1
性能測試常見面試題
Jmeter實戰(zhàn):零基礎(chǔ)也能看懂的性能測試!
漫談服務(wù)端性能測試
性能測試藝術(shù)
壓力測試工具有哪些
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服