JMeter函數整理

 "_csvRead"函數

  csvRead函數是從外部讀取參數,csvRead函數可以從一個文件中讀取多個參數。

  下面具體講一下如何使用csvread函數:

  1.新建一個csv或者text文件,里面保存要讀取的參數,每個參數間用逗號相隔。每行表示每一組參數,每列表示每種參數:

  比如:

  admin,123

  manager,456

  2.打開Jmeter的函數助手,選擇csvread函數:

  其中:

  CSV file to get values from | *alias:要讀取的文件路徑,應該是絕對路徑

  CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0

  點擊生成按鈕,則生成了函數,為:${__CSVRead(D:\login.txt,1)}csvread就是從login.txt文件中讀取第一列的參數。以此類推。

  3.將生成的參數拷貝到需要參數化的參數的值一項中,如果要修改要讀取的參數的列,則可以直接在參數值中修改數字而不用重新在csvread函數生成中修改。

  4.jmeter執行的時候,如果有多個線程,順序讀取第一行的數字,如果線程組多余文件中的行數,則循環讀取。

  5.利用該功能,可以實現不同參數需要不同參數值的問題,只需要在需要參數化的地方將生成的CSVRead函數字符串粘貼過去,然后修改表示第幾列的數字就可以了。

  "_ StringFromFile"函數

  功能:這個函數是從一個文件中取到一個字符串,這個函數和LoadRunner中的File變量差不多,不過LoadRunner可以直接從數 據庫中查詢記錄,自動生成文件,而Jmeter需要我們借助第三方工具生成文本作用:可以用來實現參數化http請求發送的參數,使得在Jmeter運行 時參數化了的參數在每個線程讀取不同的內容。如果某個參數每次發送請求的時候不能重復才可以存儲到數據庫中,則用這個功能十分方便。

  使用:

  1.首先需要一個文本文件,可以手工生成,也可以通過數據庫查詢工具查出結果,然后拷貝到一個文本文件中。

  2.點擊Jmeter的“選項”,選擇“函數助手對話框”(或者使用快捷鍵“Ctrl+F”),在“選擇一個功能”的下拉框中選擇“_StringFromFile”

  3.設置“_StringFromFile”函數的值,具體如下:

    ● 輸入文件的全路徑:輸入前面生成的文件的完整路徑,即文件路徑+文件名.擴展名(文件路徑可以寫成相對路徑或絕對路徑,默認讀取位置為/bin下)

    ● 函數名稱:輸入某個名稱,用于存儲在測試計劃中其他的方式使用的值。

    ● 文件開始結束序號:第三,第四個參數是文件開始的序號,也就是文件讀取的其起始行數。第四個參數是文件的結束序號,也就是要讀取文件的最后行。假如咱們生 成的文本文件有200行,如果開始序號設置成50,結束行設置成150,那么這個函數會按順序從第50行,一直讀取到150行,如果測試的循環次數超過了 文件行數,比如循環了102次,那么最后一次循環讀取的文件內容和第一次的一樣,函數會自動循環讀取。文件的起始序號和結束序號也可以不用設置,這樣函數 會從第一行讀取到最后一行,然后再循環讀取。

  4.注意:該函數每次讀取文件中的一行,如果線程組中有多個線程,則每個線程順序讀取一行,如果有多次循環,則每次循環順序讀取一行。
?

  "_Random"函數

  功能:這個函數是從某個數字段隨機讀取數據替換參數,可以利用在測試需要添加多條數據記錄而且某些字段需要唯一性的測試腳本中,隨機生成的參數是數字

  作用:可以用來實現參數化http請求發送的參數,使得在Jmeter運行時參數化了的參數在每個線程去不同的隨機數。如果某個參數每次發送請求的時候不能重復才可以存儲到數據庫中,則用這個功能十分方便。

  使用:

  1.點擊Jmeter的“選項”,選擇“函數助手對話框”(或者使用快捷鍵“Ctrl+F”),在“選擇一個功能”的下拉框中選擇“_Random”。

  2.配置“_Random”函數,第一個參數是“一個范圍內的最小值”,即所要取的隨機數的最小值,我們設置成1;第二個參數是“一個范圍內的 最大值”,即所要取的隨機數的最大值,我們設置成100;第三個參數是“函數名稱”,即用于存儲在測試計劃中其他的方式使用的值,我們設置成 Random。設置好上面的三個參數后,點擊“生成”按鈕,這樣就會在對話框的最下面生成一個字符串 “${__Random(1,100,Random)}”,在我們編寫的腳本中,找到要替換的參數,把它的值換成前面生成的字符串就可以了,然后每次運行 的時候,這個參數會變成一個1到100之間的隨機數。

  "_counter"函數

  功能:這個函數是一個計數器,用于統計函數的使用次數,它從1開始,每調用這個函數一次它就會自動加1,它有兩個參數,第一個參數是布爾型的, 只能設置成“TRUE”或者“FALSE”,如果是TRUE,那么每個用戶有自己的計數器,可以用于統計每個線程歌執行了多少次。如果是FALSE,那就 使用全局計數器,可以統計出這次測試共運行了多少次。第二個參數是“函數名稱”

  格式:${__counter(FALSE,test)}

  使用:我們將“_counter”函數生成的參數復制到某個參數下面,如果為TRUE格式,則每個線程各自統計,最大數為循環數,如果為FALSE,則所有線程一起統計,最大數為線程數乘以循環數

  "_time”函數

  功能:Jmeter運行時取當前時間到變量,利用該功能,可以將某個參數增加time函數,然后用該參數作為查詢條件查詢,然后以該參數作為斷 言,這樣可以使得斷言更精確,因為時間實時變化的,使用該方法,需要注意的是,要先添加一個全局的用戶參數,具體在斷言操作中有描述。

  格式:${__time(MMddmmss,TEST)}

  使用:添加jmeter的time函數,選擇選項——函數助手,然后選擇__time函數

  在“ormat string for SimpleDateFormat (optional)”中輸入值“MMddhhmmss”,表示取月日時分秒。

  然后,點擊生成,則生成了time參數。

  "_intSum”函數

  功能:用于計算多個整數的和,可以是計算正整數和負整數的和,它有N個參數,最少有3個參數,最多不限。最后一個參數是函數名稱,前面的其它參 數是要求和的整數。這個函數在函數對話框中只顯示3個參數,如果要計算多個整數,可以通過添加參數實現,不過最后一個參數一定要是函數名稱。再添加的參數 會在函數名稱后面,這個時候,需要我們手動將函數名稱參數放到最后一個。

  格式:${__intSum(1,100,test)}


Jmeter消息類的功能
${__threadNum}    :得到testplan的線程數
${__machineName}  :得到主機名字
${__time(EEE\, d MMM yyyy)}  :返回一定格式的時間信息 。${__log(Message)}:寫入log文件”…thread Name : Message” 。${__log(Message,OUT)}:輸出到命令行。${__log(${VAR},,,VAR=)} :以 “…thread Name VAR=value”形式輸出到log文件。Jmeter輸入類的功能
這里Jason只介紹下${__XPath(File,//XX/XX/@XX)}  :XPath方式讀了File文件的相應屬性.Jmeter計算類的功能
${__counter(X)}    :自增函數,X(true/false)來控制是否分配線程來增加.
${__Random(X,Y,Z)} :隨機函數,X為最小值,Y為最大值,Z為存儲的變量名.Jmeter的Properties文件使用的功能類
之前Jason在Jmeter的P函數及properties文件介紹了相關的內容.Jmeter的變量操作類的功能
${__split(X,Y,Z)}   :用來分割變量用的,X為需要分割的變量或者String,Y為存儲的變量名,Z為分割符.
${__V}              :的使用主要來源于變量中含變量的情況 eg. ${A${N}} 可以用${__V(A${N})} 來顯示成功.
${__eval}           :主要用在對SQL的處理上,具體使用看下面的例子:
* name=Smith   * column=age * table=birthdays * SQL=select ${column} from ${table} where name=’${name}’
用${__eval(${SQL})}可以得到”select age from birthdays where name=’Smith’”.Jmeter的String操作類的功能
${__regexFunction}  :對前一個響應進行正則規約提取.具體參考這里.
${__char},${__unescape},${__unescapeHtml},${__escapeHtml} :主要用來對字符的編碼格式的轉換的.Jmeter的腳本操作類的功能
${__javaScript(X,Y)} :主要是使用Javascript來做一些簡單的操作.例如計算和字符處理等等.
eg. ${__javaScript(‘${sp}’.slice(7\,99999))}
${__BeanShell(X)}  :主要是利用BeanShell來實現一些具體的功能,BeanShell具體我們可以參考BeanShell.

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

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

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

相關文章

深入理解 React Hooks

在當今的 React 開發中,Hooks 已經成為構建函數組件的核心工具。自 React 16.8 版本引入以來,Hooks 徹底改變了開發者編寫 React 組件的方式,使得狀態管理和副作用處理變得更加簡潔和直觀。本文將全面介紹 React 提供的各種 Hooks,從基礎的 useState 和 useEffect,到高級的…

Doris-2:單虛擬機上非docker化安裝Doris實驗環境

Doris-2:單虛擬機上非docker化安裝Doris實驗環境 1.安裝1.1.環境說明1.2.基礎準備1.2.1.JDK1.2.2.操作系統配置(使用root或者有權賬戶)1.2.2.1.修改環境變量1.2.2.2.修改虛擬內存區域1.2.2.3.關閉swap1.2.2.4.關閉防火墻1.2.2.5.創建用戶和組1.3.安裝doris1.3.1.解壓1.3.2.配置…

C# SqlSugar:依賴注入與倉儲模式實踐

C# SqlSugar:依賴注入與倉儲模式實踐 在 C# 的應用開發中,數據庫操作是必不可少的環節。為了讓數據訪問層更加簡潔、高效且易于維護,許多開發者會選擇成熟的 ORM(對象關系映射)框架,SqlSugar 就是其中備受…

Razor編程中@Helper的用法大全

文章目錄 第一章:Helper基礎概念1.1 Helper的定義與作用1.2 Helper的基本語法結構1.3 Helper與HtmlHelper的區別 第二章:基礎Helper用法2.1 無參數Helper2.2 帶簡單參數的Helper2.3 帶默認值的參數2.4 使用模型作為參數 第三章:高級Helper用法…

Python-正則表達式(re 模塊)

目錄 一、re 模塊的使用過程二、正則表達式的字符匹配1. 匹配開頭結尾2. 匹配單個字符3. 匹配多個字符4. 匹配分組5. Python 代碼示例 三、re 模塊的函數1. 函數一覽表2. Python 代碼示例1)search 與 finditer2)findall3)sub4)spl…

前端知識導圖

前端知識導圖 參考:字節標準 前端知識導圖 通用基礎 1、編程語言 HTML CSS JS TS 2、計算機基礎 計算機網略 數據結構 算法:二分查找、十大排序、二叉樹先中后和層次遍歷、集合交并集、leetcode刷題經驗 編譯構建 webpack & vite 應用基礎 開…

moon游戲服務器-demo運行

下載地址 https://github.com/sniper00/MoonDemo redis安裝 Redis-x64-3.0.504.msi 服務器配置文件 D:\gitee\moon_server_demo\serverconf.lua 貌似不修改也可以的,redis不要設置密碼 windows編譯 安裝VS2022 Community 下載premake5.exe放MoonDemo\server\moon 雙…

Webpack性能優化:構建速度與體積優化策略

一、構建速度優化 1、??升級Webpack和Node.js?? ??優化效果??:Webpack 4比Webpack 3構建時間降低60%-98%。??原因??: V8引擎優化(for of替代forEach、Map/Set替代Object)。默認使用更快的md4哈希算法。AST直接從Loa…

ajax學習手冊

Ajax 通俗易懂學習手冊 目錄 Ajax 基礎概念XMLHttpRequest 詳解Fetch API (現代方式)處理不同數據格式錯誤處理和狀態碼Ajax 高級技巧實戰項目案例最佳實踐 Ajax 基礎概念 什么是 Ajax? Ajax Asynchronous JavaScript And XML 通俗解釋: Ajax 就像…

人工智能學習02-安裝環境

人工智能學習概述—快手視頻 人工智能學習02-安裝—快手視頻 Python安裝 Python安裝分為兩種方法,一是從官網(https://www.python.org/)下載Python工具(比如python-2.7.msi)進行安裝,并設置Path環境變量;二是下載工具Anaconda集成環境進行安…

電腦開不了機,主板顯示67碼解決過程

文章目錄 現象分析內存條問題BIOS設置問題其它問題 解決清理內存條金手指所需工具操作步驟注意事項 電腦在運行過程中,顯示內存不足,重啟電腦卻無法啟動。 現象 System Initialization 主板風扇是轉的,也有燈光顯示,插上屏幕&am…

在ubuntu等linux系統上申請https證書

使用 Certbot 自動申請 安裝 Certbot Certbot 是 Let’s Encrypt 官方推薦的自動化工具,支持多種操作系統和服務器環境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申請證書 純手動方式(不自動配置)&…

springboot的test模塊使用Autowired注入失敗

springboot的test模塊使用Autowired注入失敗的原因: 注入失敗的原因可能是用了junit4的包的Test注解 import org.junit.Test;解決方法:再加上RunWith(SpringRunner.class)注解即可 或者把Test由junit4改成junit5的注解,就不用加上RunWith&…

Cursor Rules 使用

前言 最近在使用 Cursor 進行編程輔助時,發現 AI 生成的代碼風格和當前的代碼風格大相徑庭。而且有時它會輸出很奇怪的代碼,總是不符合預期。 遂引出本篇,介紹一下 Rules ,它就可以做一些規范約束之類的事情。 什么是 Cursor R…

項目任務,修改svip用戶的存儲空間。

修改存儲空間 3GB->5GB,這是項目任務,首先有人任務就要去思考實現思路,首先存儲空間,也就是說不只是前端樣式3GB改一下就可以了,那用戶實際還是3GB,所以我們去網站看后端誰返回給我們了3GB,我…

【無標題】路徑問題的革命性重構:基于二維拓撲收縮色動力學模型的零點隧穿理論

路徑問題的革命性重構:基于二維拓撲收縮色動力學模型的零點隧穿理論 一、傳統路徑模型的根本缺陷 在經典正方形路徑問題中(圖1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[無直接路徑] B -…

iview中的table組件點擊一行中的任意一點選中本行

<Table border ref"selection" size"small" on-row-click"onClickRow"></Table>// table組件點擊一行任意位置選中onClickRow(row, index) {this.$refs.selection.toggleSelect(index)}寫上toggleSelect(index)方法即可&#xff0c;…

前端工具庫lodash與lodash-es區別詳解

lodash 和 lodash-es 是同一工具庫的兩個不同版本&#xff0c;核心功能完全一致&#xff0c;主要區別在于模塊化格式和優化方式&#xff0c;適合不同的開發環境。以下是詳細對比&#xff1a; 1. 模塊化格式 lodash 使用 CommonJS 模塊格式&#xff08;require/module.exports&a…

算法-構造題

#include<iostream> #include<bits/stdc.h> using namespace std; typedef long long ll; const ll N 5e5 10; int main() {ll n, k;cin >> n >> k; ll a[N] {0}; // 初始化一個大小為N的數組a&#xff0c;用于存儲排列// 構造滿足條件的排列for (l…

LeetCode--25.k個一組翻轉鏈表

解題思路&#xff1a; 1.獲取信息&#xff1a; &#xff08;1&#xff09;給定一個鏈表&#xff0c;每k個結點一組進行翻轉 &#xff08;2&#xff09;余下不足k個結點&#xff0c;則不進行交換 2.分析題目&#xff1a; 其實就是24題的變題&#xff0c;24題是兩兩一組進行交換&…