【性能測試】Jmeter詳細操作-小白使用手冊(2)

?

本篇文章主要介紹Jmeter中如何使用

JSON斷言、同步定時器、事務控制器、CSV數據文件設置、HTTP?Cookie管理器

目錄

一:JSON斷言

1:正確結果展示

2:錯誤結果展示

3:JSON配置

(1)Additionally? ?assert? ?value添加斷言值

(2)Match? ?as? regular? expression正則匹配

4:正則表達式

(1)\d匹配數字?

(2)\s匹配字符

(3)最小匹配多少次

5:使用展示

二:同步定時器

1:場景引入

2:實現并發效果

3:前后對比

4:如果模擬用戶組數量大于線程組數量

三:事務控制器

1:創建事務控制器

2:聚合報告的信息講解

四:CSV數據文件設置

1:場景引入

2:創建我們要的信息

(1)創建一個表格

(2)保存文件

3:參數介紹

4:結果展示

五:HTTP? Cookie管理器

1:瀏覽器請求訪問場景引入

2:Jmeter中不設置Cookie管理器演示

3:設置HTTP Cookie管理器


一:JSON斷言

1:正確結果展示

2:錯誤結果展示

使用錯誤的名稱

登錄返回的數據中沒有code1這個數據,所以沒有找到這個result,換成data

3:JSON配置

(1)Additionally? ?assert? ?value添加斷言值

①若不選Additionally? ?assert? ?value,表?添加斷?值,則可?來判斷字段是否存在
②選擇Additionally? assert? value,則必須添加Expected? Value期望的斷?值(這里區分大小寫)

?

(2)Match? ?as? regular? expression正則匹配

③若不選Match? ?as? regular? expression正則匹配,則Expected? Value必須填寫完整,少?個字符都會導致斷?失敗
④若選擇Match? ?as? ?regular? ?expression正則匹配,則Expected? ? Value可以僅寫上部分關鍵詞即可斷?成功

去匹配我們的token字符串

4:正則表達式

(1)\d匹配數字?

(2)\s匹配字符

\s匹配所有空白符,包括換行;\S非空白符,不包括換行;

(3)最小匹配多少次

5:使用展示

?

二:同步定時器

1:場景引入

配置了五個線程,我們想要讓這個五個線程達成同步并發的效果,但是看我們當前的執行情況,這些線程是在1s內陸陸續續的完成,沒有達成我們預想中并發執行的效果。(這里就是誰先準備好,誰就先發起請求)

2:實現并發效果

想象一個場景:我們行人在過馬路前需要等待紅燈跳轉到綠燈,行人在這個等待的過程中越聚越多,綠燈一亮,行人則蜂擁而過。

?同步定時器可以理解為集合點,當線程數量達到指定值后,再?起釋放,可以瞬間產?很?的
壓?。這樣,可以更好地模擬真實的??并發訪問場景,提?測試的準確性和可靠性。

配置的數量與我們前面設置好的線程組的數量保持一致

3:前后對比

所有線程都準備好了,一起發送請求,達到并發的效果

4:如果模擬用戶組數量大于線程組數量

這里就會卡主,因為沒有它會一直等待到50個線程準備完畢,才發送請求。所以這里設置的數量不可以大,那可以小嗎?

答案也是不可以的,假設我們當前設置的模擬用戶組數量為3,那么我們就是分3個一組請求一次,但是我們設置的是5個線程呀,還有2個線程湊不出來3,所以就遲遲不能發送請求。也會卡主

那又有一個問題了:?若小于配置的線程數,線程組中的線程數與當前配置的數據必須成整數倍。這個結論是否正確呢?

也是不可以的,假設我們的線程組數量為(6),我們第一輪準備好的線程數(5)>=配置的數量3,就直接發送請求了(3),此時還有一個就落單了,落單的那個線程就會一直等

所以當配置的數量小于線程數時,最好把循環打開,避免最后一次為準備好的線程數量達不到并發數

三:事務控制器

我們現在有5個接口

打開聚合報告,就會顯示五個接口的相關測試信息

1:創建事務控制器

思考:我們現在如果想要把登錄接口和列表接口合并成一個事物,應該怎么做呢?

執行合并操作

再打開聚合報告,就會發現,多了一行我們的登錄事務

2:聚合報告的信息講解

登錄和用戶信息接口平均響應時間分別為34ms和22ms,相加登錄事務為56ms

列表頁返回的data數據比較多,所以響應的時間比較高是正常的

一般看90%的請求對應的響應時間

(1)異常就是錯誤率

(2)吞吐量——有兩種劃分方式

①請求的數量劃分

TPS——每秒處理的事務數量(常用)發送很多請求,每秒處理的事務數越高,tps越高,性能越高

QPS——每秒的查詢率

②網絡數據包劃分

四:CSV數據文件設置

1:場景引入

以登陸接?為例,當我們執?登陸接?的性能測試時,?動配置了??名和密碼為固定的username和password,然?實際使?中不可能只有?個??登陸,為了模擬更真實的登錄環境,我們需要提供更多的??username和password來實現登錄操作

我們現在不把用戶名和密碼寫死,

2:創建我們要的信息

(1)創建一個表格

word文檔

(注:如果我們數據庫當中的用戶數量不多的話,可以自己添加一些數據進去,這里在查看數據庫是可以格式化查看,比如select * from user\G)無分號,格式化查看

(2)保存文件

3:參數介紹

?件名:填寫csv?件的路徑。建議使?絕對路徑。
? ?件編碼:UTF-8
? 變量名稱:從csv數據?件中讀起的數據需要保存到的變量名。有多個變量時?逗號分隔
? 是否忽略??:是否從csv數據?件第??開始讀取。
? 分隔符:要求與csv數據?件中多列的分隔符?致
? 遇到?件結束符再次循環:若選擇為True當數據不夠的時候會從頭取。若選擇False,則需要勾選
下?的配置,遇到?件結束符停?線程,這?如果不勾選,請求將會報錯。

4:結果展示

配置多個線程數,我們才能看到多個不同的用戶,發起請求

五:HTTP? Cookie管理器

1:瀏覽器請求訪問場景引入

我們訪問第一個login登錄接口,會設置這個Cookie信息,

進行302臨時重定向之后,第二次訪問最下方的login,也會帶上一次的Cookie信息

2:Jmeter中不設置Cookie管理器演示

這里沒有加入Cookie管理器所以第二次登陸請求頭當中就沒有攜帶上我們當前線程的Cookie信息,所以瀏覽器就找不到對應的Session會話

3:設置HTTP Cookie管理器

結果展示

總結:如果沒有設置HTTP Cookie管理器,那么第一個接口中獲取到的Cookie信息是不會帶入到其他的接口當中的。

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

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

相關文章

分布式鎖—Redisson的同步器組件

1.Redisson的分布式鎖簡單總結 Redisson分布式鎖包括:可重入鎖、公平鎖、聯鎖、紅鎖、讀寫鎖。 (1)可重入鎖RedissonLock 非公平鎖,最基礎的分布式鎖,最常用的鎖。 (2)公平鎖RedissonFairLock 各個客戶端嘗試獲取鎖時會排隊,按照隊…

國產編輯器EverEdit - 腳本(解鎖文本編輯的無限可能)

1 腳本 1.1 應用場景 腳本是一種功能擴展代碼,用于提供一些編輯器通用功能提供不了的功能,幫助用戶在特定工作場景下提高工作效率,幾乎所有主流的編輯器、IDE都支持腳本。 ??EverEdit的腳本支持js(語法與javascript類似)、VBScript兩種編程…

服務器上的nginx因漏洞掃描需要升級

前言 最近客戶聯系說nginx存在安全漏洞 F5 Nginx 安全漏洞(CVE-2024-7347) F5Nginx是美國F5公司的一款輕量級Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like協議下發行。F5 Nginx存在安全漏洞,該漏洞源于可能允許攻擊者使用特制的…

ASP.NET CORE MVC EF框架

1.一個視圖中的多個表單Form中的變量。 方式一:視圖中跨Form變量不能用,得各自定義變量否則編譯不能通過。變量名還不能相同。 或者方式二:在Form之外定義變量 {ViewData["Title"] "ExpenseForm"; }  {L…

【MySQL 中 `TINYINT` 類型與布爾值的關系】

MySQL 中 TINYINT 類型與布爾值的關系 在 MySQL 數據庫中,BOOLEAN 類型并不存在,BOOLEAN 或 BOOL 都是 TINYINT(1) 的別名。通常,TINYINT(1) 類型用于存儲布爾值。 1. TINYINT 類型介紹 TINYINT 是一個占用 1 字節的整數類型,取…

【Rust基礎】Rust后端開發常用庫

使用Rust有一段時間了,期間嘗試過使用Rust做后端開發、命令行工具開發,以及做端側模型部署,也嘗試過交叉編譯、FFI調用等,也算是基本入門了。在用Rust做后端接口開發時,常常會找不到一些合適庫,而這些庫在J…

[leetcode]位運算

一.AND &運算 注:兩個操作數做&運算結果是不會變大的 二.OR |運算 注:兩個操作數做|運算結果是不會變小的 三.XOR(異或) ^運算 注:結果可能變大也可能變小也可能不變,但是不會導致進位,比如兩個四位的數字做…

常見FUZZ姿勢與工具實戰:從未知目錄到備份文件漏洞挖掘

本文僅供學習交流使用,嚴禁用于非法用途。未經授權,禁止對任何網站或系統進行未授權的測試或攻擊。因使用本文所述技術造成的任何后果,由使用者自行承擔。請嚴格遵守《網絡安全法》及相關法律法規! 目錄 本文僅供學習交流使用&am…

前置機跟服務器的關系

在復雜的IT系統架構中,前置機與服務器的協同配合是保障業務高效、安全運行的關鍵。兩者的關系既非簡單的上下級,也非獨立個體,而是通過功能分層與職責分工,構建起一套既能應對高并發壓力、又能抵御安全風險的彈性體系。 在當今復…

MySQL中有哪些索引

1,B-Tree索引:常見的索引類型 2,哈希索引:基于哈希表實現,只支持等值查詢 ,只有Memory存儲引擎和NDB Cluster存儲引擎顯示支持哈希索引 3,全文索引:可在字符列上創建(T…

Python爬蟲---中國大學MOOC爬取數據(文中有數據集)

1、內容簡介 本文為大二在校學生所做,內容為爬取中國大學Mooc網站的課程分類數據、課程數據、評論數據。數據集大佬們需要拿走。主要是希望大佬們能指正代碼問題。 2、數據集 課程評論數據集,343525條(包括評論id、評論時間、發送評論用戶…

Tomcat 安裝

一、Tomcat 下載 官網:Apache Tomcat - Welcome! 1.1.下載安裝包 下載安裝包: wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz 安裝 javajdk。 yum install java-1.8.0-openjdk.x86_64 -y /etc/altern…

MC34063數據手冊解讀:功能、應用與設計指南

MC34063A/MC33063A 系列是摩托羅拉(現 NXP)推出的高集成度 DC-DC 轉換器控制電路,適用于降壓、升壓和反相應用。本文將基于官方數據手冊,對其核心功能、關鍵參數、典型應用及設計要點進行詳細解讀。 一、核心功能與特性 集成度高…

基于SpringBoot實現旅游酒店平臺功能十一

一、前言介紹: 1.1 項目摘要 隨著社會的快速發展和人民生活水平的不斷提高,旅游已經成為人們休閑娛樂的重要方式之一。人們越來越注重生活的品質和精神文化的追求,旅游需求呈現出爆發式增長。這種增長不僅體現在旅游人數的增加上&#xff0…

Linux入門 全面整理終端 Bash、Vim 基礎命令速記

Linux入門 2025 超詳細全面整理 Bash、Vim 基礎命令速記 剛面對高級感滿滿的 終端窗口是不是有點懵?于是乎,這份手冊就是為你準備的高效學習指南!我把那些讓人頭大的系統設置、記不住的命令都整理成了對你更友好的格式,讓你快速學…

基于deepseek的圖像生成系統

目錄 問題 核心思路 pollinations 提示詞 基于deepseek的圖像生成系統 項目說明 詳細說明 1. 注冊流程 2. 登錄流程 3. 圖片生成流程 4. 圖片下載流程 項目結構 代碼實現 1. 配置文件 config.py 2. 數據庫模型 models.py 3. 解決循環引用 exts.py 4. 登錄和…

mac安裝mysql之后報錯zsh: command not found: mysql !

在Mac上安裝MySQL后,如果終端中找不到mysql命令,通常是 因為MySQL的命令行工具(如mysql客戶端)沒有被正確地添加到你的環境變量中。 檢查 MySQL 是否已安裝 ps -ef|grep mysql查看到路徑在 /usr/local/mysql/bin 查看 .bash_pro…

骨質健康護理筆記

1. 閱讀資料 《骨質疏松癥不是“老年病”!除了補鈣、曬太陽,專家還推薦… —— 健康湖北》

CSS3 用戶界面設計指南

CSS3 用戶界面設計指南 引言 隨著互聯網的快速發展,用戶界面設計已經成為網站和應用程序吸引和留住用戶的關鍵因素之一。CSS3,作為Web開發中的核心技術之一,提供了豐富的工具和特性來改善用戶界面。本文將深入探討CSS3在用戶界面設計中的應用,包括基本概念、常用技巧以及…

Mybatis3 調用存儲過程

1. 數據庫MySQL,user表 CREATE TABLE user (USER_ID int NOT NULL AUTO_INCREMENT,USER_NAME varchar(100) NOT NULL COMMENT 用戶姓名,AGE int NOT NULL COMMENT 年齡,CREATED_TIME datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,CREATED_BY varchar(100) NOT NUL…