jmeter 中怎么筛选数据

本文介绍了一个基本的登录脚本,通过HTTP请求获取响应,使用正则表达式匹配登录成功信息,然后将账号保存到本地文件。作者提供了Java代码示例。

一个基本的登录脚本

创建线程组—>创建HTTP请求—>HTTP信息头管理—>根据响应用正则表达式获取对应的唯一值—>添加一个后置处理器
在这里插入图片描述

获取响应的报文为判断条件

这里的判断在后置处理中来完成,这里写的是Java代码

import org.json.*;
import org.java.*;
import org.io.*;

FileWrite fstream = FileWrite("C:\\xxx\\username.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
String Response = prev.getResponseDataAsString();

log.info("响应数据:"+ Response);

if (Response.contains("登录成功")){
    username = vars.get("user");
    log.info("账号成功登录系统");
    out.write(vars.get("user")+"\n");
    log.info("账号保存成功");else{
        log.info("账号"+vars.get("user") + "成功登录系统");
    }
out.close();
fstream.close();

拿到成功的账号保存本地

user为参数化的账号,或者为正则表达式中获取的参数值,在后再username.txt中查看成功登录的账号即可.

PS:没事可以试试,有问题可以直接私信我

### JMeter 中处理 JSON 数据的方法 #### 背景介绍 Apache JMeter 是一款广泛使用的开源性能测试工具,支持多种协议和接口的测试。随着 Web 应用的发展,JSON 成为主要的数据交换格式之一。因此,在 JMeter 测试过程中,提取、验证以及操作 JSON 响应变得尤为重要。 --- #### 提取 JSON 数据的核心方法 JMeter 支持通过 **JSON Extractor** 和 **JSON JMESPath Extractor** 来提取 JSON 响应中的数据[^1]。以下是两种常用方式: 1. **JSON Extractor** - 配置路径:`Add -> Post Processors -> JSON Extractor` - 参数说明: - `Names of created variables`: 定义变量名以便存储提取到的值。 - `JSON Path Expressions`: 输入有效的 JSON Path 表达式以定位目标字段。 - `Default Values`: 如果未找到匹配项,则返回默认值。 - 示例配置: ```plaintext Names of created variables: rowIdVar JSON Path Expressions: $.data.rowId Default Values: NOT_FOUND ``` 2. **JSON JMESPath Extractor** - 更加灵活且功能强大,适用于复杂查询场景。 - 配置路径:`Add -> Post Processors -> JSON JMESPath Extractor` - 示例表达式: ```plaintext data[*].rowId | [?contains(@, 'specificValue')] ``` - 此表达式可以筛选出符合条件的具体值[^3]。 --- #### 处理 JSON 数据的应用实例 假设有一个 API 返回如下 JSON 结构: ```json { "status": "success", "data": { "userId": 10, "username": "testUser", "details": [ {"id": 1, "name": "item1"}, {"id": 2, "name": "item2"} ] } } ``` ##### 场景一:提取单个字段 如果需要提取 `userId` 字段并保存为变量供后续使用,可设置以下参数: - 变量名称:`userIdVar` - JSON Path 表达式:`$.data.userId` 最终结果会将 `10` 存储至 `${userIdVar}`[^2]。 ##### 场景二:遍历数组 当需要访问嵌套数组时,例如获取所有 `details.id` 列表,可用以下配置: - 变量名称:`detailIds` - JSON Path 表达式:`$.data.details[*].id` 此操作会生成多个变量(如 `detailIds_1=1`, `detailIds_2=2`),便于进一步分析或断言。 --- #### 验证 JSON 数据的一般流程 为了确保服务器返回的 JSON 符合预期结构,可通过 **JSON Assertion** 实现自动化校验[^4]。 1. 添加组件:`Add -> Assertions -> JSON Assertion` 2. 设置条件: - 断言存在指定节点:输入对应的 JSON Path 表达式。 - 示例:`$.data.username` 将确认响应中是否存在该键及其关联值。 --- #### 示例代码片段 以下展示了一个完整的脚本模板,演示如何结合 HTTP 请求与 JSON 提取器实现动态交互: ```python # 创建线程组 Thread Group: Number of Threads (users): 1 Ramp-Up Period (seconds): 1 # 发起 GET 请求 HTTP Request: Server Name or IP: example.com/api/resource Method: GET # 提取 JSON 数据 JSON Extractor: Variable Names: userIdVar JSON Path Expressions: $.data.userId Match No.: 1 # 动态构建 POST 请求 HTTP Request Defaults: Body Data: { "user_id": "${userIdVar}", "action": "update" } # 添加断言 JSON Assertion: JSON Path Expression: $.status Expected Value: success ``` --- #### 总结 通过对 JMeter 的学习可知,其提供了丰富的插件和扩展机制来满足不同层次的需求。无论是简单的字段提取还是复杂的逻辑判断,都可以借助内置的功能模块轻松达成目的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大、大摩王

你的鼓励是我创装的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值