一、测试计划

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. 【Redis】String应用场景

    单值缓存 SET key value GET key 对象缓存 SET user: value(json格式数据) MSET user::name value1 user::balance value ...

  2. tomcat——启动项目报错:java.lang.IllegalStateException

    java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' befo ...

  3. mysql-connector-java 6版本的jdbc连接问题

    使用新版本6的jdbc驱动,会出现下面的问题 Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The s ...

  4. MySQL知识-redis实例

    规划.搭建过程:6个redis实例,一般会放到3台硬件服务器注:在企业规划中,一个分片的两个分到不同的物理机,防止硬件主机宕机造成的整个分片数据丢失.端口号:7000-7005 # 1. 安装集群插件 ...

  5. (三)vue数据绑定及相应的命令

    vue数据绑定及相应的命令 {{ Text }} 双括号进行数据渲染 动态绑定数据 例如:{{message}} data: { return{ message: 'Hello Vue!' } } 2 ...

  6. 【转发】基本adbui命令使用 可做图像识别

    原文请参考,很详细:hao1032/adbui 非常详细,感谢整理!!首先了解下 adb命令大全,adb最全的命令  

  7. MySQL如何有效的存储IP地址

    前几天,阿淼的一个朋友去面试,他回来告诉我,面试官问他 IP 地址是怎么存在数据库的?他当时也没多想,直接就回答的存字符串啊(心想:这么简单的问题,怕不是看不起我吧) 前面这段权当看看,毕竟 IP地址 ...

  8. 50个SQL语句(MySQL版) 问题一

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  9. ssh-copy-id to filter out any that...ERROR: Read from socket failed: Connection reset by peer

    ssh-copy-id bigboss1 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter ...

  10. Java实现 LeetCode 780 到达终点(逻辑题)

    780. 到达终点 从点 (x, y) 可以转换到 (x, x+y) 或者 (x+y, y). 给定一个起点 (sx, sy) 和一个终点 (tx, ty),如果通过一系列的转换可以从起点到达终点,则 ...