微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jmeter2----测试计划和线程组

一、测试计划

启动jmeter时,会认建好一个测试计划,启动一个jmeter只有一个测试计划

在这里插入图片描述

要用到数据库时,在“添加目录或jar到Classpath”点击预览,添加下载好的JDBC驱动,注意jar包的版本要与数据库对应,MysqLjar包下载地址:https://dev.MysqL.com/downloads/connector/j/

二、线程组

在这里插入图片描述

上图可以看到,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”。

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

    在这里插入图片描述

thread group分为三个板块:

  1. 取样器错误后要执行的动作:
    继续:忽略错误,继续执行
    Start Next Thread Loop: 忽略错误,线程当前循环终止,执行下一个循环。
    停止线程:当前线程停止执行,不影响其他线程正常执行。
    停止测试:整个测试会在所有当前正在执行的线程执行完毕后停止
    Stop test Now:整个测试会立即停止执行,当前正在执行的取样器可能会被中断。

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

  1. 线程属性
    线程数:虚拟用户个数,也是并发数,每个线程将会完全独立的运行测试计划,互不干扰。
    Ram-Up Period(in seconds): 启动所有线程所需要的时间。
    循环次数:字面意思,这个线程组循环几次
    Delay Thread creation until needed:认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建
  2. 调度器:
    可以更灵活的控制线程组执行的时间

最后介绍几个可拓展线程组性能测试会用到
1、Concurrency Thread Group(递增式并发线程组)
这个可以模仿递增式并发(只能递增不能递减),并可设置递增次数、递增时长、到达目标递增数量保持时长等等:
参数解释:
· Target Concurrency:目标并发(总线程数)
· Ramp Up Time:加速时间(总加速时长)
· Ramp-Up Steps Count:加速步骤计数(总加速/递增次数
· Hold Target Rate Time:保持目标速率时间(到达总线程数后持续时长)
· Time Unit:时间单位(分钟或者秒)
· Thread Iterations Limit:线程迭代次数限制(循环次数
· Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);

在这里插入图片描述

这意味着:
3分钟除以5步,每步0.6分钟;100个用户除以5步,每步20个用户;每0.6分钟将添加20个用户,直到达到100个用户,达到100个线程后,所有这些线程将继续运行,并一起打到服务器6分钟;

2、Stepping Thread Group(逐步线程组)
这个可以模仿递增式并发(不但递增还可以递减),并可设置递增次数、递增启动延迟、递增时长、到达目标递增数量保持时长等等:

在这里插入图片描述

参数解释:
1、线程组最大用户数:100个
2、初次加载用户前等待时间:10秒,此时没有用户进入
3、第一次加载用户数:10个用户开始
4和5:每隔10秒加10个用户
6、ramp-up在几秒内启动线程组
7、持续压测60秒,一分钟
8、和9:退用户,每10秒退出10个用户

3、bzm - Arrivals Thread Group(bzm-到达线程组)
跟Concurrency Thread Group线程组功能作用大同小异。参数解释:
· Target Rate:目标线程数(总线程数)
· Ramp Up Time:所需多少加载时间(总加速时长)
· Ramp Up Steps Count:所需多少个加载梯次(总递增/加速次数
· Hold Target Rate Time:持续运行时间(到达总线程数后持续时长)
· Time Unit:可以选择用分钟还是秒来做单位
· Thread lterations Limit:线程迭代次数限制。如果我们只需要运行每个用户一次以模拟用户的实际行为,则可能会很有用。在我们的例子中,该字段为空,因此每个用户将运行不确定的迭代,直到调度结束。
· Log Thread Status into File:将线程状态记录到文件
· Concurrency Limit:最大并发数限制。以避免出现内存不足的问题。在我们的例子中是1000,这是一个很大的数字。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐