JMeter-前置处理器

本文介绍了JMeter的三种前置处理器:BeanShell PreProcessor用于在请求前进行操作,JDBC PreProcessor用于请求前的数据库交互,用户参数则允许线程使用不同的变量值。详细讲解了各个处理器的功能和使用场景。
部署运行你感兴趣的模型镜像

前置处理器


在sampler 执行之前用来修改sampler的,无法直接被“察看结果树”记录

这里写图片描述

1. BeanShell PreProcessor

使用BeanShell在请求进行之前进行操作。语法使用与BeanShell Sampler是一样的。但可使用的内置变量稍有不同
这里写图片描述
在线程组中添加2个请求,在HTTP请求2 中添加BeanShell PreProcessor,代码如上图,最终运行结果:
这里写图片描述

  1. vars:操作Jmeter变量
        a) vars.get(“name”):从jmeter中获得变量值
        b) vars.put(“key”,”value”):保存数据到jmeter变量中,如果变量不存在会自动创建
  2. props: 操作Jmeter属性
        a) props.get(“START.HMS”);  注:START.HMS为属性名
        b) props.put(“PROP1”,”1234”); 保存数据到Jmeter属性中,如果属性不存在会自动创建
  3. log: 记录日志
    比如log.info(“日志信息”); 具体查看: https://www.slf4j.org/api/org/slf4j/Logger.html
  4. ctx: 操作上下文,具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html
  5. prev: 操作前一个请求。注意必须有前一个请求才可用,否则会报错,具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
  6. sampler: 操作当前请求。具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html

2. JDBC PreProcessor

在请求运行之前进行数据库操作。
使用方法与JDBC Request 是一样的。
应用场景,比如在修改用户信息,需要知道用户在修改前的信息,可以使用JDBC PreProcessor进行查询
这里写图片描述

3. 用户参数

可以让变量在每个线程中分别使用不同的值。
在多线程测试中可以用到。比如创建用户,用户名不能重复,但要使用多线程进行测试,这时可以用到。
这里写图片描述

比如,添加一个线程组,线程数设置为2,添加一个“用户参数”(上图),再添加一个BeanShell Sampler来获取用户名(打印到日志)
结果,2个线程分别得到不同的name
用户_1: xiaoming,线程1使用的变量
用户_2: xiaohong,线程2使用的变量
这里写图片描述

这里写图片描述

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>好的,用户想了解JMeter前置处理器的用法和配置示例。首先,我需要回忆一下JMeter前置处理器相关知识,然后结合提供的引用内容来组织回答。 首先,用户可能对前置处理器的基本概念不太清楚,需要先解释什么是前置处理器,以及它在测试计划中的作用。根据引用3,前置处理器用于在执行请求之前对请求进行修改或设置,比如设置参数、添加认证信息等。这点需要明确说明。 接下来,用户需要使用方法及配置示例。应该分步骤讲解如何添加前置处理器,并介绍常见的类型。引用3中提到添加方法是在请求上右键添加,所以需要详细描述这个过程。同时,引用1里的JDBC前置处理器示例可以作为具体案例,展示如何配置数据库连接和执行SQL语句。 然后,用户可能关心如何利用前置处理器设置变量,比如用户参数或正则表达式提取器。引用4提到用户定义的变量和配置元件的优先级,这里需要注意区分用户参数和配置元件的不同,说明前置处理器中的用户参数可以在每次迭代时重新取值,而配置元件的变量是固定的。 还需要注意引用2中的脚本变量,比如vars、props等,这些在BeanShell前置处理器中可能用到。可能需要提供一个使用脚本动态生成变量的例子,比如生成时间戳,并说明如何通过vars.put()方法存储变量。 在结构上,应该按照逻辑顺序组织:定义、添加步骤、常用类型、配置示例(JDBC、用户参数、BeanShell)、注意事项。这样用户能逐步了解如何配置和使用不同的前置处理器。 最后,生成相关问题需要考虑用户可能进一步想了解的内容,比如不同类型处理器的区别、变量作用域、调试技巧等,确保问题覆盖用户可能的需求。 检查是否所有行内公式正确使用$...$,但这里可能较少涉及数学公式,更多是代码块。需要确保代码示例正确,比如引用1中的SQL插入语句和Python示例,但用户问题关于JMeter,所以可能需要调整代码示例为JMeter相关的配置步骤。 确认引用的标记正确添加,每个引用来源在回答中的引用位置准确,比如引用1用于JDBC配置,引用2用于脚本变量,引用3用于前置处理器类型,引用4用于用户参数说明。 总结回答的结构,确保每个部分清晰,并涵盖用户可能的疑问点,比如变量优先级、使用场景、配置步骤中的常见问题等。</think>### JMeter 前置处理器使用方法及配置示例 JMeter 前置处理器用于在 **执行请求前** 对请求进行预处理,例如动态生成参数、操作数据库或提取数据。以下是详细步骤和示例: --- #### 一、前置处理器核心作用 1. **参数设置**:动态生成请求参数(如时间戳、随机数)[^3]。 2. **数据准备**:通过数据库操作或文件读取生成测试数据[^1]。 3. **变量提取**:从响应中提取数据并存储为变量。 4. **逻辑控制**:通过脚本实现条件判断或流程控制[^2]。 --- #### 二、配置步骤(以 **JDBC 前置处理器** 为例) 1. **添加前置处理器** 在测试计划中右键点击目标请求 → 选择 `添加 > 前置处理器 > JDBC PreProcessor`。 2. **配置数据库连接** - **Database URL**:填写数据库地址,如 `jdbc:mysql://localhost:3306/test_db`。 - **JDBC Driver Class**:选择驱动类型(如 `com.mysql.jdbc.Driver`)。 - **Username/Password**:输入数据库账号密码[^1]。 3. **编写 SQL 语句** ```sql INSERT INTO books (title, status) VALUES ('《百年孤独》', 'available'); ``` 执行后可通过 `${variable}` 引用结果[^1]。 --- #### 三、常用前置处理器类型及示例 1. **用户参数(User Parameters)** - **作用**:为每个线程/循环生成独立变量值。 - **配置**:定义变量名和值,如 `${username}=test_user`[^4]。 2. **正则表达式提取器(Regular Expression Extractor)** - **作用**:从响应中提取数据。 - **示例**:提取 JSON 中的 `token`: ``` 表达式:`"token":"(.*?)"` 变量名:`token` ``` 3. **BeanShell 预处理程序** - **作用**:通过脚本动态生成变量。 - **示例**:生成时间戳并存储为变量: ```java vars.put("timestamp", String.valueOf(System.currentTimeMillis())); // [^2] ``` --- #### 四、注意事项 1. **变量作用域** - 前置处理器生成的变量仅在 **当前请求及其子元件** 中生效。 2. **执行顺序** - 前置处理器按其在测试计划中的 **上下顺序** 执行。 3. **调试技巧** - 使用 `Debug Sampler` 查看变量值是否生成成功。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值