大数跨境

五、测试计划(Test Plan)的元件(详解教程一)

五、测试计划(Test Plan)的元件(详解教程一) 慧测
2021-08-08
0
导读:关注性能小课,成长不止一点点1、简介 本篇将通过在启动后的JMeter中创建测试计划(Test Plan),

关注性能小课,成长不止一点点



1、简介

本篇将通过在启动后的JMeter中创建测试计划(Test Plan),来跟大家一起了解组成测试计划(Test Plan)的元件分别有哪些。

2、测试计划(Test Plan)要点

2.1 要点概述

JMeter中,一个脚本就是一个测试计划(Test Plan)。JMeter 的请求模拟与并发数设置(即线程数设置,一个线程代表一个虚拟用户)都是在脚本文件中进行的,而LoadRunner对于脚本、虚拟用户二者的设置是分开的。所以,在这一点上,JMeterLoadRunner是有区别的。

2.1.1 要点一

☆ 脚本中测试计划只能有一个 ☆

  • 1、JMeter中的测试计划与LoadRunner Controller 中的Scenario类似,同一时刻,Scenario只能有一个。
  • 2、JMeter 脚本在 GUI 中是以树型结构显示的,测试计划是树形结构的根节点,而该根节点只能有一个。

2.1.2 要点二

☆ 测试计划中至少要有一个线程组 ☆

  • 1、JMeter 中的负载是通过线程组进行驱动的,故测试计划中至少要有一个线程组。
  • 2、JMeter 测试计划支持多个线程组。

在测试计划下面,用户可以建立多个线程组,把不相关联的业务分布在不同的线程组中,这与 LoadRunner 中以 Group方式划分的Scenario是类似的,所以,我们可以把JMeter中的测试计划理解成LoadRunner中以 Group方式划分的Scenario

2.1.3 要点三

☆ 至少要有一个取样器 ☆

  • 测试的目的,是对用户请求进行模拟,假如没有取样器进行取样,脚本是毫无意义的。

2.1.4 要点四

☆ 至少要有一个监听器 ☆

测试的结果,是用来衡量被测系统的性能的,假如没有监听器进行监听,将无法从测试结果中分析被测系统的性能。

3、测试计划(Test Plan)元件

接下来,我们将打开JMeterGUI界面,通过一系列操作及查看,来对组成测试计划的元件进行逐一了解。

3.1测试计划(Test Plan)

Test Plan (测试计划):即一个性能测试实例。右键单击“测试计划”将会弹出如下菜单:

该菜单展示了与本次性能测试实例相关的所有功能。从该菜单的组成可以看出,每一个性能测试实例的内容都是基于计划的。

小提示:● 测试计划对应的所有配置参数项中,有一个名为“ 函数测试模式 ”的复选框。如果将其勾选,JMeter将会对每个测试样本从服务器返回的数据进行记录。与此同时,如果在监听器中选择了所有数据写入一个文件,则被记录的数据将会写入到文件里(以上配置操作,仅在对要进行较小数据量的测试执行以确保JMeter是否被正确配置以及服务器返回的结果是否符合预期时较为适用)。由此一来,负责存储被记录数据的文件,其大小将会快速增长,JMeter的性能将会受到影响。所以,如果要进行压力测试,则应禁用此选项(该选项默认情况下处于禁用状态)。

● 如果未在监听器中选择所有数据写入一个文件,则“ 函数测试模式 ”选项是否勾选,将不会有区别。

● 点击监听器上的“ 配置”按钮,可对要自定义保存的字段进行选定。

3.2线程组Threads(Users)

线程组元件是任何测试计划的起点。所有控制器和取样器必须隶属于某个线程组,而其它元件(例如,监听器)则可以直接放置在测试计划下,直接放置在测试计划下的元件的配置将应用于所有线程组。由此可以看出,线程组元件主要用来控制JMeter将要用于执行测试所使用的线程数。线程组元件主要对以下设置项进行设置:

  • 设置线程数
  • 设置Ramp-Up时间
  • 设置执行测试的次数

由于多个测试线程之间均是完全独立的,所以每个测试线程都将会对测试计划进行严格执行。多测试线程主要用于模拟用户与服务器应用程序间的并发连接。

所设置的Ramp-Up时间,将会告诉JMeter将要“Ramp-Up”到所选线程的总数需要多长时间。如果使用了10个线程,并且启动周期为100秒,那么JMeter将会花费100秒来启动和运行所有10个线程。每个线程将在上一个线程开始后10(100/10)秒再开始。如果有30个线程,启动周期即为120秒,每个连续线程将被延迟4秒。

合理的设置Ramp-Up时间,可用来避免在测试执行伊始时压力过大,以及使最后一个线程在第一个线程完成之前开始运行(除非被测系统有此特殊要求)。

默认情况下,线程组默认为在其元件之间循环一次。

线程组还提供了调度功能。单击“线程组”面板底部的复选框可以启用/禁用其它字段,而且,用户可以在其中输入测试的持续时间,启动延迟,运行的开始和结束时间。用户可以配置持续时间(秒)和启动延迟(秒)来控制每个线程组的持续时间以及启动后的秒数。当测试开始时,JMeter将在启动线程组的线程之前等待启动延迟(秒),然后运行配置的持续时间(秒)。

小提示:持续时间(秒)和启动延迟(秒)两个选项会覆盖“ 开始时间”和“ 结束时间”。线程组的添加路径:【测试计划】-【Threads(Users)线程组】。

3.2.1添加线程组

选中要添加线程组的测试计划(Test Plan),右键点击“Add”,选中“Threads(Users)”,此时,我们可以看到三个线程组:

虽然此处有三个添加线程组的选项,且名字不一样,但当创建之后,其界面是完全一样的。关于三个线程组的简介如下:

  1. setUp Thread Group(线程组) 一种特殊类型的ThreadGroup,类似于LoadRunner中的init,可用于执行预测试操作。
  2. tearDown Thread Group(线程组) 一种特殊类型的ThreadGroup,类似于LoadRunner中的end,可用于执行测试后的一些动作。
  3. Thread Group(线程组) 这个就是用户通常添加运行的线程组。关于该线程组,通俗来讲,可以看做一个虚拟用户组,组中的每个线程都可以理解为一个虚拟用户,组中包含的线程数量在测试执行过程中是不会发生改变的。

3.2.2线程组界面介绍

这个就是我们通常添加运行的线程组。通俗来讲,一个线程组,,可以看做成一个虚拟用户组,组中的每个线程都可以理解为一个虚拟用户。

  • 循环次数:表示每个线程执行多少次请求。
  • 名称:就如字面意思,起个有意义的名字就行。
  • 注释:无。
  • 线程数:这里选择1。
  • Ramp-Up Period:单位是秒,默认时间是1秒。它指定了启动所有线程所花费的时间,比如,当前的设定表示“在5秒内启动5个线程,每个线程的间隔时间为1秒”。如果需要JMeter立即启动所有线程,将此设定为0即可。
  • 循环次数:表示每个线程执行多少次请求。

3.3扩展线程组

此处的扩展线程组主要是指阶梯加压线程组,该扩展线程组的安装非常简单,只需给JMeter下载安装一个插件即可。

小提示:● Stepping Thread Group 可用于模拟阶梯加压。

3.4控制器(Controllers)

JMeter有两种类型的控制器:取样器和逻辑控制器。JMeter将会借助它们来驱动测试的进行。

其中,取样器主要用来通知JMeter将请求发送到服务器。例如,需要JMeter发送HTTP请求,则添加一个HTTP Request Sampler即可。

逻辑控制器使您可以自定义JMeter用于决定何时发送请求的逻辑。例如,您可以添加一个Interleave Logic Controller在两个HTTP Request Samplers之间交替。有关更多信息,请参见逻辑控制器。

逻辑控制器主要对JMeter决定何时发送请求的逻辑进行自定义。例如,添加一个Interleave Logic Controller,可在两个HTTP Request Samplers之间作交替。

END

欢迎加入我们:

扫码加入公开课学习交流群

已在公开课学习交流群① 

的小朋友请勿重复加群

免费技术支持微信:15712862196

咨询QQ:2657535456

咨询微信号:huice666

慧测公众号


【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404