Jmeter 接口测试,参数值为列表,如何参数化?

最近在我的教学过程中,我的一个学生问了我一个问题,他们公司的一个接口参数值是列表,列表中值的数量有多有少,问我在 jmeter 中如何让这个参数的值进行参数化?

看到这种问题,你的第一反应是什么?

写 Java 代码?我相信,如果你有一定的程序语言基础,你肯定会想着写代码。因为代码对你来说,不是难事。但是,如果你不懂代码呢?

如果你不懂代码,哪你肯定就会想着用 jmeter 自带的 Random 函数。

但是,当你使用 Random 函数,去生成随机数的时候,如何生成 70 个随机数,用逗号连接,构成一个列表,这个事情难住你了。

下面,我就给不懂代码的同学,讲讲如何使用jmeter 现有的元件来实现这样一个需求。

首先,我们肯定知道,需要用 Random 函数和循环控制器。

在线程组下面添加一个循环控制器,循环控制器只需要设置一个循环次数就可以了。

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337

他的需求是至少 70 个,至于到底多少个没有说,所以,这个循环次数,我们就可以用 Random 随机函数,随机一个大于等于 70 的数字就可以

${__Random(70,79,)}随机函数中最大值,随便写大于 70 的数字。接下来就是造出列表中的第 1 个数。

定义什么元件来接收这个随机数字呢?用户定义变量 , 还是用户参数

听过我的课的同学,肯定都知道使用用户参数,如果不清楚,可以咨询我们的工作人员。

用户参数,是一个前置处理器,所以,我们需要添加一个取样器;我们目的是造数据,这个取样器并不需要发起请求,所以,取样器我们可以使用'调试取样器',生成如:

现在,运行脚本,你会发现,在查看结果树中,每个 '调试取样器' 看到 rd1 变量的值都不一样,但是,每次的值都只有 1 个。

进一步分析需求,需求中,还说,每个值之间用逗号分隔,那我们看下,是否可以在 rd1 这个变量中添加一个'逗号'呢。

添加了,运行,发起不管加载后面,还是在前面,都可以,jmeter 运行没有出错。

这个是什么意思呢?

我在一个函数变量的前面,或后面添加一个'逗号',居然,能正常!

'逗号',是一个字符吗?是!哪这个算不算,两个字符连接呢?

是的!jmeter 中,字符与字符相连,不需要用'+'号,可以直接写在一起,就连接了。

让 rd1 的值,前面或后面,加符号,可以直接相连,哪我们可不可以把 rd1 与自己相连接呢?有了想法,哪就赶紧行动吧。是不是,再'添加变量',定义值为rd1{rd1}?

运行!!!

发现,有 rd2 不管运行多少次,值都只有 2 个。

这是怎么回事呢?

我们来理解一下,变量 rd2 的值为 rd1{rd1} ,其实,是不是就是 rd2 的值,是调两次 rd1,把两个 rd1 连接在一起。如果这个能理解,哪是不是就能理解,不管我们循环多少次,rd2 的值都只有 2 个。

继续想。

会不会想到,rd2 的值用 rd1 与 rd2 自身连接?

运行!

这次,我们看到 rd2 的值,在循环此次不一样的时候,rd2 的值长度不一样,在递增。也就是说,这样,我们可以造出几十个类似的数据连接成的一个列表了。

但是,rd2 的值,最后一个是 ${rd2},这显然又不符合我们的要求。怎么办?

是不是想着又给 rd2 定义一个值?哪这次,继续用用户参数 ,还是用用户定义变量呢?

这次,我们用用户定义变量

楞楞的分不清 用户定义变量 和 用户参数 的用法,可以联系我们的工作人员

运行!

现在,不管我们运行多少次,都能正常生成 rd2 的值了。

在这位同学的接口中,直接使用变量引用 ${rd2},是不是就搞定了。很简单吧!不过,如果,你是一个追求完美主义者。

下面两个问题,你可以思考下,在评论区留言和我探讨一下哦。

问题一:

上述这种方法,生成的 rd2,其实是要比循环控制器的循环次数多 1 的,也就是说,如果循环 70 次,实际 rd2 是有 71 个值的。知道什么原因吗?怎么验证吗?

问题二:

上述的方法,rd2 的值比循环次数多 1,如何使 rd2 值的数量与循环次数相同?

相关推荐
橘颂TA40 分钟前
【剑斩OFFER】算法的暴力美学——外观数列
算法·leetcode·职场和发展·结构与算法
第二只羽毛1 小时前
主题爬虫采集主题新闻信息
大数据·爬虫·python·网络爬虫
plmm烟酒僧1 小时前
TensorRT 推理 YOLO Demo 分享 (Python)
开发语言·python·yolo·tensorrt·runtime·推理
天才测试猿1 小时前
Postman中变量的使用详解
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
帕巴啦1 小时前
Arcgis计算面要素的面积、周长、宽度、长度及最大直径
python·arcgis
AI小云1 小时前
【数据操作与可视化】Matplotlib绘图-生成其他图表类型
开发语言·python·matplotlib
MediaTea2 小时前
Python 第三方库:plotnine(类 ggplot 的 Python 数据可视化库)
开发语言·python·信息可视化
路边草随风2 小时前
python 调用 spring ai sse mcp
人工智能·python·spring
Dr.Kun3 小时前
【鲲码园Python】基于pytorch的鸟品种分类系统(25类)
pytorch·python·分类
是有头发的程序猿3 小时前
Python爬虫实战:面向对象编程在淘宝商品数据抓取中的应用
开发语言·爬虫·python