jmeter中正则表达式及ForEach的使用

一、需求背景

串行接口A、B、C,接口B和接口C的请求参数依赖于接口A的返回参数,在接口A的返回值中,参数是包含在value中的;
举个例子:
接口A的返回参数

{
   
	"url":"http://www.baidu.com/patient/todosPage?projectId=aaaaa&phaseId=12345&taskId=6789"
}

恰好接口B和接口C分别需要参数中的projectId、phaseId、taskId,那么这个时候怎么提取参数呢?

有两种方法:

  1. 在jmeter中通过BeanShell编写脚本提取value
  2. 通过正则表达式提取value

以下介绍的是如何通过正则表达式提取参数的过程。

注:正则表达式的语法可查看教程:正则表达式 - 语法

二、jmeter中添加正则表达式提取器

  1. 在「后置处理器」中选择「正则表达式提取器」,如图在这里插入图片描述
    在这里插入图片描述

  2. 提取器中每个字段代表什么?
    模块一:
    Apply to 提取数据的接口对象

    • main sample and sub-samples:对所有主请求和子请求生效
    • main sample only:只对主请求生效(默认选这个)
    • sub-samples only:只对子请求生效
    • jmeter variable name to use:对jmeter变量生效(在测试计划定义变量,在这用)

    模块二:

    • 主体:响应体(默认选这个)
    • Body(unescaped):无符号响应体,会自动忽略特殊字符,功能不稳定,一般不用
    • body as a document:响应体,会以文件形式存在(在互联网传输的接口数据都是文件),性能差
    • 信息头:响应头
    • request headers:请求头
    • url:请求的url
    • 响应代码:响应状态码
    • 响应信息:响应状态码的信息

    模块三

    • 引用名称:就是匹配成功后,保存数据的变量名
    • 正则表达式:以下是正则表达式中常用的符号
      • ():要提取的内容
      • .:匹配任意单个字符串
      • *: 匹配(*之前的符号)0次或多次
      • +:匹配(+之前的符号)1次或多次
      • ?:不要太贪婪,在找到第一个匹配项后停止
      • .*:匹配连续0个/多个字符
      • .+:匹配连续1个/多个字符
      • \ :转义,.表示匹配字符.本身
    • 模板:正则表达式中每有一个括号就相当于一个模板
      • $0$则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容
      • $1$代表提取第一个正则表达式的数据
      • $2$则是第二个正则表达式的数据
    • 匹配数字:
      • 0代表随机选择一组
      • 1代表选择第一组
      • 2代表选择第二组
      • 为负数时代表选择全部数据,如-1
    • 缺省值:当匹配失效时,保存到引用名称的
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值