Jmeter(二)

摘要:
JMeter将保存选定的元素及其下的所有子元素。JMeter允许您保存整个测试计划树或仅保存其中的一部分。当JMeter运行时,它在菜单栏下方部分的右端显示一个小绿色框。可以重试Stop命令,但是如果失败,则必须退出JMeter进行清理。Timer#2对所有请求有效。单击警告图标以在JMeter窗口的底部显示jmeter.log文件。偶尔可能会有一些错误,JMeter无法捕获和记录;这些将显示在命令控制台上。

1.简介

上一篇中宏哥已经教你把JMeter的测试环境搭建起来了,那么这一篇我们就将JMeter启动起来,一睹其芳容,首先宏哥给大家介绍一下如何来创建一个测试计划(Test Plan)。

2.创建一个测试计划(Test Plan)

测试计划(Test Plan)描述了一系列Jmeter运行时将要执行的一系列步骤。完整的测试计划包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件组成。

2.1添加和删除元件

可以通过右键单击树中的元素,然后从“添加”列表中选择一个新元件来将元件添加到测试计划中。或者,可以通过选择“merge”或“open”选项从文件中加载和添加元素。

要删除元件,请确保已选择该元件,右键单击该元件,然后选择“删除”选项。

2.2 加载和保存元件

要从文件中加载元件,请右键单击要向其中添加已加载元件的现有树元素,然后选择“合并”选项。选择保存元素的文件。JMeter将元素合并到树中。

要保存树元素,请右键单击元素,然后选择“将选择另存为...”选项。JMeter将保存选定的元素及其下的所有子元素。这样,您可以保存测试树片段和单个元素以供以后使用。

注意:敲黑板,敲脑壳啦!!!工作台不会自动保存测试计划,但是它可以同上被单独保存的。

2.3 配置树元件

在测试树中的任何元件都在JMeter的右侧框架显示配置。那些配置允许你配置测试元件的细节行为,对于一个元件什么能被配置依赖于它是一个什么类型的元件。测试树中的任何元素都将在JMeter的右侧框中显示控件。这些控件使您可以配置特定测试元素的行为。元素可配置的内容取决于元素的类型。

注意:敲黑板,敲脑壳啦!!!可以通过拖拉测试树周围的元件操作测试树。

2.4 保存测试计划

尽管不是必需的,但我们建议您在运行测试计划之前将其保存到文件中。要保存测试计划,请从“文件”菜单中选择“保存”或“将测试计划另存为...”(对于最新版本,不再需要先选择“测试计划”元素)。

注意:敲黑板,敲脑壳啦!!!JMeter允许您保存整个测试计划树或仅保存其中的一部分。要仅保存位于“测试计划”树的特定“分支”中的元素,请在树中选择要从其开始“分支”的“测试计划”元素,然后单击鼠标右键以访问“另存为...”。”菜单项。或者,选择适当的测试计划元素,然后从“编辑”菜单中选择“将选择另存为...”。

2.5 运行一个测试计划

要运行测试计划,请从“运行”菜单项中选择“开始”(Control+r)。当JMeter运行时,它在菜单栏下方部分的右端显示一个小绿色框。您也可以检查“运行”菜单。如果禁用了“开始”,并且启用了“停止”,则JMeter正在运行您的测试计划(或者至少认为它是这样)。

绿色框左侧的数字是活动线程数/线程总数。这些仅适用于本地运行的测试;使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程。

注意:敲黑板,敲脑壳啦!!!仅在调试测试计划时,才应使用此处所述的GUI模式。要运行实际负载测试,请使用CLI模式。

2.6停止测试

菜单中有两种类型的停止命令:

  • 停止(Control+ .)-如果可能,立即停止线程。许多采样器都是可中断的,这意味着可以提前终止活动采样。stop命令将检查所有线程是否已在默认超时(5000 ms = 5秒)内停止。[这可以使用JMeter属性jmeterengine.threadstop.wait进行更改]如果线程尚未停止,则会显示一条消息。可以重试Stop命令,但是如果失败,则必须退出JMeter进行清理。
  • 关机(Control+ ,)-请求线程在任何当前工作结束时停止。不会中断任何活动样本。模态关闭对话框将保持活动状态,直到所有线程停止。

如果关机时间太长。关闭“关机”对话框,然后选择“运行/停止”,或仅按Control+.

在CLI模式下运行JMeter时,没有菜单,并且JMeter不会对诸如Control+ .之类的组合键作出反应。。因此,JMeter CLI模式将监听特定端口上的命令(默认为4445,请参见JMeter属性jmeterengine.nongui.port)。如果使用默认端口(例如,另一个JMeter实例),JMeter支持自动选择备用端口。在这种情况下,JMeter将尝试下一个更高的端口,直到到达JMeter属性jmeterengine.nongui.maxport)为止,该属性默认为4455。如果maxport小于或等于port,那么将不会进行端口扫描。
所选端口显示在控制台窗口中。
当前支持的命令是:

  • Shutdown-正常关机
  • StopTestNow-立即关闭

可以分别使用shutdown [.cmd|.sh]stoptest [.cmd|.sh]脚本发送这些命令。这些脚本可以在JMeterbin目录中找到。仅当脚本从同一主机运行时,才会接受命令。

2.7 作用域规则

JMeter测试树包含元件总是分等级和顺序的。在测试树中的一些元件是严格分级(监听器,配置元件,后置处理器,前置处理器,断言,定时器),一 些主要是有序的(控制器,取样器)。当你创建测试计划时,你将创建一个有序的取样请求(通过取样器)列表,那些请求描述了一组步骤的执行。那些请求常组织在也有序的控制器中。给出如下测试树:

Jmeter(二)第1张

测试树例子

请求的顺序是One,Two,Three,Four。

一些控制器影响它的子元件的顺序,你可以在组件参考读到特定的控制器。

其他元素是分等级的。例如,一个断言在测试树中是分等级的。如果它的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。如下测试树:

分级例子

Assertion #1 仅被应用于请求 One, Assertion #2 仅被应用于 请求 Two 和 Three。

另一个例子,这次使用定时器:

复杂的例子

在这个例子里,请求的命名表现它们被执行的顺序。Timer #1 应用于 请求 Two, Three, 和 Four (注意对于分等级的元件怎样的顺序是不相关的)。Assertion #1 应用于请求Three。Timer #2 对所有请求有效。

希望那些例子使你弄清了配置(分等级的)元件如何被应用。如果你想每个请求都被树分叉拒绝,到它的父元件,到它的父元件的父元件,等等,每次收集所有它的父元件的配置元件,你将看到它如何工作的。

元件首部管理器, Cookie 管理器和授权管理器的配置和默认元件的配置被视为是不同的.默认元件配置的设置被并入取样器可以到达的一组值里了。然而来自管理器的设置没有并入。如果多于一个管理器在一个取样器范围中,仅仅一个被使用,但是现在没有办法指定那个被使用。

2.8 错误报告

JMeter将警告和错误报告给jmeter.log文件,以及有关测试运行本身的一些信息。JMeter在其窗口右端的警告图标(三角形)旁边显示jmeter.log文件中找到的警告/错误数量。单击警告图标以在JMeter窗口的底部显示jmeter.log文件。偶尔可能会有一些错误,JMeter无法捕获和记录;这些将显示在命令控制台上。如果测试不符合您的预期,请检查日志文件,以防报告任何错误(例如,函数调用中的语法错误)。

通常不会在日志文件中报告采样错误(例如HTTP 404-未找到文件)。而是将它们存储为样本结果的属性。样本结果的状态可以在各种不同的监听器中看到。

3.小结

3.1GUI与CLI的区别

GUI(图形用户界面)
Graphical User Interface(图形用户接口)
用图形的方式,来显示计算机操作的界面,这样方便更直观。
CLI
Command line User Interface(命令行用户接口)
最常见的DOS命令操作。
需要记忆一些常用的命令,操作不直观。

好了,今天有关如何创建一个测试计划(Test Plan)就分享到这里,感谢您的阅读,如果您觉得不错或者有帮助,就帮忙来一个推荐呗!!!

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得随手点波推荐不要忘记哦!!!

别忘了点推荐留下您来过的痕迹

Jmeter(二)第2张

免责声明:文章转载自《Jmeter(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇FFmpeg在Linux下编译使用【Java】分割字符串并实现去重(重复的分割字符)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Unity优化】图形优化系列02:CPU优化

CPU在渲染管线中的工作 1)检测需要被绘制的对象 2)准备发送给GPU的指令 3)向GPU发送指令 多线程渲染 0)Unity 包含三种线程类型:主线程、渲染线程、工作线程 1)主线程:大部分的CPU工作,和部分渲染任务 2)渲染线程:专门用于CPU向GPU发送指令 3)工作线程:执行单独的任务(比如剔除、网格蒙皮) 4)不是所有平台都支持多线程渲染 多...

JDK10

1 局部变量类型推断 1.1 JDK10之前定义变量存在的问题 很多人抱怨Java是一种强类型,需要引入大量的样板代码。很明显类型声明往往被认为不是必要的。 JDK10之前的Java代码总中,声明一个变量是非常繁琐的: package com.sunxiaping; import org.junit.Test; import java.util.Ar...

java多线程 -- ConcurrentHashMap 锁分段 机制

hashtable效率低ConcurrentHashMap 线程安全,效率高 Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。 ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于 HashMap 与 Hashtable 之间。内...

Hystrix 如何解决 ThreadLocal 信息丢失

本文分享 ThreadLocal 遇到 Hystrix 时上下文信息传递的方案。 一、背景 笔者在业务开发中涉及到使用 ThreadLocal 来存放上下文链路中一些关键信息,其中一些业务实现对外部接口依赖,对这些依赖接口使用了Hystrix作熔断保护,但在使用Hystrix作熔断保护的方法中发现了获取 ThreadLocal 信息与预期不一致问题,本文旨...

2个线程 循环打印ababab...

第一种方式: package mianshi.Thread; /** * 2个线程 循环打印 abab * 实现1: * note: 2个线程操作 Work类, work类里面 实现互斥的 2个打印方法 A B。 2个线程各自调用A,B */ public class ThreadA { public static void main(...

使用top命令、dump文件定位问题

使用top命令、dump文件定位问题 1.背景 定位java应用出问题的代码块 2.一个demo 一个springboot创建的demo import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.Rest...