Jemeter--关联接口压测

news2024/10/6 16:19:48

Jemeter–独立不变参接口压测
Jemeter–独立变参接口压测
Jemeter–关联接口压测

案例分析

比如:有个波次复核接口很慢,优化后需要压测。但是波次复核接口数据是由另外两个接口(配单详情、内盒信息)的数据组合而来,而内盒信息又依赖于配单中返回的数据cardCode来查询。那应该如何压测呢?

接口关系:
波次复核接口数据 依赖 配单详情数据 +内盒信息数据 组合
内盒信息数据 依赖 配单详情数据

两种方法

1、如果数据库有足够数据,将关联符合的订单的配单的id查询出来,导出csv,先执行配单详情接口查询并把返回的数据作为变量,再根据变量数据执行内盒信息接口并把返回需要用到的数据作为变量。
最后从变量信息中组合数据调用波次复核接口

2、如果数据库没有什么数据,就需要再添加前置生成数据的接口,比如生成订单接口、组波接口、生成配单接口,然后把配单id保存为变量,再执行配单详情接口查询并把返回的数据作为变量,再根据变量数据执行内盒信息接口并把返回需要用到的数据作为变量。最后从变量信息中组合数据调用波次复核接口

(PS: 如果要保持测试库数据干净,可以把生成订单接口、组波接口、生成配单接口放到setUp线程组,然后把配单id保存为全局变量。然后在业务线程组执行配单详情接口、内盒信息接口、波次复核接口等业务接口,最后在TearDown线程组里执行删除生成的业务的所有数据逻辑,嗯,有点自动化测试的味道)

注意因为有依赖关系注意接口运行的顺序性,保证先执行的接口在前面。

下面选择第一种方案,第二种对业务来说多了很多接口过于麻烦了

CSV方案实现

1、创建公共组件

线程组、头部管理器、数据库筛选过的csv数据文件、结果树等监听器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、创建http1配单详情接口

配置csv文件中的 bill_code 变量去查询配单详情,可以加个http1标志,方便知道这个接口是第一个需要执行的
在这里插入图片描述

3、提取配单详情返回Json数据变量

右击http1添加json提取器(接口交互是json的方式)
在这里插入图片描述
配置需要提取的变量

  • 有多少个变量,这四行的数量是一样的
  • $.是根据你接口的返回json层级来的
    在这里插入图片描述
    我的接口返回是直接{}里面就是数据,所以直接 $.字段
    在这里插入图片描述
    如果返回的形式这样
    在这里插入图片描述
    对应的配置
    在这里插入图片描述

4、添加调试取样器

右击线程组,添加Debug Sampler 取样器,用来检测、获取变量的属性值
在这里插入图片描述
可以先执行这个接口,察看结果树,可以看到自定义的变量值都可以获取到了(可以没有获取到证明接口中哪里设置的有问题)
在这里插入图片描述

5、创建http2内盒信息接口

使用接口http1中的变量${cardCode} 获取内盒信息接口
在这里插入图片描述

6、提取内盒信息接口Json数据变量

添加http2的json提取器,内盒变量设置
在这里插入图片描述
注意: 返回数据套了两层[{}]括号,对应变量 $. . 两个点 属性值
在这里插入图片描述

7、创建http3复核接口

在body体中,使$引用对应的变量充当参数
在这里插入图片描述

8、调整整体接口、组件如下顺序

在这里插入图片描述

9、执行压测

察看结果树

在这里插入图片描述
汇总报告
在这里插入图片描述
聚合报告
在这里插入图片描述
TPS
在这里插入图片描述

10、总结

可以发现,接口http1、http2、http3是并发依次调用的,即在不同线程里是依次调用的,而且csv数据由线程共享的,不同线程不会取同一行的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人脸重建迁移攻击FRTA:绕过各种未见过的面部识别系统

随着人脸识别系统在安全关键环境中的部署日益增多,威胁行为者正在开发针对各种攻击点的复杂攻击策略。在这些攻击策略中,面部重建攻击是一个主要的威胁。面部重建攻击的主要目的是创建伪造的生物特征图像,这些图像类似于存储的生物特征模板中…

更改Anki笔记所应用的模板及其所属的牌组

对于Anki中的笔记,录入时总会为它指定模板以及所属的牌组,但是,如果发生教材版本变更,我们可能会用新的模板添加笔记,也会使用新的牌组,但是原来所做的笔记中也有一些完全可以继续使用,如果可以…

Java 应用启动时出现编译错误进程会退出吗?

背景 开发的尽头是啥呢?超超级熟练工! 总结最近遇到的一些简单问题: Java 应用的某个线程,如果运行时依赖的 jar 不满足,线程是否会退出?进程是否会退出?Netty 实现 TCP 功能时,换…

Django创建项目(1)

运行 注意 在本次创建Django项目时,出现了一点小问题,由于我之前pip换源过,换源用的是http,结果在创建时,pip只支持https,所以如果出现创建项目失败的问题,那么有可能是因为换源的问题&#xf…

C++左值/右值/左值引用/右值引用

1)C入门级小知识,分享给将要学习或者正在学习C开发的同学。 2)内容属于原创,若转载,请说明出处。 3)提供相关问题有偿答疑和支持。 左值和右值的概念: 早期的c语言中关于左值和右值的定义&a…

基于轨迹信息的图像近距离可行驶区域方案验证

一 图像可行驶区域方案 1.1 标定场景 1.2 标定步骤 设计一定间距标定场,在标定场固定位置设置摄像头标定标识点。主车开到标定场固定位置录制主车在该位置各个摄像头数据,通过摄像头捕获图像获取图像上关键点坐标pts-2d基于标定场设计,计算…

Windows上使用Navicat连接ubuntu上的mysql8报错:10061和1130

问题一:can’t connect to mysql server on ‘192.168.xxx.xxx’(10061) 解决: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,bind-address绑定了登陆的IP,把这两行代码注释掉,然后重启mysql。 问题二:1…

WMS系统对小型海外仓有哪些好处?规模不大有必要用吗?

作为一家想持续发展的海外仓,虽然目前的规模还不大,但是也需要不断优化仓库的作业效率。实施海外仓WMS系统是个不错的选择。 海外仓WMS系统的实施,不仅可以提升库存管理水平和一件代发等核心业务的效率,还能提升工人的生产效率&a…

智能本质:马毅教授对大模型和白盒理论的观点

引言 在人工智能的快速发展中,我们见证了从简单的自动化工具到复杂的智能系统的演变。随着深度学习技术的突破,大模型如GPT系列已经能够执行从文本生成到图像识别等多样化任务。然而,这些模型虽然在功能上取得了显著进展,但其内部…

洛谷 P1011 [NOIP1998 提高组] 车站

题目描述 火车从始发站(称为第 1 站)开出,在始发站上车的人数为 a,然后到达第 2 站,在第 2 站有人上、下车,但上、下车的人数相同,因此在第 2 站开出时(即在到达第 3 站之前&#x…

存储器类型介绍

存储器 ROM 我们一般把手机和电脑的硬盘当作ROM。ROM的全称是:Read Only Memery,只读存储器,就是只能读不能写的存储器。但是现在的ROM不仅可以读,还可以写数据,比如给手机下载APP,就是给手机上的ROM写数据…

闲鱼商品搜索关键词优化攻略

一、闲鱼商品详情关键词搜索概述 闲鱼作为国内最大的二手交易平台之一,其商品搜索功能对于买家和卖家来说至关重要。商品详情页中的关键词搜索功能,可以帮助买家更快速地找到心仪的商品,也可以帮助卖家提高商品的曝光度,从而促进…

半导体制造企业 文件共享存储应用

用户背景:半导体设备(上海)股份有限公司是一家以中国为基地、面向全球的微观加工高端设备公司,为集成电路和泛半导体行业提供具竞争力的高端设备和高质量的服务。 挑战:芯片的行业在国内迅猛发展,用户在上海…

版本控制系统:Git 纯应用(持续更新);

基本操作 ctrl上行键:上次代码 本地仓库:Git init 新建文件:touch xxxx.xxx 查看状态:Git status 文件从工作区——暂存区:Git add ./文件名(.是通配符代表所有) 暂存区——仓库:Git commit -m &…

shark云原生-日志体系-filebeat高级配置(适用于生产)

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置1.2.1. Providers 提供者1.2.2. Providers kubernetes templates1.2.3. 基于提示(hints)的自动发现支持的 **hints**的完整列表&…

2024年07月03日 Redis部署方式和持久化

Redis持久化方式:RDB和AOF,和混合式 RDB:周期备份模式,每隔一段时间备份一份快照文件,从主线程Fork一个备份线程出来备份,缺点是会造成数据的丢失。 AOF:日志模式,每条命令都以操作…

【操作与配置】VSCode配置C/C++及远程开发

MINGW环境配置 进入网站,如下图下载:MinGW Distro - nuwen.net 运行安装包,使其安装在你指定的位置 将MinGW的bin目录添加到系统的环境变量PATH中 使用 winx 选择进入“系统”点击“高级系统设置”在“系统属性:高级”窗口中&am…

6 矩阵相关案例

矩阵计算在CUDA中的应用是并行计算领域的典型场景 ; 矩阵算法题通常涉及线性代数的基础知识,以及对数据结构和算法的深入理解。解决这类问题时,掌握一些核心思想和技巧会非常有帮助。以下是一些常见的矩阵算法题解题思想: 动态规划…

解析MySQL核心技术:视图的实用指南与实践案例

在数据库管理中,MySQL视图(View)是一种强大的功能,利用它可以简化复杂查询、提高数据安全性以及增强代码的可维护性。本篇文章将详细介绍MySQL视图的相关知识,包括视图的创建、修改、删除、使用场景以及常见的最佳实践…

Build a Large Language Model (From Scratch)附录D(gpt-4o翻译版)

来源:https://github.com/rasbt/LLMs-from-scratch?tabreadme-ov-file https://www.manning.com/books/build-a-large-language-model-from-scratch