广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JMeter配置元件详解
  • 424
分享到

JMeter配置元件详解

2024-04-02 19:04:59 424人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1 CSV Data Set Config(参数化)2 Http Cookie Manager(cookie管理器)3 HTTP Request Defaults4 HTTP H

1 CSV Data Set Config(参数化)

参数化配置元件(以下简称CSV)能够在文件中读取一行数据,根据特定的符号切割成一个或多个变量放入内存中。相比于jmeter函数助手中提供的 __CSVRead()、__StringFromFile()函数,CSV使用更加简便。而且,CSV非常适合处理大量的数据,也适用于生成“随机值”、“唯一值”这张的变量。
JMeter支持数据被双引号括起,被双引号括起的数据允许包含分隔符,例如:a,b,"c,d"

这行数据被逗号分隔后将产生三个变量值,a、b、c,d

JMeter支持读取具有标题行(标题行的内容是列名称)的CSV文件,要启用此功能,要将【Variable Names】留空,并且提供正确的分隔符。

在这里插入图片描述

参数详解

参 数 描 述 必 须
Name 脚本中显示的这个元件的描述性名称
Filename 待读取文件的名称。可以写入绝对路径,也可以写入相对路径(相对于bin目录),如果直接写文件名,则该文件要放在bin目录中。对于分布式测试,主机和远程机中相应目录下应该有相同的CSV文件
File Encoding 文件读取时的编码格式,不填则使用操作系统的编码格式
Ignore first line 是否忽略首行,如果csv文件中没有表头,则选择false
Variable Names 变量名列表,多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名列表
Delimiter 参数分隔符,将一行数据分隔成多个变量,默认为逗号,也可以使用“\t”。如果一行数据分隔后的值比Vairable Names中定义的变量少,这些变量将保留以前的值(如果有值的话)
Allow quoted data? 是否允许变量使用双引号,允许的话,变量将可以括在双引号内,并且这些变量名可以包含分隔符
Recycle on EOF? 是否循环读取csv文件内容,默认为 true
Stop thread on EOF? 是否循环读取csv文件内容,默认为 true
Recycle on EOF? 当Recycle on EOF为False时,停止线程,当Recycle on EOF为True时,此项无意义,默认为 false
Sharing mode 1、All threads(默认):一个线程组内,各个线程(用户)唯一顺序取值;2、current thread:一个线程组内,各个线程(用户)各自顺序取值;3、线程组各自独立,但每个线程组内各个线程(用户)唯一顺序取值;

示例,注意【Sharing mode】为All threads:

在这里插入图片描述

file.txt中内容:

在这里插入图片描述

添加【Debug Sampler】后,设置线程组线程数为2,循环次数为2,运行脚本

在这里插入图片描述

查看结果树,4次运行结果依次是:

var1=a1 var2=b1 var3=c1
var1=a2 var2=b2 var3=c2
var1=a3 var2=b3 var3=c3
var1=a1 var2=b1 var3=c1

在这里插入图片描述

修改【Sharing mode】为【Current thread group】后,运行结果不变,改为【Current thread】,结果变为:

var1=a1 var2=b1 var3=c1
var1=a2 var2=b2 var3=c2
var1=a1 var2=b1 var3=c1
var1=a2 var2=b2 var3=c2

以上结果说明,前两种模式下,多个线程会互相影响,线程1读取第一行数据后,线程2就会读取第二行,线程1再次读取时会读取第三行,以此类推。第三种模式下,各个线程互不影响,只按自身的顺序去读取文件,例如线程1读取第一行后,下次会读取第二行,线程2也是如此。

2 HTTP Cookie Manager(cookie管理器)

cookie管理器有两个功能:

它像WEB浏览器一样存储和发送cookie。如果有一个HTTP请求,并且响应中包含一个cookie,那么cookie管理器会自动存储该cookie,并将其用于将来对该特定网站的所有请求。每个JMeter线程都有自己的“cookie存储区”。因此,测试使用cookie存储会话信息的网站,每个JMeter线程都将有自己的会话。要注意的是,此类cookie不会出现在cookie管理器显示中,但可以在【查看结果树】中查看它们。
JMeter会检查接收到的cookie是否对URL有效,这意味着跨域cookie将不会被存储。如果想要进行窃听行为或希望使用跨域cookie,需要定义jmeter属性“CookieManager.check.cookies=false”。

接收到的cookie可以存储为jmeter线程变量。要将cookies保存为变量,请定义属性“CookieManager.save.cookies=false=true”。此外,在存储cookie名称之前,它们的前缀是“COOKIE_”(这可以避免局部变量的意外损坏)要恢复到初始状态,请定义属性“CookieManager.name.prefix=”(一个或多个空格)。如果启用,名为TEST的cookie的值可以描述为**${COOKIE_TEST}**。

其次,我们可以手动将cookie添加到cookie管理器中。不过,这样做的话,所有JMeter线程将共享cookie。这些cookie的失效时间将会很长。

默认情况下,空值的cookie将会被忽略,可以通过设置JMeter配置文件来修改:CookieManager.delete_null_cookies=false,这也适用于手动定义的cookie,任何此类cookie在更新时都将从显示中被删除。cookie名称必须是唯一的,如果用相同的名称定义了第二个cookie,它将替换第一个。

在这里插入图片描述

如果一个sampler(取样器)的作用域中有多个cookie管理器,则无法指定要使用哪个cookie管理器。另外,存储在一个cookie管理器中的cookie对任何其他管理器都不可用,因此请小心使用多个cookie管理器。

cookie管理器参数详解:

名称 描述 必须
Name 脚本中显示的这个元件的描述性名称
Clear Cookies each Iteration 勾选此项后,每次执行主线程组循环时,都会清除所有服务器定义的cookie。在GUI中定义的任何cookie都不会被清除。
Cookie Policy cookie管理策略。“standard”适用于大部分情况。“ignoreCookies”等同于忽略cookieManger
User-Defined Cookies 使用自定义的cookie

3 HTTP Request Defaults

HTTP请求默认值,这个元件可以设置HTTP请求控制器使用的默认值。例如,图中【服务器名称或IP】项目内填入了【example.com】,后面的HTTP请求如果IP也是example.com的话,那么只要将【服务器名称或IP】留空,那么这个字段将自动继承HTTP请求默认值中的值。其他诸如【协议】、【端口号】、【路径】等同此。
HTTP请求默认值可以极大地增强复用性,简化脚本编写。

在这里插入图片描述

在这里插入图片描述

4 HTTP Header Manager(信息头管理器)

信息头管理器,支持用户添加或者重写HTTP请求头。JMeter支持多个信息头管理器。多个信息头条目合并成一个信息头列表,跟随http请求一并提交到服务端。
经过实测,总结出规则如下:

当有多个信息头管理器,且不同的管理器内有名称相同的信息头条目存在时,顺序靠前的管理器的信息头条目会覆盖后面的;

在这里插入图片描述

在这里插入图片描述

例如上图,运行后,查看结果树:

在这里插入图片描述

当只有一个信息头管理器,但管理器内有名称相同的信息头条目时,会同时生效;
将上面脚本中的HTTP信息头管理器1禁用,再次运行脚本,查看结果树:

在这里插入图片描述 

5 Counter(计数器)

计数器,可以在线程组任何位置创建,允许用户配置起点、最大值和增量。配置后,计数器将从起点循环到最大值,然后重新开始,直到线程结束。

在这里插入图片描述

计数器参数详解:

名称 描述 必须
Name 脚本中显示的这个元件的描述性名称
Starting value 计数器的起始值,默认为0
Increment 每次迭代计数器的增量,默认为0,表示无增量
Maximum value 计数器最大值,到此值后将从起始值重新开始计数,默认为LONG.MAX_VALUE
Number FORMat 可选格式,例如000将格式化为001、002等。这将传递给decimalFormat,因此可以使用任何有效格式。如果在解释格式时出现问题,则忽略该格式。[默认格式是使用long.toString()生成的]
Exported Variable Name 引用名称,如果将它命名为count,后面可以用${count}引用它,不建议用空字符串,虽然空值也可以使用
Track Counter Independently for each User 如果勾选此项,则计数器为全局计数器(即,用户1将获得值“1”,用户2将在第一次迭代时获得值“2”)。如果选中,则每个用户都有一个独立的计数器。
Reset counter on each Thread Group Iteration 此选项仅在勾选【Track Counter Independently for each User】时可用,如果选中此选项,则计数器将重置为每个线程组迭代的起始值。当计数器在循环控制器中时,这可能很有用。

实际工作中,计数器一般和逻辑控制器配合使用,例如下面的脚本:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

运行脚本,查看结果树。分析一下这个运行结果:

  • 第1次循环,count=1,不满足if控制器1条件,满足if控制器2条件,执行了控制器2下的取样器;
  • 第2次循环,count=2,不满足if控制器1条件,满足if控制器2条件,执行了控制器2下的取样器;
  • 第3次循环,count=3,满足if控制器1条件,也满足if控制器2条件,执行了控制器1和控制器2下的取样器;
  • 第4次循环,count=4,不满足if控制器1条件,满足if控制器2条件,执行了控制器2下的取样器;
  • 第3次循环,count=5,不满足if控制器1条件,也不满足if控制器2条件,两个if控制器下的取样器都没有执行;

在这里插入图片描述

到此这篇关于JMeter配置元件详解的文章就介绍到这了,更多相关JMeter 元件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JMeter配置元件详解

本文链接: https://www.lsjlt.com/news/160038.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JMeter配置元件详解
    目录1 CSV Data Set Config(参数化)2 HTTP Cookie Manager(cookie管理器)3 HTTP Request Defaults4 HTTP H...
    99+
    2022-11-12
  • Jmeter安装及配置教程详解
    目录一、JMeter的安装配置过程二、JMeter的运行和语言设置一、JMeter的安装配置过程 安装配置过程: 第一步 安装JDK,配置JDK路径 到Oracle官方网站下载最新版...
    99+
    2022-11-12
  • Mybatis配置之<environments>配置元素详解
    目录我们先来看一下配置还是从解析的入口开始看起进入方法内部isSpecifiedEnvironment方法如下所示这两种事务管理器的区别下面分别对这三种类型做一个简单的说明(1)UN...
    99+
    2022-11-13
  • redis-配置文件详解
    1.基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足两者...
    99+
    2022-10-18
  • package.json文件配置详解
    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块。pack...
    99+
    2022-06-04
    详解 文件 package
  • redis 配置文件详解
    bind 0.0.0.0                 #绑定redis服务器网卡IP,默认为127.0.0.1,即本地...
    99+
    2022-10-18
  • redis配置文件详解
    位置 find / -name redis.conf units单位 # Redis configuration file example. # # Note that in order to read the configu...
    99+
    2022-01-15
    redis配置文件详解
  • postgresql.conf配置文件详解
    postgresql.conf文件是PostgreSQL数据库系统的主配置文件,它包含了数据库服务器的各种配置选项。下面是postg...
    99+
    2023-09-13
    详解
  • prometheus 配置文件详解
    目录 prometheus 配置文件详解 简介配置文件 原始配置文件内容global字段alerting 字段 alert_relabel_configsalertmanagersrule_fi...
    99+
    2023-09-05
    prometheus 服务器 linux java 运维
  • 详解Jmeter线程组的设置方法
    目录一、事件背景二、关于线程组的相关设置一、事件背景 个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧!...
    99+
    2022-11-12
  • redis配置文件中常用配置详解
    此次安装的版本为: 5.0.3 [root@localhost local]# redis-server --version Redis server v=5.0.3 sha=0...
    99+
    2022-11-12
  • 【八】MySQL-配置文件详解
    # 客户端设置,即客户端默认的连接参数 [client]   # 默认连接端口 port = 3306   # 用于本地连接的socket套接字 socket = /usr/local/mysql/data/mysql.sock   # 字...
    99+
    2023-10-26
    mysql 数据库 服务器
  • Maven配置文件pom.xml详解
    什么是POM?POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件。一个Proje...
    99+
    2023-05-31
    maven pom mave
  • Nginx配置文件(nginx.conf)详解
    1、配置文件在哪? 想要了解nginx的配置文件,得先知道它在哪吧!可通过以下命令查看:  2、nginx.conf文件的结构 nginx.conf一共由3部分组成:全局块、events块、http块。 2.1全局块 全局块是默认配置文件...
    99+
    2023-09-23
    nginx 运维 服务器
  • 详解DockerCompose配置文件参数
    目录1. image2. build3. command4.container_name5.depends_on6.dns7. tmpfs8. entrypoint9.env_fil...
    99+
    2022-11-13
  • SERV-U 的配置文件详解
    SERV-U的目录文件结构说明 Servudaemon.exe serv-u的服务程序,主文件 Servudaemon.ini serv-u的配置文件,记录用户信息,服务器参数 Se...
    99+
    2022-11-21
    SERV-U 配置文件
  • Redis2.8配置文件中文详解
    add by zhj : 没找到本文的原文。另外,redis配置文件中文翻译 也翻译的不错,可以与本文对照看。两篇文章都是以Redis2.8来介绍的 在Redis中直接启动redis-server服务时, ...
    99+
    2022-06-04
    中文 配置文件 详解
  • WordPress配置文件wp-config.php详解
    今天安装一个wp主题时候忽然前后台都报错,这就完了,只能去服务器上修改程序或者修改配置了,正好搜索到一个说明比较详细的配置,共享给大家! 数据库信息 WordPress链接数据库需设定以下四个值: 复制代码代码如下:defin...
    99+
    2022-10-20
  • 详解Mybatis核心配置文件
    Mybatis核心配置文件 记录在mybatis核心配置文件中,常用的配置选项: 下边是之前的配置选项: <?xml version="1.0" encoding=...
    99+
    2022-11-12
  • MyBatis全局配置文件详解
    目录MyBatis全局配置文件settings设置typeAliases类型命名存在的问题:@Alias("")environments环境transactionManager事务管...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作