当前位置: 首页 > news >正文

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.lryc.cn/news/621560.html

相关文章:

  • Easy Rules 规则引擎详解
  • 【测试工具】JMeter基本使用及MySQL数据库压力测试
  • Stagehand深度解析:从开源自动化工具到企业级RPA平台的演进之路
  • 新手向:Python函数定义与参数传递(位置参数、关键字参数、默认参数)
  • Unity输入系统:旧版Input_System
  • 大气负氧离子自动监测站:解密空气的科技密码
  • SSL和TLS协议的消息认证码(MAC)
  • 【opencv-Python学习笔记(5):几何变换】
  • 《Effective Java》第1条:用静态工厂方法代替构造器
  • 【R语言】R 语言中 gsub 与正则表达式详解(含 POSIX 与 Perl 风格实例)
  • 【R语言】更换电脑后,如何在新设备上快速下载原来设备的 R 包?
  • 智能体开发实战:用Deepseek做一个生成思维导图的智能体
  • 2025高防IP vs 普通IP:本质差异与选型指南
  • 移动板房的网络化建设
  • StarRocks集群部署
  • 39 C++ STL模板库8-容器1-array
  • 常见IP模块的仲裁策略和实现
  • YOLO11分割模型使用rknn2量化部署
  • 网络安全蓝队常用工具全景与实战指南
  • 【DDIA】第二部分:分布式数据
  • 从零到一:发布你的第一个 npm 开源库(2025 终极指南)
  • Elasticsearch赋能规章制度智能检索:从海量文档到秒级响应
  • app-5 控制卡升级
  • 【CV 目标检测】②R-CNN模型
  • 「iOS」————UITableView性能优化
  • GCC深度剖析:从编译原理到嵌入式底层实战
  • 阿里云出里两款新的云服务器
  • 基于单片机的超市储物柜设计
  • 打破传统局限,人工智能+虚拟仿真赋能日化品设计实验教学
  • 异步并发×编译性能:Dart爬虫的实战突围