千家信息网

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

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程下。所有的任务都是基于线程组。一、Threads (Users)线程 用户上图可以看到,jmeter有三个添加线程组的选
千家信息网最后更新 2024年11月26日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安全错误 数据库的锁怎样保障安全 软件开发转数据库 聊城软件开发工作多少钱 小型机械软件开发论文免费 网络技术都是包括什么 本地电脑访问远程服务器文件夹 腾讯软件开发技术岗位 美篇图文网络安全 家里架设服务器有用吗 计算机网络技术是做什么的 教育网络安全平台作业答案 网络安全体系构建包括 长沙百威网络技术有限公司 安徽专升本网络技术能考哪 支付宝香港网络技术有限公司 记者日记软件开发 网络技术属于哪个学科 数据库服务器不可用 滨州工厂库存软件开发 网络安全中igp什么意思 小学生网络安全建议 网联天下网络技术有限公司 天津高科技软件开发服务咨询报价 学校服务器一般都是什么cpu 虹口区会计软件开发销售价格 网站设计数据库教材 番禺游戏软件开发 国家网络安全网评 形势与政策论文网络安全 上海卿钊互联网科技有限公司 湖北电子软件开发条件
0