jmeter工具簡單認識

2025最新Jmeter接口測試從入門到精通(全套項目實戰教程)

一、JMeter?介紹

? ???Apache JMeter是100%純JAVA桌面應用程序,被設計為用于測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能,例如:靜態文件,Java Servlet,CGI Scripts,Java Object,數據庫和FTP服務器等等。JMeter可用于模擬大量負載來測試一臺服務器,網絡或者對象的健壯性或者分析不同負載下的整體性能。
? ? ?同時,JMeter可以幫助你對你的應用程序進行回歸測試。通過你創建的測試腳本和assertions來驗證你的程序返回了所期待的值。為了更高的適應性,JMeter允許你使用正則表達式來創建這些assertions.

JMeter與LoadRunner比較

JMeter?是一款開源(有著典型開源工具特點:界面不美觀)測試工具,雖然與LoadRunner相比有很多不足,比如:它結果分析能力沒有LoadRunner詳細;很它的優點也有很多:

  • ? 開源,他是一款開源的免費軟件,使用它你不需要支付任何費用,
  • ? 小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
  • ? 功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但經過不段的更新擴展,現在可以完成數據庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然你也可以根據自己的需求擴展它的功能。

?兩者最大的區別:jmeter不支持IP欺騙,而LR支持。

JMeter缺點

  使用JMeter無法驗證JS程序,也無法驗證頁面UI,所以要須要和Selenium配合來完成Web2.0應用的測試。?

二、JMeter?下載安裝

1)JMeter安裝

1. http://jmeter.apache.org/下載最新版本的JMeter,解壓文件到任意目錄

2.?安裝JDK,配置環境變量JAVA_HOME.

3.?系統要求:JMeter2.11 需要JDK1.6以上的版本支持運行

4.?JMeter可以運行在如下操作系統上:Unix,Windows和Open VMS.

5.?避免在一個有空格的路徑安裝JMeter,這將導致遠程測試出現問題。

2)JMeter插件安裝

1.?插件下載地址:?Install :: JMeter-Plugins.org

2.?插件下載后解壓:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-2.12\lib\ext目錄。

三、JMeter?運行

1. 進入bin目錄運行jmeter.bat啟動jmeter

? ?注意:打開的時候會有兩個窗口,JMeter的命令窗口和JMeter的圖形操作界面,不可以關閉命令窗口。

2.?JMeter的classpath:

? ?如果你想添加其他JAR文件到JMeter的classpath中,你必須復制他們到lib目錄中;

? ?如果你開發了一個JMeter特定組件或有效的jar文件,復制到lib目錄下的ext目錄中。

3. 打開之后顯示的是中文,如果你想使用其他語言,比如英文,那么通過菜單選項->選擇語言->英文即可,當然轉為中文也是同樣操作。

四、JMeter?測試計劃元件?

打開Jmeter頁面:包括測試計劃+工作臺。

1、Test?Plan?(測試計劃):用來描述一個性能測試,包含與本次性能測試所有相關的功能。也就說本的性能測試的所有內容是于基于一個計劃的。

右鍵單擊“測試計劃”彈出菜單:

注意

“函數測試模式”復選框,如果被選擇,它會使Jmeter記錄來自服務器返回的每個取樣的數據。如果你在測試監聽器中選擇一個文件,這個數據將被寫入文件。如果你嘗試一個較小的測試來保證Jmeter配置正確并且你的服務器正在返回期望的結果,這是很有用的。這樣做的后果就是這個文件會快速的增大,并且Jmeter的效率會影響。

如果不記錄數據到文件,這個選項就沒有不同了。

2、Threads?(Users)線程?用戶

雖然有三個添加線程組的選項,名字不一樣,?創建之后,其界面是完全一樣的。之前的版本只有一個線程組的名字。現在多一個setUp?theread?Group?與terDown?Thread?Group

1)?setup?thread?group?

一種特殊類型的ThreadGroup的,可用于執行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試前進行定期線程組的執行。

setUp Thread Group類似于lr的init.可用于執行預測試操作。

2)?teardown?thread?group.?

一種特殊類型的ThreadGroup的,可用于執行測試后動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束后執行定期的線程組。

tearDown Thread Group類似于lr的end.可用于執行測試后動作。

3)?thread?group(線程組).

?????這個就是我們通常添加運行的線程。通俗的講一個線程組,,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。

線程組:

  名稱:就如字面意思,起個有意義的名字就行

  注釋:

  線程數:這里選擇5

  Ramp-Up Period:單位是秒,默認時間是1秒。它指定了啟動所有線程所花費的時間,比如,當前的設定表示“在5秒內啟動5個線程,每個線程的間隔時間為1秒”。如果你需要Jmeter立即啟動所有線程,將此設定為0即可

  循環次數:表示每個線程執行多少次請求。

3、測試片段(Test?Fragment)

???? 測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處于一個層級。它與線程組有所不同,因為它不被執行,除非它是一個模塊控制器或者是被控制器所引用時才會被執行。

控制器

JMeter有兩種類型的控制器:取樣器(sample)和邏輯控制器(Logic?Controller),用這些原件來驅動處理一個測試。

4、取樣器(Sampler)

??? 取樣器(Sampler)是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter?原生支持多種不同的sampler?, 如?HTTP?Request?Sampler?、?FTP??Request?Sampler 、TCP??Request?Sampler 、 JDBC?Request?Sampler?等,每一種不同類型的?sampler?可以根據設置的參數向服務器發出不同類型的請求。

??? 在Jmeter的所有Sampler中,Java Request Sampler與BeanShell Requst Sampler是兩種特殊的可定制的Sampler.

5、邏輯控制器(Logic?Controller)

??? 邏輯控制器,包括兩類無件,一類是用于控制test?plan?中?sampler?節點發送請求的邏輯順序的控制器,常用的有?如果(If)控制器?、 switch?Controller?、Runtime?Controller、循環控制器等。另一類是用來組織可控制?sampler?來節點的, 如?事務控制器、吞吐量控制器。

6、配置元件(Config?Element)

??? 配置元件(config?element)用于提供對靜態數據配置的支持。CSV?Data?Set?config?可以將本地數據文件形成數據池 (Data?Pool),而對應于HTTP?Request?Sampler和?TCP?Request?Sampler等類型的配制無件則可以修改 Sampler的默認數據。

  例如,HTTP?Cookie?Manager?可以用于對?HTTP?Request?Sampler?的 cookie?進行管理。

     HTTP 請求默認值不會觸發Jmeter發送http請求,而只是定義HTTP請求的默認屬性。

7、定時器(Timer)

??? 定時器(Timer)用于操作之間設置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手段。類似于LoadRunner里面的“思考時間”。 JMeter?定義了Bean?Shell?Timer、Constant?Throughput?Timer、固定定時器等不同類型的Timer。

8、前置處理器(Per?Processors)

??? 前置處理器用于在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP?URL重寫修復符則可以實現URL重寫,當RUL中有sessionID?一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID?。

9、后置處理器(Post?Processors)

??? 后置處理器是用于對Sampler?發出請求后得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath??Extractor?則可以用于提取響應數據中通過給定XPath?值獲得的數據;正則表達式提取器,則可以提取響應數據中通過正則表達式獲得的數據。

10、斷言(Assertions)

斷言用于檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。

11、監聽器(Listener)

這個監聽器可不是用來監聽系統資源的元件。它是用來對測試結果數據進行處理和可視化展示的一系列元件。?圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經常用到的元件。

五、工作臺

在測試中我們可能需要暫時更改一些組件,可以把一些需要更改的組件保存在工作臺中,測試完成后再恢復,但是切記:不能退出jmeter.一旦退出jmeter,工作臺中的內容就會消失。

1、工作臺-非測試元件-Property Display,此元件相當于是jmeter.properties的GUI。

六、幫助

http://jmeter.apache.org/usermanual/component_reference.html

最好的幫助是:菜單-“幫助”-“幫助”。

到此,我們已經簡單了解了jmeter的基本組成原件,我們后序的測試工作也就是使用這些元件來完成測試任務。

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

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

相關文章

Rail 分析的實現思路(python)(1)

本文適用于 Rail 0.1 版本. 工作:輸入Rial文件的路徑,識別詞元,輸出實例列表. 是一邊寫代碼一邊寫文章的,所以有時候改了原本的代碼不一定會說.以思路為中心. Rail是一種信息分布與細節構成的表示語言。詳見參考文檔. 關于本文的分析對象,參考邏輯行的類型. 從源文…

【JAVA】數組的使用

文章目錄 前言一、數組的基本概念1.1 數組的創建和初始化1.2 數組的基本使用 二、數組是引用類型2.1 初始JVM的內存分布JVM內存劃分(按功能分區) 2.2 基本類型變量與引用類型變量的區別2.3 再談引用變量2.4 認識null 三、數組作為函數的參數和返回值四、…

Python圖像處理與計算機視覺:OpenCV實戰指南

引言 在當今數字化時代,圖像處理和計算機視覺技術已經滲透到我們生活的方方面面,從智能手機的人臉識別解鎖,到自動駕駛汽車的路況感知,再到醫療影像輔助診斷系統。作為這一領域最流行的開源庫之一,OpenCV (Open Sourc…

OCCT基礎類庫介紹:Modeling Algorithm - Features

Features 特征 This library contained in BRepFeat package is necessary for creation and manipulation of form and mechanical features that go beyond the classical boundary representation of shapes. In that sense, BRepFeat is an extension of BRepBuilderAPI …

【前端AI實踐】DeepSeek:開源大模型的使用讓開發過程不再抓頭發

有時候你可能正對著屏幕發呆,不知道怎么下手一個 Vue 的流式請求功能。這時候,DeepSeek 就像是你的“編程外掛”,幫你把模糊的需求變成清晰的代碼。 下面我們就以幾個常見的開發場景為例,看看 DeepSeek 能幫我們做點啥。 解答技…

SAP S/4HANA 的“Smart Core”:在現實與理想之間實現敏捷擴展

摘要: 在 SAP S/4HANA 的實施過程中,“Clean Core”(干凈核心)已成為熱門話題,指的是通過簡化和優化系統架構,減少技術債務、提升性能并增強可升級性。盡管這是 SAP 推動云轉型的核心理念之一,…

Python 量化金融與算法交易實戰指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 金融數據獲取與處理 使用yfinance獲取市場數據 python 復制 下載 import yfinance as yf import pandas as pd# 下載蘋果公司股票數據 aapl yf.Ticker("AAPL") hist aapl.histo…

【StarRocks系列】join查詢優化

目錄 Join 類型 和 Join 策略 1. Join 類型(Join Type) 2. Join 策略(Join Strategy) 分布式 Join 策略 (核心) 1. Colocate Join (本地 Join - 最優): 2. Bucket Shuffle Join: 3. Broadcast Join (復制廣播): 4. Shuffl…

【論文解讀】ZeroSearch: 零API成本激活大模型Web搜索

1st author: Hao Sun 孫浩 - PhD Candidate Peking University - Homepage paper: [2505.04588] ZeroSearch: Incentivize the Search Capability of LLMs without Searching code: Alibaba-NLP/ZeroSearch: ZeroSearch: Incentivize the Search Capability of LLMs without…

JAVA網絡編程中HTTP客戶端(HttpURLConnection、Apache HttpClient)

HTTP 客戶端是 Java 中實現網絡請求的核心工具,主要用于與 Web 服務器交互(如獲取網頁、提交表單、調用 REST API 等)。Java 生態中有兩種主流的 HTTP 客戶端實現:??HttpURLConnection(JDK 原生)?? 和 ??Apache HttpClient(第三方庫)??。以下是兩者的詳細解析、…

C# Process.Start多個參數傳遞及各個參數之間的空格處理

最近做一個軟件集成的事情,有多個之前做的軟件,集成到一起自己用,使用了 Process.Start(“*.exe”)的方式,然而遇到了傳遞參數的問題。 這里匯總后的程序叫main.exe,要匯總的軟件之一是pro1.…

【Python】Excel表格操作:ISBN轉條形碼

一、效果 原始文件: 輸出文件: 二、代碼 import os import logging from openpyxl import load_workbook from openpyxl.drawing.image import Image as ExcelImage from barcode import EAN13 from barcode.writer import ImageWriterlogging.basicCo…

【Fargo】mediasoup發送2:碼率分配、傳輸基類設計及WebRtcTransport原理

Fargo 使用了mediasoup的代碼,搬運了他的架構架構精妙,但是似乎是為了sfu而生,【Fargo】mediasoup發送1:控制與數據分離的分層設計和原理我本地用來發送測試,因此需要進一步梳理: 通過分析這段代碼,我來詳細解釋: 一、sfu 需要碼率級別的分配控制 1. DistributeAvail…

矩陣置零C++

給定一個 m x n 的矩陣,如果一個元素為 0 ,則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 思路: 1、讓首行首列記錄哪一行哪一列有0 2、于是可以直接遍歷非首行首列的元素,若該元素對應的首行首列為0,說明…

大內存對電腦性能有哪些提升

在科技飛速發展的今天,電腦已經成為我們生活和工作中不可或缺的伙伴。無論是日常辦公、追劇娛樂,還是進行復雜的游戲和專業設計,電腦的性能都至關重要。而在影響電腦性能的眾多因素中,內存大小常常被人們忽視。 多任務處理更流暢…

【StarRocks系列】Update語句

目錄 簡要流程 詳細流程 1. UPDATE 語句執行流程 2. 如何更新表的數據 3. 是否支持事務 總結關鍵點 簡要流程 前端處理(FE): 解析 SQL 并驗證主鍵條件生成包含主鍵列表和新值的更新計劃按主鍵哈希分發到對應 BE 后端執行&#xff08…

計算機三級Linux應用與開發

第 1 章 計算機體系結構與操作系統 1.1 計算科學與計算機系統 馮諾依曼體系的結構要點: 計算機數制采用二進制,程序指令和數據統一存儲,計算機應按照程序順序執行。按照馮諾依曼結構設計的計算機由 控制器,運算器,存…

Web攻防-XSS跨站Cookie盜取數據包提交網絡釣魚BEEF項目XSS平臺危害利用

知識點: 1、Web攻防-XSS跨站-手工代碼&框架工具&在線平臺 2、Web攻防-XSS跨站-Cookie盜取&數據提交&網絡釣魚 演示案例-WEB攻防-XSS跨站-Cookie盜取&數據提交&網絡釣魚&Beef工具 1、XSS跨站-攻擊利用-憑據盜取 條件:無防…

自力更生式養老VS三大新型養老:在時代裂變中重構銀發生存法則

在歲月長河中,父母曾為子女遮風擋雨,當他們步入暮年,養老問題成為家庭與社會共同關注的焦點。 “父母的養老終究是自力更生”,這句話道出了養老的本質內核。 然而,在自力更生的基礎上,選擇合適的養老方式…

計算機網絡學習筆記:Wireshark觀察TCP通信

文章目錄 前言一、前置準備二、三報文握手過程抓包2.1、第一次握手2.2、第二次握手2.3、第三次握手 三、通信過程抓包3.1、報文 44379 – 客戶端發數據(PSH, ACK)3.2、 報文 44380 – 服務端確認收到數據(ACK)3.3、報文 44469 – …