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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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下需要的,先这样用一下吧,到时候再说。可以问下前辈开发细节,主要是网络代理问题,保…