Jmeter自定義腳本

目錄

log:輸出類

Label:你自定義的組件的名稱

FileName:添加的腳本文件的文件名

Parameters:你傳入的參數,是一個字符串

args:你傳入的參數,是一個數組

Parameters和args的異同:

OUT:輸出類

props:封裝的Java中的這個類java.util.Properties

sampler:用來獲取取樣器的內容(如:請求頭、url、取樣器內容……)

ctx:上下文信息

vars:用來處理與自定義變量有關的操作

如何查閱官方文檔


注:本文以前置腳本為例

步驟:右擊“HTTP取樣器”-> 添加 -> 前置處理器 -> JSR223

也可以選擇BeanShell:

但是推薦選擇JSR223,因為官方推薦:

創建完成之后可以看到如下界面

JMeter也給我們提供了一些參數/類:

注:上面這個頁面中的Filename該屬性名有誤,應該為FileName。

log:輸出類

編寫輸出腳本

log.info("哈哈哈");

點擊運行后腳本的輸出結果需要在這里進行查看:

點擊這個三角可以彈出控制臺,里面會打印各種程序執行過程中的日志和腳本打印的東西

Label:你自定義的組件的名稱

log.info("打印Label的值:"+Label)

FileName:添加的腳本文件的文件名

以下面這段代碼為例

log.info("啦啦啦啦啦");
log.info(FileName);
log.info("kkkkk");

添加了腳本文件:

沒有添加腳本文件:

注:一旦添加了腳本文件,那么在下方輸入框中編寫的腳本將不會被執行

Parameters:你傳入的參數,是一個字符串

傳參的位置在此處:

args:你傳入的參數,是一個數組

傳參的位置和Parameters相同。

如果需要傳多個參數,參數與參數之間用英文空格分隔

Parameters和args的異同:

相同之處:

  • 都可以接收用戶自定義傳入的參數(會將用戶傳入的所有字符當成一個字符串)。

不同之處:

  • Parameters只能接收一個參數;
  • args可以接收一個或多個參數,多個參數之間需要使用空格分隔

OUT:輸出類

這個類是封裝了java輸出方法的一部分。可以將內容打印至控制臺,而非GUI界面。

Java的輸出方法:System.out.println(); 而OUT類封裝了這段代碼的前半部分,即System.out

OUT.println("hahaha");

props:封裝的Java中的這個類java.util.Properties

理論上Properties類的方法都可以用

sampler:用來獲取取樣器的內容(如:請求頭、url、取樣器內容……)

注:sampler是一個接口,不是類,不是類。有多種實現方式。

如何看應該使用那個實現類的方法呢?最簡單的辦法就是隨便亂寫一個方法,然后看報錯信息是那個類:

根據報錯信息可以知道HTTP采樣器使用的是org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy這個實現類,所以此時可以去官方文檔查看這個實現類的方法。(文末有官方文檔查閱方法)

獲取請求參數:

import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
log.info(sampler.getArguments().toString());

獲取請求頭信息并打印

log.info(sampler.sample().getRequestHeaders());

獲取url并打印出來:

log.info(sampler.sample().getUrlAsString());

獲取取樣器內容:

log.info(sampler.sample().getSamplerData());

ctx:上下文信息

vars:用來處理與自定義變量有關的操作

在jmeter中自定義變量使用‘${}’來獲取取值。

修改取樣器的參數:

設置變量:

vars.put("val", "筆記本電腦");
//打印請求參數
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
log.info(sampler.getArguments().toString());

獲取自定義變量:

vars.put("val", "筆記本電腦");
String a = vars.get("val");
log.info(a);

如何查閱官方文檔

步驟:右擊腳本組件 -> 幫助

點擊幫助后會在瀏覽器中自動跳轉至對應組件的官方文檔。

跳轉至此頁面后往下滑動頁面,可以看到這個

中間是方法名和參數配置,右邊為對應方法的介紹,最左側為方法的返回值類型。

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

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

相關文章

飛算 JavaAI 電商零售場景實踐:從訂單峰值到供應鏈協同的全鏈路技術革新

目錄 一、電商核心場景的技術攻堅 1.1 分布式訂單系統的事務一致性設計 1.1.1 TCC 模式下的訂單創建流程 1.1.2 訂單狀態機的可靠流轉 1.2 高并發秒殺系統的架構設計 1.2.1 多級限流與流量削峰 1.2.2 庫存防超賣機制 1.3 智能推薦與用戶行為分析 1.3.1 用戶行為實時采…

51單片機-51單片機介紹

51單片機介紹單片機簡介什么是單片機呢?單片機是一種集成電路芯片,采用超大規模集成電路技術將中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、多種I/O口、中斷系統、定時器/計…

8月AI面試工具測評:破解規模化招聘難題

金秋校招臨近,企業面臨“百萬簡歷涌入VS面試官團隊告急”的典型困境。傳統線下面試效率低下、標準參差,難以應對短時間內爆發式的人才篩選需求。AI面試工具憑借自動化與智能化特性成為破局關鍵,但市面上產品良莠不齊——究竟哪款能兼顧效率與…

Debian新一代的APT軟件源配置文件格式DEB822詳解

Debian 的 DEB822 格式詳解:新一代 APT 源配置 DEB822 是一種基于 RFC 822 數據格式的配置文件語法,Debian 新一代的 APT 軟件源配置文件格式就采用了 DEB822。DEB822 格式從 Debian 11 (Bullseye) 開始被引入,并在 Debian 12 (Bookworm) 中成…

實戰 AI8051U 音視頻播放:USART-SPI→DMA-P2P→SPI+I2S 例程詳解

視頻P2P播放,時間計算:fps20,50ms 周期刷屏時間:160*80 一幀刷屏時間28.2ms幀間隔:50ms-28.2ms21.8ms音頻雙緩沖區交叉播放,利用視頻播放幀間隔加載下一個緩沖區音頻數據,時間計算:16000采樣率 …

解釋器模式C++

解釋器模式(Interpreter Pattern)是一種行為型設計模式,它用于定義一種語言的語法規則,并構建一個解釋器來解釋該語言中的句子。這種模式適用于需要處理固定語法規則的場景,如表達式解析、配置文件解析等。 解釋器模式…

debian 13 顯示中文字體 不再顯示菱形塊 終端顯示中文

找了很多坑。。其它就安裝一下中文字體即可 。 apt install ttf-wqy-zenhei 之后測試命令 fc-list :langzh 顯示了剛字體的路徑和中文字即成功了。 rootdebian:~# dpkg-reconfigure locales 以上命令配置中文語言。 debian 12.11 安裝 MySQL 下載配置文件 &am…

51單片機-驅動蜂鳴器模塊教程

本章概述思維導圖: 51單片機驅動蜂鳴器模塊教程 蜂鳴器簡介 蜂鳴器是一種將電信號轉換為聲音信號的電子元件,廣泛應用于報警、提示、通知等場景。其核心原理基于壓電效應或電磁感應:因此可分為兩種類型蜂鳴器:壓電式蜂鳴器和電磁…

常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx運維指南

一、基礎Linux指令1. 文件與目錄操作ls -lh # 查看文件詳情(人類可讀格式) pwd # 顯示當前目錄路徑 cd /path # 切換目錄 mkdir dirname # 創建目錄 rm -rf dirname # 強制刪除目錄 cp -r src dest # 遞歸復制目錄 mv old new # 移動/重命…

小紅書帖子評論的nodejs爬蟲腳本

從小紅書上爬取評論,但是目前還不能完全爬取子評論,使用GPT沒能解決這個問題。后續博主可能會改進。或者如果你懂的話,可以在博主代碼基礎上改進。需要安裝nodejs軟件,部署環境變量。博主是在pycharm中運行的。代碼無套路獲取。自…

【iOS】多線程原理

目錄 前言 基本概念及原理 線程、進程與隊列 線程的定義: 進程的定義: 線程與進程之間的聯系與區別: 線程和runloop的關系 影響任務執行速度的因素 多線程 多線程生命周期 線程池的原理 iOS中多線程的實現方式 線程安全問題 互斥…

藥房發藥的“時間密碼”:同步時鐘用藥安全?

在醫院的藥房里,每一粒藥片的流轉都暗藏“時間密碼”。從藥品入庫到患者服藥,時間記錄的精確性直接關乎生命安全。一旦時間數據出現偏差,輕則導致用藥爭議,重則引發醫療事故。近年來,隨著醫療數字化進程加速&#xff0…

UI-TARS-Desktop 深度解析:下一代智能自動化桌面平臺

目錄 1. 產品概述 2. 核心功能與技術架構 2.1 關鍵技術 2.2 功能亮點 3. 競品對比分析 4. 部署與成本分析 4.1 部署方案 4.2 隱性成本 5. 商業化前景 5.1 目標市場 5.2 盈利模式 5.3 風險挑戰 6. 未來演進方向 7. 總結 1. 產品概述 UI-TARS-Desktop 是一款基于A…

STM32L051同時處理Alarm A和Alarm B中斷

同時處理Alarm A和Alarm B中斷 當同時啟用Alarm A和Alarm B時,需要在中斷處理程序中準確判斷是哪個鬧鐘觸發了中斷。以下是完整的解決方案: 中斷判斷與處理流程 1. 在RTC中斷服務程序中判斷中斷源 // stm32l0xx_it.c void RTC_IRQHandler(void) {/* USER…

OpenCV---morphologyEx形態學操作

在計算機視覺與圖像處理領域,形態學操作是一種基于圖像形狀的非線性處理方法,廣泛應用于噪聲去除、邊緣檢測、目標分割等任務。OpenCV提供的morphologyEx函數是形態學操作的“瑞士軍刀”,它整合了多種高級形態學運算,能夠實現開運…

RuoYi-Cloud 接入 Sentinel 的 3 種限流方式

場景: 服務:ruoyi-robot(對外接口統一在 /external/gs/**) 網關:ruoyi-gateway(轉發到 ruoyi-robot) 注冊/配置:Nacos 流控:Sentinel 1.8.x 控制臺 Dashboard&#x…

快速搭建python HTTP Server測試環境

這里用python http.server搭建一個api測試環境,自定義請求處理程序,以模擬不同api相應。 1 服務代碼 /api/data,端口8000,GET 返回json數據為"{"message": "This is a sample API response"}" 代…

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都是…

解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程

文章目錄解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程引言:技術融合的奇妙開篇認識主角:Dify、MCP 與 MySQL(一)Dify:大語言模型應用開發利器(二)MCP:連接的橋梁&am…

雜記 02

1 WSL安裝 WSL的安裝遇到了問題,睡醒起來發現電腦藍屏了,linux系統沒裝好,但是好像大部分開發環境都是linux下需要的,先這樣用一下吧,到時候再說。可以問下前輩開發細節,主要是網絡代理問題,保…