千家信息网

jmeter学习指南之详解jmeter线程组

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程下。所有的任务都是基于线程组。一、Threads (Users)线程 用户上图可以看到,jmeter有三个添加线程组的选
千家信息网最后更新 2025年12月02日jmeter学习指南之详解jmeter线程组

线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程下。所有的任务都是基于线程组。


一、Threads (Users)线程 用户

上图可以看到,jmeter有三个添加线程组的选项,名字不一样, 但是创建之后,其界面是完全一样的。

1、 setup thread group

一种特殊类型的ThreadGroup,用于在执行常规线程组之前执行一些必要的操作。在"setup thread group "下提到的线程行为与普通线程组完全相同。不同的是执行顺序---它会在普通线程组执行之前被触发。

应用场景举例:

A、测试数据库操作功能时,用于执行打开数据库连接的操作。

B、测试用户购物功能时,用于执行用户的注册、登录等操作。

2、teardown thread group

一种特殊类型的ThreadGroup,用于在执行常规线程组完成后执行一些必要的操作。在"teardown thread group "下提到的线程行为与普通线程组完全相同。不同的是执行顺序---它会在普通线程组执行之后被触发。

应用场景举例:

A、测试数据库操作功能时,用于执行关闭数据库连接的操作。

B、测试用户购物功能时,用于执行用户的退出等操作。

tips:

默认情况下,如果测试按预期完成,则TearDown线程组将不会运行。如果你想要运行它,则需要从Test Plan界面中选中复选框"Run tearDown Thread Groups after shutdown of main threads"。

-----------------------------------------------------------

可能你还是不太理解他们与普通的线程组有什么不同。但是如果你用过junit,想必你应该对setup ,teardown这两个字眼不陌生。

如果你熟悉loadrunner,那你应该知道loadrunner的脚本中除了 action里是真正的脚本核心内容,还有进行初始化操作的init脚本和测试完毕后对应的end脚本块。那么这里setup thread group 和 teardown thread group 就是分别指这两部分。

3、 thread group(线程组)

这个就是我们通常使用的线程。通俗的讲,一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值。


二、线程组基本设置

在线程组界面中可以设置以下数据,进行控制线程组:

1、取样器错误后要执行的动作:

继续:忽略错误,继续执行

Start Next Thread Loop: 忽略错误,线程当前循环终止,执行下一个循环。

停止线程:当前线程停止执行,不影响其他线程正常执行。

停止测试:整个测试会在所有当前正在执行的线程执行完毕后停止

Stop test now:整个测试会立即停止执行,当前正在执行的取样器可能会被中断。

这几个配置项控制了"当遇到错误的时候测试的执行策略"是否会继续执行。

2、设置线程数:

线程数也就是并发数,每个线程将会完全独立的运行测试计划,互不干扰。多个线程用于模仿对服务器的并发访问。

3、设置ramp-up period:

ramp-up period用于设置启动所有线程所需要的时间。如果选择了10个线程,并且ramp-up period是100秒,那么JMeter将使用100秒使10个线程启动并运行。每个线程将在前一个线程启动后10(100/10)秒后启动。

当这个值设置的很小、线程数又设置的很大时,在刚开始执行时会对服务器产生很大的负荷。

下图的线程配置中,5个线程,5秒启动时间,每个线程执行两次循环。那么每个线程之间启动延迟为 1 秒。




4、设置循环次数:

该项设置线程组在结束前每个线程循环的次数,如果次数设置为1,那么JMeter在停止前只执行测试计划一次。

5、Delay Thread creation until needed:

默认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。

三、线程组调度器设置

调度器配置可以更灵活的控制线程组执行的时间

1、持续时间(秒):

控制测试执行的持续时间,以秒为单位。

2、启动延迟(秒):

控制测试在多久后启动执行,以秒为单位。

3、启动时间:

控制测试在某个时间点启动。但这个配置会被"启动延迟"配置覆盖。

4、结束时间:

控制测试执行的结束时间。但这个配置会被"持续时间"配置覆盖。

如果不想立即执行执行,可以通过调度器控制测试执行的开始时间和结束时间。

当测试开始时,如果设置了调度器,JMeter将等待直到到了开始时间。在每个周期结束,JMeter将会检查是否到达结束时间,如果达到,停止运行;否则测试继续运行直到达到了重复限制。


线程 测试 时间 用户 控制 配置 运行 普通 数据 循环 功能 数据库 脚本 错误 调度 不同 相同 时候 次数 界面 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 设置内网共享数据库 网络技术开发图片 人工智能网络安全常识 网络安全专题讲课的简报 什么云服务器能装模拟器 软件开发 互联网开发方向 磐石网络技术公司本部在哪里 linux设置服务器时间 服务器电源线接口类型 联想中国网络技术有限公司 应该怎样防止网络安全 基础技术维护网络安全 手机游戏服务器编写 苹果无法链接服务器无法升级 工作室的服务器配置方案 大家说说在长沙软件开发工资 北京服务器虚拟化迁移 北京软件开发架构设计师工资 碧蓝航线一共多少服务器 复印机服务器是pc服务器吗 科研项目类别 软件开发 抖音视频服务器多少钱一台 国家网络安全等级三级 服务器登录说没有安全退出怎么办 计算机网络技术教程0601 网络安全理论与技术实验报告 把图片放到数据库表中 软件开发常见专业术语 越南网络安全立法 浪潮服务器按F几进pe系统
0