JMeter接口依赖之关联

本文介绍了JMeter如何处理接口之间的依赖问题,通过后置处理器如正则表达式提取器来从响应数据中提取变量,并在后续接口中使用。还提到了边界值提取器和JSON提取器在特定场景下的应用,帮助读者理解如何在不同格式的数据中提取信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

性能测试工具 - JMeter接口依赖之关联

二、JMeter关联

1、关联的概述

​ 关联: 后一个接口的请求参数依赖与前一个接口的响应数据,即接口之前的依赖问题。

​ 原理: 从上一个接口的响应中提取数据保存到变量(参数), 下一个接口直接引用变量的值。

2、JMeter后置处理器

后置处理器的适用场景:

  • 正则表达式提取器: 响应内容为任意格式文本
  • 边界值提取器: 有明显的左右边界的数据
  • JSON提取器: JSON格式
  • XPATH提取器: HTML或XML格式
  • CSS选择提取器: HTML格式

3、正则表达式提取器

到底什么是正则表达式?

​ 在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

常用限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

常用反义词

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

在JMeter我们一般是使用万能的正则表达式提取器 :
使用“(.+?)”替换要提取的文本

正在表达式提取器的设置

4、边界值提取器

​ 明显的左右边界值提取器

5、JSON提取器

json的路径表达式测试

JSON的提取器设置

### JMeter 性能测试中的接口关联实现 在JMeter中进行性能测试时,接口关联是指在一个HTTP请求的结果中获取某些动态参数,并将其用于后续的HTTP请求。这种技术对于模拟真实的用户行为至关重要。 #### 创建测试计划并添加线程组 为了实现接口关联,首先需要创建一个新的测试计划并在其中建立一个线程组来定义虚拟用户的数量和其他属性[^2]。 ```java // 示例:通过BeanShell PreProcessor 或者 JSR223 PreProcessor 提取前置条件变量 String userId = vars.get("userId"); if (userId != null && !userId.isEmpty()) { log.info("User ID obtained from previous request: " + userId); } ``` #### 添加HTTP请求采样器 接着,在同一个线程组下增加两个或多个HTTP请求采样器。第一个HTTP请求通常用来登录或者初始化会话;第二个及以后的HTTP请求则依赖于前一次响应返回的数据来进行操作[^4]。 #### 使用正则表达式提取器或其他后处理器 为了让这些请求之间能够传递必要的信息,可以在首次成功的HTTP请求之后立即添加一个正则表达式提取器组件或者其他类型的后处理程序(如JSON路径抽取器)。此步骤旨在捕获来自服务器端响应体内的特定字段值作为环境变量存储起来供下一个请求使用。 例如,如果希望从HTML页面源码中抓取出某个`<title>`标签的内容,则可以通过如下方式设置: - **名称**: TitleExtractor - **适用范围**: 主样本仅限于此处指定的目标URL模式匹配项 - **正则表达式**: `<title>(.*?)</title>` - **模板**: `$1$` - **默认值**: `DefaultTitleValueIfNotFound` 一旦设置了上述配置选项,就可以利用`${TitleExtractor}`语法访问所获得的实际标题字符串了。 #### 将提取到的信息应用于后续请求 最后一步就是修改接下来发出的所有相关HTTP GET/POST 请求,使其携带之前保存下来的那些重要参数。这可能涉及到更改URL地址、表单数据或是头部信息等内容。 ```bash # 假设我们已经成功地从上一请求中获得了名为 'token' 的令牌, # 那么现在可以把它加入到下一请求头里面去。 Authorization: Bearer ${token} ``` 通过这种方式,不仅实现了不同API调用间的紧密联系,而且也提高了整个场景下的交互性和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值