【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的状态,所 ...
随机推荐
- 实测952Mbps!四路千兆网PCIe拓展方案,国产工业级!
测试环境说明 运行系统:Debian-11.8 评估板:TL3588-EVM(RK3588J) 模块:PCIe扩展2/4路千兆网口模块 方案:无锡沐创N500L-AM2C-DD.N500L-AM4C- ...
- Java 核心基础之static静态代码块和静态方法
static静态代码块和静态方法 static关键字 static修饰的方法或变量,优先于对象执行,所以内存会先有static修饰的内容,后有对象的内容 可以用来修饰类的成员方法.类的成员变量,还可以 ...
- Mybatis 一级缓存
Mybatis一级缓存介绍 什么是缓存 程序经常要调用的对象存在内容中,方法其使用时可以快速调用,不必去数据库或者其他持久化设备中查询,主要就是提高性能 Mybatis一级缓存 简介:一级缓存的作用域 ...
- mysql大数据表添加字段
方案一.老表数据迁移四部曲方案1.新建老表t_order_goods的备份表t_order_goods_bak,同时加一个字段:isVirtual 并给默认值2.迁移老表t_order_goods数据 ...
- PHP易混淆函数的区别及用法汇总(函数和方法的区别)
1.echo和print的区别PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作 ...
- scanf、cin及其优化、快读性能测试
为了让大家了解C++各种IO方式的性能,于是就有了这篇文章. 本次测试采取的数据均为 \(10^6\) 个不超过 \(10^8\) 随机正整数. 测试代码: #include<bits/stdc ...
- APK包的加固手段收集(浅)
目录 防止APK被调试 加壳 代码混淆: 检测调试器: 使用反调试技术: 环境检测: 使用Native代码: 多层防护: 防止APK被篡改 签名校验: V1 签名机制 V2 签名机制 V3 签名机制 ...
- 记一些java里的数据结构
0.Vector:过期的,被arraylist取代了 0.1Stack:也不建议使用 1.双向链表LinkedList:由list实现的接口类 2.队列Queue:操作为add remove elem ...
- 界面自动化测试录制工具,让python selenium自动化测试脚本开发更加方便
自动化测试中,QTP和selenium IDE都支持浏览器录制与回放功能,简单的来说就像一个记录操作步骤的机器人,可以按照记录的步骤重新执行一遍,这就是脚本录制.个人觉得传统录制工具有些弊端,加上要定 ...
- 安全可信,Solon v2.8.6 发布
Solon 框架! Java "纯血国产"应用开发框架.开放原子开源基金会,孵化项目.从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态. 追求: 更快.更小.更 ...