【Jmeter】之批量处理多接口压力测试
一、需求前提
1、有以下三个步骤:
①创建单据
②审核单据
③确认单据
让三个相关接口进行一连串批量请求操作,直到所有批量数据确认单据成功。
二、测试计划
需要说明的是,因为每个接口可能处理的不太一样,所以不能把所有的HTTP接口请求都放到一个线程组里,需要创建多个线程组。需要勾选一个选项,否则所有的接口串联不起来。

三、线程组
根据需求分析,创建三个线程组

1、创建单据线程组
目录结构如下:

①HTTP信息头管理器

需要添加信息头:
Authorization 【token】
token如何获取,通过F12或者抓包工具,随意请求一个接口获取token

②CSV 数据文件设置
- 【变量名称】:通过读取CSV文件,获取每一个参数变量的值

- 【文件名】:导入CSV文件的路径
其他的不变
④HTTP请求
请求参数里换成${XXX}变量写法,对应CSV文件设置。
其他参数一一对应填写进去。
⑤监听器
添加结果树和聚合报告,获取其他

2、审核单据线程组
目录结构如下:

①HTTP信息头管理器
同上操作
②HTTP请求
通过上面的目录可知有两个请求,是因为审核接口的时候“order_ids”是获取列表数据的id,所以需要查询接口获取到列表id的值,然后两个接口互相传送

查询接口会查出来多条数据,但是如何提取每一条数据的id呢,先把结果树选择“JSON Path Tester”,然后再在“JSON Path Expression”里进行查询测试,输入【$.data[*]..id】
$.data[*]..id,代表的意思是
.代表一层结构
data[*]代表所有data参数
..id代表两层下的id

返回结果值:Result[index] = id号
③JSON提取器

④调试后置处理程序
加上这个元件,请求接口后还有一个结果树生成,调试的结果

⑤循环控制器
把上面的调试参数放到循环控制器中,代表获取循环的次数

最后把“id_XXX”的值循环传入请求参数中
${__V(id_${__counter(,)},)}

【转】因为要把JSON提取器中匹配到的id_1,....id_22循环传递给“用户流水记录”,
__counter为jmeter自带的一个计数函数,${__counter(,)}引用这个函数,每运行1次+1,从1开始;
id_${__counter(,)}运行第1次id_1,运行第2次id_2,以此类推,直到运行到循环次数id_22
__V为jmeter自带的一个嵌套变量函数,运行第1次id_${__counter(,)}为id_1,${__V(id_${__counter(,)},)}则为${id_1},值80;以此类推,一直循环到${id_22}
参考文章《Jmeter之JSON提取器应用》
3、确认单据线程组

跟“2、审核单据线程组”同理。
最终结构如下:

四、附录
①感谢:老陈酒~~的《jmeter之多个线程组顺序执行操作》***
②感谢:豆姐姐的《Jmeter之JSON提取器应用》*****
【Jmeter】之批量处理多接口压力测试的更多相关文章
- mac下 JMeter 4.0 进行多用户接口压力测试
1.最近在做公司的内部系统,需要进行多用户压力测试,于是上网在官网下载了Jmeter 压缩包,并放在指定的目录解压,打开解压后文件夹到bin目录下: 执行sh jmeter Jmeter就启动起来了 ...
- JMeter:生成漂亮的接口/压力测试的HTML报告
JMeter生成HTML网页报告(非gui模式操作) 我们做性能测试的时候会经常使用一些性能测试工具,比如loardrunner和jmeter,我个人比较喜欢Jmeter这个工具,jmeter之前版本 ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
- 接口压力测试--Jmeter
1.Jmeter简介 JMeter就是一个测试工具,相比于LoadRunner等测试工具,此工具免费,且比较好用,但是前提当然是安装Java环境: JMeter可以做 (1)压力测试及性能测试: (2 ...
- 使用Loadrunner进行http接口压力测试
业务描述: 在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回. 本文就讲述使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: ...
- Python开发【笔记】:接口压力测试
接口压力测试脚本 1.单进程多线程模式 # #!/usr/bin/env python # # -*- coding:utf-8 -*- import time import logging impo ...
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...
- JMeter做http接口压力测试
测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做压力测试的时候就是混合场景,需要多个 ...
- JMeter接口压力测试课程入门到高级实战
章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...
- JMeter进入接口压力测试
关键字: Jmeter.单接口.压力测试.插件监听.服务器端 摘要: 使用Jmeter对单个接口进行压力测试:监听并发量对接口响应时间.服务器资源占量.Jmeter本身只能获取到Tomcat的状态,所 ...
随机推荐
- VulnHub_DC-6渗透流程
DC-6 kali:192.168.157.131 靶机:192.168.157.150 修改host文件,添加192.168.157.150 wordy不然解析不了域名 信息收集 发现是WordPr ...
- 从Java开发者到.NET Core初级工程师学习路线:C#语言基础
1. C#语言基础 1.1 C#语法概览 欢迎来到C#的世界!对于刚从Java转过来的开发者来说,你会发现C#和Java有很多相似之处,但C#也有其独特的魅力和强大之处.让我们一起来探索C#的基本语法 ...
- VSCode如何设置Vue前端的debug调试
vscode在调试vue.代码时,如何进行debug? 1.安装Chrome Debug插件. 2.在launch.json中,将url修改成你前端项目的路径: 1 { 2 // Use Intell ...
- 国内版Unity 2023编辑器无法切换到DX12模式的解决方法
2024.7.4更新:至6000.0.5f1c1,此问题已修复 在{安装目录}\Editor里(也就是Unity安装的根目录)建立一个名叫D3D12的文件夹. 去{安装目录}\Editor\Data\ ...
- [oeasy]python0011_ 字符序号_ordinal_ord
序号(ordinal) 回忆上次内容 hello world 不是从来就有的 来自于unix和c 虽然我们今天有各种先进的学习手段 最早的高级语言学习是从最早的那张打字机用纸 ...
- 关于导入react native项目导致运行异常的那些事
从git上导入公司的项目,在本地运行的时候,项目无法运行.sdk,jdk,node都是使用公司规定的版本,项目中的local.properties文件sdk.dir路径也换成了自己本地的目录,结果就在 ...
- JMeter 配置元件之按条件读取CSV Data Set Config
实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的,需要压测某个接口(取消分配接口),请求这个接口之前,需要先登录系统(物流WMS系统),并在登录后,选择并进入需要操作的仓库,然后 ...
- Python 实现Excel和TXT文本格式之间的相互转换
Excel是一种具有强大的数据处理和图表制作功能的电子表格文件,而TXT则是一种简单通用.易于编辑的纯文本文件.将Excel转换为TXT可以帮助我们将复杂的数据表格以文本的形式保存,方便其他程序读取和 ...
- c++ 17 demo
1 // Cpp.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. 2 // 3 4 #include <iostream> 5 #includ ...
- 从DDPM到DDIM(四) 预测噪声与后处理
从DDPM到DDIM(四) 预测噪声与后处理 前情回顾 下图展示了DDPM的双向马尔可夫模型. 训练目标.最大化证据下界等价于最小化以下损失函数: \[\boldsymbol{\theta}^*=\u ...