性能测试工具 Jmeter 设置仅一次控制器的意义何在,求大佬给解释下。

一只咸鱼 · 2021年12月07日 · 最后由 一只咸鱼 回复于 2021年12月09日 · 4331 次阅读

首先我说一下业务需求:
superadmin 用户登录系统后,在某个分组下批量创建 200 个子用户。
我自己创建的脚本:
因为添加用户接口请求中,headers 中需要登录接口返回的 token 作为认证的,所以就创建了仅一次控制器,并在仅一次控制器下设置了 superadmin 的登录接口,然后在仅一次登录控制器外创建了注册用户接口。

但是我通过执行脚本,发现如果我的线程组设置为 200-0-1 时和设置为 200-0-1 时跑出的结果有很大的落差,
设置为:200-0-1 时确实是对登录接口只执行了 1 次,结果如下:

设置为:1-0-200 时登录接口和注册接口都执行了 200 次,结果如下:

通过对比 2 个结果,发现吞吐量差的挺多,那我这个仅一次控制器的设置虽然和业务流程一样(登录一次就行),但是这样有什么意义?是我的脚本编写有问题吗?还是我 200-0-1 和 1-0-200 哪个结果才正确呢?
求大佬回答,感激。

共收到 10 条回复 时间 点赞

线程组的设定,直接截个图吧,200-0-1 没看懂具体每个数值的含义。

另外,你的截图只看到了 if 控制器,没见到哪个是仅一次控制器,也标识清楚吧。

业务需求不太清晰,猜测单线程循环 200 次可能更符合实际使用场景
另外你 200 线程并发循环 1 次和单线程循环 200 次 吞吐量当然不一样
仅一次控制器是指同一线程多次循环中只执行一次,多个线程之间是独立的

9楼 已删除
陈恒捷 回复

好的 ,感谢回复!我立马详细给您截图
线程组的设定:
1、200-0-1

2、1-0-200


3、

Tester_谜城 回复

感谢回复!我再详细点说下需求,主要就是想测一下批量创建用户这个场景下的性能,业务流程上,admin 用户登录->登录成功后在某一个分组下依次创建 200 个子用户

一只咸鱼 回复

登录成功后在某一个分组下依次创建 200 个子用户
不太理解你的在某一个分组下什么意思,如果是登录成功后循环调用创建子用户 200 次就可以的话,单线程循环 200 次即可
用你的 1-0-200 的设置

Tester_谜城 回复

某一分组其实可以忽略,只是业务上需要创建一个分组,分组是为了区分组用的。
用我的 1-0-200 和 200-0-1 的区别是 1-0-200,200 次循环内,admin 只登录了一次,注册接口请求了 200 次,200-0-1 是 admin 登录和注册都循环了 200 次,这两个设置的吞吐量差那么多,哪个才是正确的呢

一只咸鱼 回复

200-0-1 表示 200 线程执行你的脚本一次,类似 200 个人,同时执行脚本一次,包括登录和注册
1-0-200 表示 1 个线程,执行登录一次(仅一次控制器生效),然后循环执行注册 200 次,根据你的需求,应该是 1-0-200 更符合实际场景

Tester_谜城 回复

好的 感激~

一只咸鱼 回复

8 楼正解。你这个批量添加用户的场景应该是一个线程循环 200 次,而不是 200 个线程并行执行。

陈恒捷 回复

好的 多谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册