一、前言
在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联。

关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用。

二、使用正则表达式提取器实现接口关联
正则表达式提取器,见名知意就是使用正则表达式的方法把我们需要提取的内容通配出来。

原理:通过左右二边不变的边界来提取中间变的返回值 

如上图:需要提取access_token

{"access_token":"31_qz2HtPalsk5Ey1ToWJaZ6Kaojf8y-BhxTHEmuO111m8_Gc_77HRvMuG4ltbd9gHskqi0XAq8phQys9K8awso4iq-VSr0bArrd-zC-nY0Ltudp-HcPZV7y291YjLYoeJBHW2zhB7-lWYzeTsqFKOhAHANSW","expires_in":7200}

1、在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->正则表达式提取器

引用名称:即下一个请求要引用的参数名称,如填写access_token,则可用${ access_token}引用它。

正则表达式:()括起来的部分就是要提取的。.代表任意字符,+表示一次或多次,*代表出现任意次。

模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给access_token。本处只有1个,所有使用$1$。

匹配数字:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。

2.在后面的接口中使用${ access_token}引用

3.使用调试取样器检查是否提取成功

添加调试取样器-->运行测试-->通过查看结果树里面的 调试取样器 查看结果

如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

三、使用json提取器实现接口关联
 使用场合:接口关联,当前一个接口返回的数据类型为json格式的数据,需要从返回的json数据中提取数据。

可以将返回的值复制到 www.bejson.com-->json菜单-->json视图-->json数据中,然后点击试图查看,如下图:

json提取器的使用步骤

1.在需要获得数据的请求“1.获取access_token” 上右击添加一个后置处理器-->JSON提取器

Name of created varialies:即下一个请求要引用的参数名称,如填写access_token,则可用${ access_token}引用它。

JSON Path  expressions:填写jsonpath,格式:$. 节点名称   根节点用 “.” 表示

Match Numbers:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来。

Default Values:找不到时默认值,一般设置为NOT FOUND

Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”

2.替换变量为${ 变量名}

3.使用 调试取样器 检查是否提取到了

四、扩展:返回复杂json数据的提取

如图:{"tag":{"id":193,"name":"newdream20200324"}}

JSON提取器配置如下: $.tag.name

原创不易,欢迎评论,点赞,转发礼貌三连!谢谢!

jmeter实现接口关联的两种方式:正则表达式提取器和json提取器看这篇就够了的更多相关文章

  1. 【jmeter】实现接口关联的两种方式:正则表达式提取器和json提取器

    关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用. 示例: 1.用户密码进行登录,登录后生成authentication 2.需要将登录接口响应结果中auth ...

  2. Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

    实现接口类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=AB ...

  3. mybatis多对一关联的两种方式

    第一个种是Address找到自己的user_id,扔给User,让User自己去再查一次,即使在有缓存的前提下,每遇到一个新的user_id,就会查一次,对比hibernate的话,相当于多对一eag ...

  4. C# Http请求接口数据的两种方式Get and Post

    面向接口编程是一种设计思想,无论用什么语言都少不了面向接口开发思想,在软件开发过程中,常常要调用接口,接下来就是介绍C#调用其它开发商提供的接口进行获取数据,http接口方式获取接口数据. Get请求 ...

  5. MyBatis笔记----多表关联查询两种方式实现

    数据库 方式一:XML 按照下面类型建立article表 Article.java package com.ij34.model; public class Article { private int ...

  6. 实现mapper接口注入的两种方式,以及后台的使用区别

    1.使用模板方式: <!--使用模板类实现mybatis --> <bean id="sqlSession" class="org.mybatis.sp ...

  7. PyQt5信号与槽关联的两种方式

    目录 通过QtDesigner 手动关联的方式 通过QtDesigner 单击菜单栏切换到信号槽编辑模式 单击控件并拖动鼠标到信号的接收对象上,一般为对话框自己,松开鼠标弹出信号和槽选择框 选中cli ...

  8. React组件导入的两种方式(动态导入组件的实现)

    一. react组件两种导入方式 React组件可以通过两种方式导入另一个组件 import(常用) import component from './component' require const ...

  9. jmeter请求参数的两种方式

    Jmeter做接口测试,Body与Parameters的选取 1.普通的post请求和上传接口,选择Parameters. 2.json和xml请求接口,选择Body. 注意: 在做接口测试时注意下请 ...

随机推荐

  1. 线程(Thread)的四种停止方式

    1.正常的程序启动,停止 2.使用退出标记,一般程序在run()方法后,线程会正常结束.但是有一些伺服线程还在运行,他们运行时间较长,只有当外部条件满足时,他们才会停止.实现如下: public cl ...

  2. Python 解密JWT验证苹果登录

    验证苹果登录,官方提供两种验证方法,一种是token,另一个种是code.这里使用的是token 登录流程: 苹果客户端调用苹果API,获取到用户的信息,包括: user_id 昵称 identity ...

  3. Spring Cloud 理论篇

    show me the code and talk to me,做的出来更要说的明白 github同步收录 我是布尔bl,你的支持是我分享的动力! 微服务 在 jsp 时代,应用前后端耦合,前后端 a ...

  4. Java 添加、读取、删除Excel文本框

    本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本.设置文本方向.文本对齐方式.设置文本框大小.位置.填充色/填充图片.文本框旋转角度.文本框名称.可选文本.文本框隐藏或 ...

  5. js 完美运动框架

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. JavaScript表单序列化的方法详解

    本文介绍下,在javascript中实现表单序列化的方法,通过实例加深理解,有需要的朋友参考下吧. 在JavaScript中,可以利用表单字段的type属性,连同name和value属性一起实现对表单 ...

  7. 公钥体系(PKI)等密码学技术基础

    公钥体系(PKI)等密码学技术基础 公钥体系(Public Key Infrastructure, PKI)的一些概念 对称密码算法, 典型算法:DES, AES 加解密方共用一个密钥 加/解密速度快 ...

  8. 后端程序员必备:书写高质量SQL的30条建议

    前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助. 1.查询SQL尽量不要使用select *,而是select具体字段. 反例子: sel ...

  9. Spring WebFlux 入门

    1. WebFlux介绍 Spring WebFlux 是 Spring Framework 5.0中引入的新的响应式web框架.与Spring MVC不同,它不需要Servlet API,是完全异步 ...

  10. MySQL学习(4)

    一 视图 预先定义一种对应关系,如:temp_table <-----> select * from class where student_id >10,那么这种对应关系叫做视图. ...