JMeter接口测试___接口关联

article/2025/9/25 9:49:34

  • 前言
  • 一、什么是接口关联?
  • 二、JMeter关联方法:
    • 1.正则表达式提取器
    • 2.Json Extractor提取器
    • 3.边界值提取器
  • 总结


前言

关联的概念: 关联也称为串行参数或数据依赖。                           

   在开展接口测试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联。 通俗来讲:上一个接口的返回值作为下一个接口的入参。

示例: 登录接口-下单接口          

首先,登录接口返回包含用户身份认证信息的token,后续的接口需要附带上这个token才能被服务器识别身份。


一、JMeter关联方法:

1. 正则表达式提取器:通过正则表达式来提取数据。适用于任何情况。      

2. Json Extractor提取器:通过JsonPath表达式来提取数据。仅适用于服务器返回的是json格式的数据。      

3. 边界值提取器

二、具体操作:

1、jmeter——正则表达式提取器

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

2)、常用表达式: 左边界(.+?)右边界              

                                左边界(.*?)右边界

  ():括号里表示要提取的数据        

  .   匹配任何字符串      

  +  一次或多次        

  ?  不要太贪婪,在找到第一个匹配项后停止        

  *  匹配规则内所有字符串

 * 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配

.*  贪婪匹配原则,即匹配到不能匹配为止

.*?    .+? 非贪婪匹配,即在匹配成功的情况下尽可能少的匹配

3)、 (.+?)  和   (.*?)  的区别?

(.+?)提取1个字符串及以上,不要太贪婪,在找到第一个匹配项后停止;        

(.*?)提取0个字符串及以上,要取的值是空值的时候也可以取得到

如:“test":""  要取test的值,使用  (.+?) 匹配不到值。使用  (.*?) 则可以取到test的值为空,                    写法是:  “test":"(.*?)"

实例:提取token供后续接口使用:

1.运行登录接口,获取返回值token,使用非贪婪匹配法提取token;

2.在登录接口右击添加后置处理器→正则表达式提取器,提取token;

3.在后续的请求中使用${token}进行引用

4.使用调试取样器检查是否提取成功(添加取样器(线程组→取样器→Debug Sampler)、运行测试、通过察看结果树的调式取样器-检查结果)

2、jmeter——Json Extractor提取器

使用场景:接口关联,当前一个接口返回的数据类型为json格式的数据,需要从返回的json数据中提取数据

1)用法说明: 用于提取请求返回结果中的某个值或者键值对的数据。                                       

标准写法为$.key,其中key为返回结果对象中的一个键,如果是多层则继续用.key进行即可,如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号。 

Json提取器语法说明:

 $    根节点,表示json整个对象

.     点,表示下个节点。格式:key.key

[]    下标运算符,根据索引获取元素,也可以用来连接父、子节点。格式key["key2"]

      一般来说,使用 [] 可以提取多个子节点作为一个子JSON对象。格式$["key","key2"]

..    递归匹配所有子元素,表示提取所有节点、子节点中符合条件的节点值。格式$..

*    表示通配,提取所有

完整的语法说明请见:https://github.com/json-path/JsonPath

 2)json路径表达式有两种:绝对路径、相对路径:

①绝对路径:$.节点名称(复杂的:$.一级节点.二级节点.要提取的节点)一层一层去提取 

②相对路径:$..提取节点的key。同级不同级但是相同的key都被提取

区别: 

①绝对路径取多个值时,变量名都一样;                                                                     

②相对路径取多个值时,每个值都有一个变量名,变量名为 自定义的那个_下标。如:返回3个值,自定义变量名为id,那个3个值的变量名为id_1,id_2,id_3。  调用时需要哪个值就用${id_?}

3)json提取结果校验 

在察看结果树种选择Json Path Tester查看返回的相应数据,Json Path Expression输入需要通过jsonpath方式获取的值点击Test检查结果是否正确

4)将提取的变量设置为全局变量(跨线程也可调用) 

①添加取样器→ BeanShell 取样器                                                                                       

②用__setProperty()函数设置全局变量,复制后添加在BeanShell后置处理器中

③替换变量为${ 变量名}                                                                                 

使用全局变量,${__P(newtoken)、${__property(newtoken)}


http://chatgpt.dhexx.cn/article/1LalmN2V.shtml

相关文章

jmeter接口测试详细教程

jmeter接口测试详细教程 jmeter接口测试-总结 1、你们公司的接口测试流程是怎样的?(有没有感觉熟悉,貌似在哪里听过) 接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等。 1、首先是从…

jmeter接口测试流程

目录 一、添加线程组 二、添加HTTP请求默认值 三、添加HTTP Cookie管理器 四、添加http请求 五、添加HTTP信息头管理器 六、添加响应断言 七、添加察看结果树 八、jmeter快捷键 一、添加线程组 鼠标右键点击“测试计划-->添加-->线程组(用户&#x…

用Jmeter进行接口测试

web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源)、soupUI(开源&商业版)。 下面将对前一篇Postman做接口测试中的接口用Jmeter来实现。 一、Jmeter 的使用步骤 打开Jmeter 安装包,进入\bin 中,找到"jmeter…

JMeter接口测试入门

目录 JMeter接口测试 前言 一、JMeter简介二、JMeter的安装及部署 1.JMeter下载/安装 2.JAVA下载/安装 三、启动JMeter 四、JMeter常用组件介绍 五、JMeter接口测试基础入门 前言 什么是接口测试? 接口测试实际上就是功能测试,可以不…

Jmeter之接口测试

1. 添加token和Cookie 其他业务都是依赖于登录成功而执行的。所以获取登录成功后的token和Cookie。结合Fidder或者wireshark进行抓包。 1.1 添加token方法 添加“HTTP token管理器”,添加正则表达式,并在需要token的地方进行引用即可。如下图&#xf…

2022全网最全最细的jmeter接口测试教程以及接口测试流程详解— 使用JMeter发送一个请求

当我们第一次打开JMeter的时候,树形标签栏中只有一个“测试计划”。 如果想要发送一个请求,需要操作如下步骤:(最基础的一个请求) 步骤1:创建一个测试计划 打开JMeter会默认有一个创建好的测试计划。 一个…

Jmeter之接口测试流程详解

前言 今天笔者呢,想给大家聊聊Jmeter接口测试流程详解,废话不多说直接进入正题。 一、jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以; Jmeter采用多线程,允许通过多个线…

JMeter接口测试

目录 基础 一.接口测试分类 二.目前接口架构设计 三.市面上的接口测试工具 四.Jmeter简介,安装,环境变量配置 五.Jmeter目录介绍 六.Jmeter常用组件 七.Jmeter执行接口测试 执行接口测试 1、新建线程 2、配置元件 3、取样器 实战&#xff1…

Jmeter接口测试流程详解(中科软测认证中心)

1、jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以; Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。 2、jmeter安装 首先需要安装jdk(最好是最…

ashx文件使用

sky.chen ashx文件使用 在项目开发中,只要用到ajax,一般都少不了使用vs的一般处理程序(ashx文件),下面详细介绍下该文件: 一般处理程序(HttpHandler)是NET众多web组件的一种,ashx是其扩展名。一个httpHandl…

ashx文件和HttpHandler

ashx文件和HttpHandler ashx 文件用于写web handler的。.ashx必须包含IsReusable. 如下例所示。}.ashx比.aspx的好处在与不用多一个html 注意了VS2005中Web应用程序项目模板里的Generic Handler 项,发现它是一个.ashx文件,实际上它是一个HttpHandler。利…

*.ashx文件

*.ashx文件 .ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示 <% webhandler language"C#" class"AverageHan…

[ASP.Net ]利用ashx搭建简易接口

创建接口的方式有很多&#xff0c;像是Web api,nodejs等等 今天&#xff0c;主要介绍&#xff0c;利用ashx的方式&#xff0c;来搭建一个简易的api 首先&#xff0c;利用VS编辑器&#xff0c;创建一个空的web应用程序 生成的项目文件 为此程序&#xff0c;添加一个新项&a…

孚盟云 AjaxMethod.ashx SQL注入漏洞

漏洞描述&#xff1a; 孚盟云 AjaxMethod.ashx文件存在SQL注入漏洞&#xff0c;攻击者通过漏洞可获取服务器权限。 漏洞利用条件: / 漏洞影响范围&#xff1a; / 漏洞复现&#xff1a; 1.登录页面 2.poc&#xff1a;/Ajax/AjaxMethod.ashx?actiongetEmpByname&Name…

.ashx 解析

.ashx 文件用于写web handler的。当然你完全可以用.aspx 的文件后缀。使用 .ashx 可以让你专注于编程而不用管相关的WEB技术。 .ashx必须包含IsReusable. 如下例所示 <% webhandler language"C#" class"AverageHandler" %> using System; using Sys…

再续.ashx

.ashx 文件用于写web handler的。当然你完全可以用.aspx 的文件后缀。使用 .ashx 可以让你专注于编程而不用管相关的WEB技术。 .ashx必须包含IsReusable. 如下例所示 <% webhandler language"C#" class"AverageHandler" %> using System; using Sys…

ASH

我们可以用第三方工具监控数据库&#xff0c;如toad&#xff0c;spotlight&#xff08;我用的是这个&#xff0c;还不错&#xff09;&#xff0c;但是oracl提供的监测数据的工具不可忽视&#xff0c;学会应用会给监控数据带来便捷。下面介绍ASH. ASH:active session history 我…

一般处理程序.ashx

在前面那篇有关智能提示的推荐文章中&#xff0c;作者用到了.ashx文件和jQuery。 说句实话&#xff0c;对于.ashx当时还真是第一次听说&#xff0c; …… 为了弥补自己知识上的缺陷&#xff0c;在网上恶补了一下&#xff0c;终于对此类文件有了一个初步的认识&#xff0c;特别…

一般处理程序.ashx的应用

利用“一般处理程序”。如果你实用的是vs2005你在添加新项中可以见到“一般处理程序”&#xff0c;它的后缀名为.ashx。它是什么&#xff1f;其实它和.aspx很类似。先问问.aspx是如何工作的&#xff1f;也许你知道&#xff0c;.aspx能处理来自外部传入的请求&#xff0c;然后它…

ashx一般处理程序

.NET里面webform的后缀是aspx WCF和WebService的后缀是asmx 然后今天拿到一个客户端代码&#xff0c;调用服务端&#xff0c;服务端后缀是ashx瞬间傻蛋了&#xff0c;.NET我不知道的组件真多。 四个疑问&#xff1a; 1、什么时候用 2、优缺点 3、简单实现机制 4、简单DEM…