從零開發短視頻電商 Jmeter壓測示例模板詳解(無認證場景)

文章目錄

    • 添加線程組
    • 添加定時器
    • 添加HTTP請求默認值
    • 添加HTTP頭管理
    • 添加HTTP請求
    • 添加結果斷言
      • 響應斷言 Response Assertion
      • JSON斷言 JSON Assertion
      • 持續時間斷言 Duration Assertion
    • 添加察看結果樹
    • 添加聚合報告
    • 添加表格察看結果
    • 參考

以壓測百度搜索為例

  • https://www.baidu.com/s?wd=lakernote

下面的步驟在大部分情況下可以套用。

添加線程組

右鍵單擊“Test Plan” -> “Add” -> “Threads (Users)” -> “Thread Group”。

  • Name:取一個描述性的名稱

  • Action to be taken after a Sampler error: 在請求發生錯誤時的處理方式,可以選擇中止線程、中止測試等。

  • Number of Threads (users): 設置模擬用戶數,即同時并發執行請求的用戶數。這決定了在每個線程組中啟動的線程數量。

  • Ramp-Up Period (in seconds): 設置啟動所有用戶的時間間隔。如果將用戶數設置為100,Ramp-Up Period設置為10秒,則系統將在10秒內逐漸啟動100個用戶。

    • Ramp-Up Period定義了啟動所有虛擬用戶所需的時間。如果設置為10秒,而同時有100個虛擬用戶(線程),那么在10秒內,系統將逐漸啟動這100個用戶,而不是立即啟動所有。
    • 這個選項的目的是模擬真實場景中用戶逐漸增加的情況,而不是突然出現大量用戶。這有助于更真實地模擬系統在負載逐漸增加時的性能表現。
  • Loop Count: 設置每個線程運行的次數。如果設置為1,每個線程將僅運行一次。如果設置為-1(無限循環),則線程將一直運行直到測試停止。

    如果要達到剛好運行10次測試,則可以配置線程數:2,循環次數:5

    如果要達到運行10s測試,而不管多少次,則可以設置循環次數:永遠,選中調度器設置持續時間:10

  • Same user on each iteration: 如果選中此選項,每個迭代中的同一個線程將使用相同的用戶。

    • 如果選擇了這個選項,那么在每次迭代(循環)中,同一個線程(虛擬用戶)將使用相同的用戶標識。這意味著在每次循環中,該線程將以相同的身份(用戶標識)執行請求。
    • 對于模擬單個用戶在多次迭代中使用相同的身份進行一系列操作很有用,例如登錄并執行多個操作,而不是在每次迭代中使用不同的用戶。
  • Delay Thread Creation until needed: 如果選中此選項,JMeter將推遲線程的創建,直到需要運行它們為止。這可以幫助減小資源消耗。

    • 如果選擇了這個選項,JMeter將不會在測試計劃啟動時立即創建所有線程(虛擬用戶)。相反,它將等到線程實際需要運行時才創建它們。
    • 這可以幫助減小資源消耗,特別是在你有大量線程但不是所有線程都在同一時間運行的情況下。例如,如果你有100個線程,但是測試計劃啟動后的第一秒只需要運行10個線程,那么只有這10個線程會在初始時創建,而其余90個線程將在后續需要時逐漸創建。
  • Scheduler Configuration: 可選的調度配置,允許你按照特定的時間計劃執行測試。如果你想在特定的時間段內執行測試,可以選擇此選項。

    • Duration (持續時間): 設置測試計劃的持續時間。可以選擇執行測試的總時長,例如設置為3600秒(1小時)。
    • Startup Delay (啟動延遲): 設置測試計劃開始執行前的延遲時間。這可以用來在啟動測試之前等待一段時間,以便進行預熱或等待其他資源的準備。

添加定時器

定時器(Random Timer)可以幫助模擬用戶在執行操作時的不規律性。你可以設置一個基礎定時器和一個隨機范圍,以便每個請求之間有一些隨機的等待時間,通常添加在需要模擬用戶請求之間的時間間隔的位置,常見的情況是將定時器添加在HTTP請求之前,以模擬用戶在執行不同操作之間的停頓。

以統一實際定時器舉例

  • Random Delay Maximum (in milliseconds): 設置隨機等待時間的最大值(毫秒)。這個值表示在每個請求之間的最大等待時間。
  • Constant Delay Offset (in milliseconds): 設置隨機等待時間的偏移值(毫秒)。這個值表示在每個請求之間的基本等待時間。
  • 計算公式:
    • 實際等待時間 = Constant Delay Offset + (0Random Delay Maximum 之間的隨機值)
  • 例如,如果你設置最大等待時間為500毫秒,偏移值為200毫秒,那么實際等待時間將在200毫秒到700毫秒之間變化。
  • 設置示例:
    • Random Delay Maximum: 500
    • Constant Delay Offset: 200

添加HTTP請求默認值

HTTP Request Defaults可以在多個HTTP請求中設置默認的服務器和協議信息,減少冗余配置。

HTTP Request Defaults 的設置會應用于同一級別下所有的 HTTP 請求。如果在具體的 HTTP 請求中有設置,它會覆蓋這里的默認設置。這樣,你就可以更方便地共享和管理一些通用的請求參數。

選擇 Add -> Config Element -> HTTP Request Defaults進行添加。

  • Server Name or IP: 輸入服務器的主機名或 IP 地址。這是服務器的基本地址,實際請求中的具體路徑可以在具體的 HTTP 請求中指定。
  • Port Number: 輸入服務器的端口號。默認是80,如果是HTTPS則通常是443。
  • Protocol: 選擇使用的協議,可以是 httphttps
  • Path: 如果有一些請求共享相同的路徑,你可以在這里設置。在具體的請求中,你仍然可以覆蓋這個路徑。
  • Content Encoding: 可選項,可以選擇請求的內容編碼方式,例如 gzip。
  • Parameters: 如果有一些參數在多個請求中都是相同的,可以在這里設置。

添加HTTP頭管理

HTTP Header Manager允許你添加自定義的HTTP頭部信息,如User-Agent,用于更真實地模擬瀏覽器行為。

選擇 Add -> Config Element -> HTTP Header Manager

  • User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
  • Authorization: Bearer your_access_token
  • Content-Type: application/json
  • Accept: application/json

添加HTTP請求

在Thread Group下右鍵單擊 -> Add -> Sampler -> HTTP Request

  • Name: 用于標識請求的名稱,顯示在測試計劃中,便于識別。
  • Protocol: 指定使用的協議,可以是 httphttps
  • Server Name or IP: 服務器的主機名或 IP 地址。
  • Port Number: 服務器的端口號,默認是80。如果使用 HTTPS,通常是443。
  • Method: HTTP 請求的方法,常見的有 GET、POST、PUT、DELETE 等。
  • Path: 請求的路徑,即請求的具體終點。
  • Content Encoding: 請求的內容編碼方式,例如 gzip。
  • Parameters: 請求的參數,可以手動輸入鍵值對,也可以使用 “Add” 按鈕添加鍵值對。這是請求的查詢參數。
  • Body Data: 如果是 POST 請求,你可以在這里輸入請求體的內容,通常用于傳遞 POST 請求的數據。
  • Files Upload: 用于上傳文件的配置,可以指定要上傳的文件。
  • Redirect Automatically: 如果勾選,JMeter 將自動處理重定向。
  • Follow Redirects: 如果勾選,JMeter 將跟隨重定向。如果取消勾選,將不會跟隨重定向。
  • Use KeepAlive: 如果勾選,將使用 HTTP Keep-Alive 以在單個連接上執行多個請求。
  • Use multipart/form-data for POST: 如果勾選,請求將使用 multipart/form-data 編碼方式。常用于文件上傳等場景。
  • Implementation: HTTP 請求的實現方式。默認為 “HttpClient4”,可以選擇其他實現。
  • Retrieve All Embedded Resources from HTML Files: 如果勾選,JMeter 將嘗試檢索 HTML 頁面中引用的所有嵌入資源(例如圖像、樣式表等)。

添加結果斷言

結果斷言(Response Assertion)是一種用于驗證請求響應是否符合預期的斷言。

常用的斷言類型,它們分別用于驗證不同方面的請求響應。以下是這幾種常用斷言的簡要說明:

  1. 響應斷言(Response Assertion)
    • 用途: 用于驗證響應的內容是否符合預期,包括響應文本、響應代碼、響應消息等。
    • 配置選項: 可以設置響應文本的包含、不包含、匹配等條件,以及驗證響應代碼、消息等。
  2. JSON斷言(JSON Assertion)
    • 用途: 用于驗證 JSON 格式的響應是否符合預期。適用于處理 API 接口返回的 JSON 數據。
    • 配置選項: 可以設置 JSON 路徑表達式和期望的值,以確保響應中包含或不包含特定的 JSON 數據。
  3. 持續時間斷言(Duration Assertion)
    • 用途: 用于驗證請求的響應時間是否在指定的時間范圍內。
    • 配置選項: 可以設置期望的響應時間范圍,如果實際響應時間在這個范圍內則斷言通過,否則失敗。

響應斷言 Response Assertion

響應斷言是最常用的一種斷言方法,主要是對響應結果中的文本內容進行斷言,比如響應結果是否包含指定的值,或者是否等于指定的值。響應斷言可以適用各種返回類型的響應結果,如Test、html、application/json、application/xml等。

圖片.png

JSON斷言 JSON Assertion

JSON斷言也是測試工作中經常用到的一種斷言方法,它一般用于斷言某個字段值是否等于我們指定的值。所以JSON斷言只能針對響應結果為applicaton/json格式的進行斷言操作。如果是其他類型(如:Test、html),則無法使用這種方式。

圖片.png

持續時間斷言 Duration Assertion

斷言持續時間通常用于做性能測試,一般用于檢查HTTP請求的響應時間是否超過預期值。而這個響應時間是性能測試中常關注的一個性能指標。

圖片.png

添加察看結果樹

選擇Add -> Listener -> 察看結果樹

將看到所有請求的詳細信息,包括請求頭、響應頭、響應數據等。

察看結果樹 是一個非常有用的監聽器,用于調試和分析測試中的問題。通過查看這個監聽器,你可以深入了解每個請求的執行情況,包括請求和響應的各個方面。

請注意,在進行實際的性能測試時,由于 察看結果樹 會占用大量資源,建議在測試結束后禁用或刪除該監聽器,以避免影響測試性能。

添加聚合報告

選擇 Add -> Listener -> 聚合報告

看到有關測試結果的聚合信息,包括平均響應時間、最小響應時間、最大響應時間、錯誤百分比等。

聚合報告 監聽器是用于查看整體性能指標的一種方便工具。它將匯總所有線程組中的結果,并顯示關鍵的性能統計信息。

請注意,在進行實際的性能測試時,由于 聚合報告 也會占用一些資源,建議在測試結束后禁用或刪除該監聽器,以避免影響測試性能。

添加表格察看結果

選擇 Add -> Listener -> 察看結果表格

將看到表格形式的結果,包括請求的詳細信息、響應時間、響應代碼等。

察看結果表格 是一種以表格形式查看結果的監聽器,提供了簡潔的視圖,便于查看關鍵信息。你可以在這個表格中查看每個請求的詳細信息,包括響應時間、響應代碼、錯誤等。

請注意,在進行實際的性能測試時,由于監聽器會占用一些資源,建議在測試結束后禁用或刪除不需要的監聽器,以避免影響測試性能。

參考

  • http://testingpai.com/article/1655452307498

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212413.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

class066 一維動態規劃【算法】

class066 一維動態規劃 算法講解066【必備】從遞歸入手一維動態規劃 code1 509斐波那契數列 // 斐波那契數 // 斐波那契數 (通常用 F(n) 表示)形成的序列稱為 斐波那契數列 // 該數列由 0 和 1 開始,后面的每一項數字都是前面兩項數字的和。…

kotlin - ViewBinding

前言 為什么用ViewBinding,而不用findViewById(),這個有很多優秀的博主都做了講解,就不再列出了。 可參考下列博主的文章: kotlin ViewBinding的使用 文章里也給出了如何在gradle中做出相應的配置。 (我建議先看這位博…

【LeetCode熱題100】【滑動窗口】無重復字符的最長子串

給定一個字符串 s ,請你找出其中不含有重復字符的 最長子串 的長度。 示例 1: 輸入: s "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。示例 2: 輸入: s "bbbbb" 輸出: 1 解釋: 因為無…

Docker安裝教程

docker官網 1.卸載舊版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.配置Docker的yum庫 安裝yum工具 yum install -y yum-utils配置Docker的yum源 yum-config-ma…

Redis,什么是緩存穿透?怎么解決?

Redis,什么是緩存穿透?怎么解決? 1、緩存穿透 一般的緩存系統,都是按照key去緩存查詢,如果不存在對用的value,就應該去后端系統查找(比如DB數據庫)。一些惡意的請求會故意查詢不存在…

不想寫大量 if 判斷?試試用規則執行器優化,就很絲滑!

近日在公司領到一個小需求,需要對之前已有的試用用戶申請規則進行拓展。我們的場景大概如下所示: if (是否海外用戶) {return false; }if (刷單用戶) {return false; }if (未付費用戶 && 不再服務時段) {return false }if (轉介紹用戶 || 付費用戶 || 內推…

16ASM 分段和機器碼

8086CPU存儲分段管理 問題1:8086是16位cpu,最多可訪問(尋址)多大內存? 運算器一次最多處理16位的數據。地址寄存器的最大寬度為16位。訪問的最大內存為:216 64K 即 0000 - FFFF。 問題2:808…

Hadoop集群破壞試驗可靠性驗證

集群環境說明: 準備5臺服務器,hadoop1、hadoop2、hadoop3、hadoop4、hadoop5; 分別部署5個節點的zookeeper集群、hadoop集群、hbase集群 本次對于Hadoop集群測試主要分為五個方面: 手動進行datanode節點刪除:&#…

typedef 與#define 的區別

typedef 與#define 的區別 typedef : 給一個已經存在的數據類型(注意:是類型不是變量)取一個別名,而非定義一個新的數據類型 #define宏定義: #define宏定義:在預編譯時直接進行簡單的文本替換 舉…

WIFI直連(Wi-Fi P2P)

一、概述 Wifi peer-to-peer(也稱Wifi-Direct)是Wifi聯盟推出的一項基于原來WIfi技術的可以讓設備與設備間直接連接的技術,使用戶不需要借助局域網或者AP(Access Point)就可以進行一對一或一對多通信。這種技術的應用…

計算機畢業設計 SpringBoot的樂樂農產品銷售系統 Javaweb項目 Java實戰項目 前后端分離 文檔報告 代碼講解 安裝調試

🍊作者:計算機編程-吉哥 🍊簡介:專業從事JavaWeb程序開發,微信小程序開發,定制化項目、 源碼、代碼講解、文檔撰寫、ppt制作。做自己喜歡的事,生活就是快樂的。 🍊心愿:點…

Xmanager

什么是 XManager Xmanager 是市場上領先的 PC X 服務器,可將X應用程序的強大功能帶入 Windows 環境。 提供了強大的會話管理控制臺,易于使用的 X 應用程序啟動器,X 服務器配置文件管理工具,SSH 模塊和高性能 PC X 服務器。 Xman…

javaScript(六):DOM操作

文章目錄 1、DOM介紹2、DOM:獲取Element對象3、DOM:事件監聽3.1、事件介紹3.2、常見事件3.3、設置事件的兩種方式3.4、事件案例 1、DOM介紹 概念 Document Object Model ,文檔對象模型 將標記語言的各個組成部分封裝為對應的對象&#xff1a…

Realme X7 Pro Root 刷機教程

Realme X7 Pro 刷機教程 Just For Fun,最近倒騰了下Realme X7 Pro 刷root。此博客為個人記錄刷機過程,如有機友跟隨本教程操作,請謹慎操作!!! 以下教程真針對Realme X7 Pro,其他版本方法未知&…

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或8.0) 數…

qt 模型視圖結構

在Qt中,Model、View和Delegate三者之間的關系如下: Model(模型):Model是數據的抽象表示,它提供了一種結構化的方式來存儲和管理數據。Model負責維護數據的狀態,并提供接口供其他組件&#xff08…

【Flutter】vs2022上開發flutter

在vs上開發flutter,結果擴展倉庫上沒辦法找到Dart,Flutter。 在 這 搜索Dart時也無法找到插件。 最后發現是安裝工具出錯了 安裝了 開發需要的是

挖漏洞之文件上傳

(一)漏洞原理 文件上傳漏洞是指由于程序員在對用戶文件上傳部分的控制不足或者處理缺陷,而導致的用戶可以越過其本身權限向服務器上上傳可執行的動態腳本文件。這里上傳的文件可以是木馬,病毒,惡意腳本或者WebShell等。…

從線性回歸到神經網絡

目錄 一、線性回歸關鍵思想 1、線性模型 2、基礎優化算法 二、線性回歸的從零開始實現 1、生成數據集 2、讀取數據集 3、初始化模型參數 4、定義模型 5、定義損失函數 6、定義優化算法 7、訓練 三、線性回歸的簡潔實現 1、生成數據集 2、讀取數據集 3、定義模型…

論文代碼閱讀:TGN模型訓練階段代碼理解

文章目錄 [toc] TGN模型訓練階段代碼理解論文信息代碼過程手繪代碼訓練過程compute_temporal_embeddingsupdate_memoryget_raw_messagesget_updated_memoryself.message_aggregator.aggregateself.memory_updater.get_updated_memoryMemoryget_embedding_moduleGraphAttentionE…