一、测试计划

1、界面展示

测试计划是测试脚本的容器,主要是对测试脚本做总体设置。它定义了测试要执行什么,怎么执行(执行的)。其界面如下图所示:

 

2、设置用户定义变量

在测试计划中定义的变量是在整个测试计划中都可以使用的,是全局变量。当很多地方都需要用到一个变量时,我们可以在测试计划中添加用户变量,然后在其他元件中使用${变量名}来调用变量。如下图:我们可以定义SERVER为jmeter.apache.org,测试计划的其他元件可以用${SERVER}来引用该变量;

 3、设置线程的执行顺序

(1)设置独立运行每个线程组

默认情况下,线程组中的线程是并发执行的,当然也可以进行设置,勾选测试计划的第一个复选框(独立运行每个线程组),勾选后,线程组串行执行,即按照顺序执行,执行结果的顺序跟测试计划的顺序一致。

(2)设置主线程组结束后执行tearDown线程组:

 4、设置函数测试模式

函数测试模式:勾选该选项后,执行测试时将会保留所有的响应数据和取样数据,这会增加测试运行时的资源需求,对性能有不良影响。只有当你需要记录每个请求从服务器取得的数据文件时才需要选择函数测试模式。如果只想对某个取样器结果关注,那么只对那个取样器增加监听器更好些。

5、设置添加目录或者jar包到classpath

此项设置主要是为了添加一些外部jar包文件,例如,当我们智联数据库进行测试时,如果不添加JDBC驱动就会报如下错误,而在测试计划中添加jar包后,问题得以解决。

注:修改后,需要重启jmeter,才能生效。

二、线程组

1、线程相关概念

(1)概念

  • 进程:一个正在执行的程序就对应一个进程
  • 线程:进程中的执行线索(一个进程有多个执行线索)
  • 线程组:按照线程性质对线程进行分组
  • 并发执行:多个线程同时执行;特点:执行结束的顺序和线程的启动顺序不一定一致
  • 顺序执行:按照线程的启动顺序挨个执行

(2)在Jmeter中三者的关系:

进程有多个线程组,线程组可以有多个线程。

  • 进程----测试计划
  • 线程组----测试计划下的线程组
  • 线程----线程组属性的线程数(相当于用户)

2、界面展示

线程组是测试计划执行的入口点,所有的逻辑控制器和取样器必须存在于线程组下,其他的元件根据位置不同,其作用的取样器范围也不同。线程组的每个线程都独立运行测试脚本。一个线程就相当于一个用户,通过多个线程并发执行实现并发性能测试。线程组可以控制线程数,启动时间和测试执行时间。其界面展示如下图所示:

 3、设置线程组属性  

  • 线程数:要模拟的用户数,用户执行相互独立,例如要模拟100个用户访问系统,那么就设置为100。
  • Ramp-up时间(秒):在指定时间内启动所有线程。若为0或未指定,则表示立即启动所有线程。若为非0值,则每隔“线程数/秒数”建立了一个线程。该值不能太小,否则服务器过载,结果不可靠。也不能过大,否则最后一个线程还未启动,第一个线程已经结束了。
  • 循环次数:指线程执行的循环次数,即单个用户访问的次数。
  • 延迟创建线程直到需要:直到线程开始取样时才创建。这样可以支持更多的线程,但又不会有太多是同时处于活动状态;

 4、设置取样器错误后要执行的动作:

  • 继续:忽略错误,继续执行;
  • 启动下一进程循环:执行线程的下一个循环;
  • 停止线程 :当前线程停止执行,不影响其他线程正常执行;
  • 停止测试 : 整个测试会在所有当前正在执行的执行完后停止;
  • 立即停止测试: 整个测试会立即停止执行,当前正在执行的取样器可能会被中断。

5、设置调度器

设置调度器后,线程组会在根据调度器设置的限制条件执行。

  • 持续时间:表示脚本持续运行的时间,以秒为单位,例:如果你要让用户持续不断登录3分钟,持续时间应该设置为180;
  • 启动延迟:表示脚本延迟启动的时间(单位为秒)。例:你希望10分钟后执行线程组,线程组持续执行3分钟,你可以将启动延迟设置为600,持续时间设置为180。

注:为了保证线程组持续时间能够达到持续时间,建议将循环次数勾选为永远。否则循环次数达到,但时间还未到持续时间,线程组也会结束。

三、特殊的线程组

除了普通的线程组外,还有两种特殊的线程组:setUp线程组和tearDown线程组。它们与普通线程组区别在于,setUp线程在普通线程执行前自动触发执行;而tearDown线程组在主线程结束后执行。

  • setUp线程组----可以用于测试准备,加载程序主体执行所需的资源。比如:测试前创建测试用户等。
  • Teardown线程组-----可以用于测试清理工作或在程序正式关闭之前将数据保存进内存。比如:测试后删除测试用户等。

Jmeter基础003----Jmeter组件之测试计划和线程组的更多相关文章

  1. 性能测试工具JMeter 基础(六)—— 测试元件: 线程组

    线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...

  2. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

  3. 转 2 jmeter常用功能介绍-测试计划、线程组

    2 jmeter常用功能介绍-测试计划.线程组   1.测试计划测试用来描述一个性能测试,所有内容都是基于这个测试计划的. (1)User Defined Variables:设置用户全局变量.一般添 ...

  4. 性能测试工具JMeter 基础(三)—— 创建测试计划

    如何创建一个完整的测试计划? 安装好JMeter后,通过根目录下的bin目录中的jmeter.bat启动JMeter 添加线程组(Thread Group) 在 Test Plan 鼠标右键 Add- ...

  5. 【转】Jmeter基础之——jmeter基础概念

    JMeter 介绍:一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含 ...

  6. 2 jmeter常用功能介绍-测试计划、线程组

    1.测试计划测试用来描述一个性能测试,所有内容都是基于这个测试计划的. (1)User Defined Variables:设置用户全局变量.一般添加一些系统常用的配置.如果测试过程中想切换环境,切换 ...

  7. JMeter非GUI方式运行时动态设置线程组及传参

    http://blog.csdn.net/selingchen/article/details/48106517 在使用JMeter进行性能测试自动化时,可能会有如下需求: 1.指定运行多少线程,指定 ...

  8. Jmeter系列(14)- Setup与tearDown线程组

    与普通线程组区别 #Setup线程组:在普通线程组执⾏前触发 #tearDown线程组:在普通线程组执⾏后触发 线程组属性配置详情完全⼀致 使⽤策略建议 #Setup 线程组 – 压测执⾏准备阶段,准 ...

  9. 『动善时』JMeter基础 — 8、JMeter主要元件介绍

    目录 1.测试计划(Test Plan) 2.线程组 3.取样器(sampler) 4.逻辑控制器(Logic Controller) 5.配置元件(Config Element) 6.定时器(Tim ...

随机推荐

  1. EventBus/EventQueue 再思考

    EventBus/EventQueue 再思考 Intro 之前写过两篇文章,造轮子系列的 EventBus/EventQueue,回想起来觉得当前的想法有点问题,当时对 EvenStore 可能有点 ...

  2. 【github技巧2】下载包加速

    打开代下网站:https://g.widora.cn 直接输入     https开头的github地址 或需下载包地址的链接 获取链接 下载压缩包 备注:压缩包格式为tar,需要解压

  3. 如何快速全面掌握Kafka?这篇文章总结了

    Kafka 是目前主流的分布式消息引擎及流处理平台,经常用做企业的消息总线.实时数据管道,本文挑选了 Kafka 的几个核心话题,帮助大家快速掌握 Kafka,包括: Kafka 体系架构 Kafka ...

  4. DevOps知识点——3C知多少

    CI / CD是任何DevOps操作的两大基石,这是一种开发软件的方式,旨在生产快速而强大的软件,随时以可持续的方式发布更新. 当例行更改代码时,开发周期会更加频繁.更有意义且更快速.通过此过程,我们 ...

  5. Java 获取IP工具类、Vo类整理记录

    前言 日常开发中,获取ip是常用的功能,本文记录如何在Java中获取本机外网ip.地理位置,访问用户的外网ip.地理位置,以及指定外网ip的地理位置: 代码编写 1.获取访问用户外网ip,我们从访问者 ...

  6. BZOJ1001 狼抓兔子 题解

    裸的最小割,转化成最大流即可. #include <bits/stdc++.h> int n,m; int S,T; int mincost; int head[6001000],tot= ...

  7. # # # Vue的分环境打包

    我们使用Vue-cli的默认环境是只有dev和prod两种环境,在开发中我们的项目一般是开发版.测试版.pre版.Prod版.我们一般是在源码中API地址中修改后然后打包. ###1.首先安装cros ...

  8. 微信小程序支付(企业支付给用户零钱)

    内容摘要:本案例客户端支付方式为微信小程序支付(JSAPI).商户运营一段时间后,在微信商户平台开通企业支付服务后,即可调用微信支付提供的企业付款接口将佣金等金额通过微信零钱返现给C端用户零钱. 服务 ...

  9. java实现拉丁方块填数字

    "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用 ...

  10. ArrayDeque使用&实现原理分析

    ArrayDeque使用&实现原理分析 学习Okhttp实现源码时,发现其任务分发时用到了ArrayDeque.因此了解一下ArrayDeque的使用方式和实现原理. 一.Deque dequ ...