jmeter(一)基础介绍

article/2025/9/16 18:42:57

参考书籍:段念《软件性能测试与案例剖析》——第二版

推荐一本书《零成本实现web性能测试——基于Apache—jmeter》,主要内容是一些关于jmeter的实战使用,想学习的可以去看看。。。

 

jmeter是一款优秀的开源性能测试工具,目前最新版本3.0版本,官网文档地址:http://jmeter.apache.org/usermanual/index.html

一、优点

1、开源工具,可扩展性非常好

2、高可扩展性,用户可自定义调试相关模块代码

3、精心简单的GUI设计,小巧灵活

4、完全的可移植性和100%纯java

5、完全swing和轻量组件支持(预编译的HAR使用javax.swing.*)包

6、完全多线程框架,允许通过多个线程并发取样以及单独的线程对不同的功能同时取样

7、支持脚本取样器

 

二、安装及下载

这里附一个最新的jmeter官网下载地址:

http://jmeter.apache.org/download_jmeter.cgi

该链接是3.0版本的jmeter安装包

jmeter本身不需要安装,只需要配置好JDK环境,然后在在jmeter文件中的bin文件中打开jmeter.bat文件即可

最新版本,建议配置的JDK最好用1.7及以上版本

 

三、基础构成

1、组成部分

1)负载发生器:产生负载,多进程或多线程模拟用户行为

2)用户运行器:脚本运行引擎,用户运行器附加在进程或线程上,根据脚本模拟指定的用户行为

3)资源生成器:生成测试过程中服务器、负载机的资源数据

4)报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式·

 

2、主要概念

2.1测试计划(test plan)

描述一个性能测试,包含本次测试所有相关功能

 

2.2.threads(users)线程

 

Setup thread group:

一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行定期线程组的执行

Teardown thread group:

一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后执行定期的线程组

以上两个线程组,举个例子:loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块,与其对应

Thread group:

通常添加使用的线程,一般一个线程组可看做一个虚拟用户组,其中每个线程为一个虚拟用户

 

2.3测试片段(test fragment)

2.5版本之后新增的一个选项,是一种特殊的线程组,在测试树上与线程组一个层级,但是它不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行

 

2.4控制器

Jmeter有2种控制器:取样器(sampler)和逻辑控制器(Logic Controller)

作用:用这些原件驱动处理一个测试

1)取样器(Sampler)

是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler 

如 HTTP Request Sampler 、 FTP  Request Sampler 、TCP  Request Sampler 、JDBC Request Sampler 等

每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler (暂不讨论)

 

2)逻辑控制器(Logic Controller)

包含两类原件:

一类是控制Test Plan中Sampler节点发送请求的逻辑顺序控制器,常用的有:If Controller、Swith Controller、Loop Controller、Random Controller等

另一类是用来组织和控制Sampler节点的,如Transaction Controller、Throughput Controller等

 

2.5监听器(Listener)

对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等

以上的五类原件就可以构成一个简单的性能测试脚本

 

下面再介绍几种jmeter提供的其他组件:

2.6配置原件(Config Element)

用于提供对静态数据配置的支持。CSV Date Set Config可以将本地数据文件形成数据池(Date Pool),而对应于HTTP Request Configuration

和TCP Request Sample等类型的Configuration元件则可以修改这些Sample的默认数据等

 

2.7定时器(Time)

用于操作之间设置等待时间,等待时间使性能测试中常用的控制客户端QPS的手段,jmeter定义了Constant Times、

Constant Throughput Times、Guass Ramdon Times等不同类型的Times

 

2.8断言(Assertions)

用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致

 

2.9前处理器(Pre Processors)

用于在实际请求发出之前对即将发出的请求进行特殊处理。

例如:Count处理器可以实现自增操作,自增后生成的的数据可以被将要发出的请求使用,而HTTP URL Re—Writing Modifier处理器则可以实现URL重写,

当URL中有sessionID一类的session信息时,可以通过该处理器填充发出请求实际的sessionID。

 

2.10后处理器(Post Processors)

 

用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似loadrunner中的关联)。

例如:Regular Expression Extractor用于提取响应数据中匹配某正则表达式的数据段,并将其填充在参数中,Xpath Extractor则可以用于提取响应数据中通过给定Xpath值获得的数据。。。

 

 


http://chatgpt.dhexx.cn/article/fgLciBV9.shtml

相关文章

Kotlin带有接收者的函数类型(block: T.() -> Unit)

前言 Kotlin标准库的 Standard.kt 包含几个函数,其唯一目的是在对象上下文内执行代码块。 当我们在提供了lambda表达式的对象上调用此类函数时,它将形成一个临时作用域。在此作用域中,我们可以访问没有其名称的对象,这些功能称为…

mysql之类型转换函数

类型转换函数 类型转换函数和case函数 1.隐式类型转换和显式类型转换的概念 隐式类型装换: 两个值进行运算或者比较,首先要求数据类型必须一致。如果发现两个数据类型不一致时就会发生隐式类型转换。例如,把字符串转成数字,或者相反: SELECT 1+‘1’; – 字符串1转成数字 …

C语言入门---函数类型与返回值(int和void)

int和void的区别? 哈喽,各位小伙伴们,在我们学习C语言的过程中经常会看到书中的main函数前带有int和void,就像下面这样: 上面这两种有什么区别呢?在C语言中,可以把函数分为有返回值函数和无返…

Typescript总结(三)——函数类型详解

本篇博客主要总结一下在Typescript中的函数写法,以及函数类型的总结。 一、Typescript的函数类型 如果在一个函数中,需要传入一个函数作为参数,可以如下所示,进行声明定义。 我们也可以通过type来定义函数类型 如上述代码所示…

c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...

C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义的函数返回值类型必须相同么? 1.可以。只要返回值、参数列表的参数个数、类型、顺序中的一…

C语言 函数类型

1. 在 [不完全类型] 一文中,描述了C中的3大数据类型,即: 函数类型、对象类型和不完全类型, 这里再次引用这张图来进行“函数类型”的讲解。 可以看到,函数类型是对立于其他的类型的,它不像“对象类型和不完全类型”,可以延伸(或是派生)出其他对象,或是包含一子系列…

函数高级

函数: 1、引用传递 2、可变参数、命名参数、万能参数 3、匿名函数(lambda) 4、闭包(有点难) 5、递归 6、偏函数 7、函数作为参数传递 8、函数调用全局变量 9、全局变量和局部变量 装饰器(函数的深层次使用…

68 4种函数类型

文章目录 1、无参数,无返回值的函数2、无参数,有返回值的函数3、有参数,无返回值的函数4、有参数,有返回值的函数5、小结 函数根据有没有参数,有没有返回值,可以相互组合,一共有4种 无参数&…

C语言函数之—函数的分类

目录 1. 函数是什么? 2. C语言中的函数分类 2.1 库函数 2.1.1 为什么会有库函数? 2.1.2 那怎么来学习库函数呢? IO函数—getchar() , putchar() 字符串操作函数—strcmp() , strlen() rand函数,srand函数 和time函数 2.1.3 如何学会…

torch.optim.Adam() 函数用法

Adam: A method for stochastic optimization Adam是通过梯度的一阶矩和二阶矩自适应的控制每个参数的学习率的大小。 adam的初始化 def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8,weight_decay=0, amsgrad=False): Args:params (iterable): iterable o…

pytorch ——torch.optim.Adam

class torch.optim.Adam(params, lr0.001, betas(0.9, 0.999), eps1e-08, weight_decay0)它在Adam: A Method for Stochastic Optimization中被提出。(https://arxiv.org/abs/1412.6980) 参数: params (iterable) – 待优化参数的iterable或者是定义了参数组的dict…

在ADS中使用OPTIM优化设计

在ADS中可以使用OPTIM控件来对电路变量进行优化设计,以实现电路性能目标。ADS常用的S参数仿真和谐波平衡仿真中都可以进行优化设计。 在S参数仿真中进行优化设计 现在以一个阻抗匹配网络的设计为例,来展示在S 参数仿真中进行优化设计的方法。 我们搭建…

torch.optim.SGD()

其中的SGD就是optim中的一个算法(优化器):随机梯度下降算法 PyTorch 的优化器基本都继承于 "class Optimizer",这是所有 optimizer 的 base class torch.optim是一个实现了各种优化算法的库。大部分常用的方法得到支持…

torch.optim.lr_scheduler:调整学习率

本文是笔者在学习cycleGAN的代码时,发现其实现了根据需求选择不同调整学习率方法的策略,遂查资料了解pytorch各种调整学习率的方法。主要参考:https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate 1 综述 1.1 lr_sche…

一起来学PyTorch——torch.nn优化器optim

在学习的过程中,大家可能会感觉很蒙,其实现在做的就是看懂每一个小内容,等之后做一个具体的项目,就可以串联起来了。 优化器用于优化模型,加速收敛。 SGD方法 随机梯度下降法,是指沿着梯度下降的方向求解极…

Pytorch之Optim(优化器)

使用优化器,接收损失函数的结果,并调整网络参数,完成反向传播 根据示例 optimizer torch.optim.SGD(module.parameters(), lr0.01, momentum0.9) 然后根据提示,清空梯度>网络前传>计算损失>反向传播>优化网络参数 在运行区域引入库和之前的Module if __name__ …

torch.optim

torch.optim是一个实现了各种优化算法的库。 1. 如何使用optimizer 我们需要构建一个optimizer对象。这个对象能够保持当前参数状态并基于计算得到的梯度进行参数更新。 1.1 构建 为了构建一个Optimizer,你需要给它一个包含了需要优化的参数(必须都是…

torch.optim.lr_scheduler.CosineAnnealingWarmRestarts、OneCycleLR定义与使用

torch中有多种余弦退火学习率调整方法,包括:OneCycleLR、CosineAnnealingLR和CosineAnnealingWarmRestarts。 CosineAnnealingWarmRestarts(带预热的余弦退火)学习率方法定义 torch.optim.lr_scheduler.CosineAnnealingWarmRest…

torch.optim优化算法理解之optim.Adam()

torch.optim是一个实现了多种优化算法的包,大多数通用的方法都已支持,提供了丰富的接口调用,未来更多精炼的优化算法也将整合进来。 为了使用torch.optim,需先构造一个优化器对象Optimizer,用来保存当前的状态&#x…

Python-torch.optim优化算法理解之optim.Adam()

目录 简介 分析 使用 Adam算法 参数 论文理解 torch.optim.adam源码理解 Adam的特点 转载torch.optim优化算法理解之optim.Adam() 官方手册:torch.optim — PyTorch 1.11.0 documentation 其他参考 pytorch中优化器与学习率衰减方法总结 Adam和学习率衰减…