Jmeter初始学习

news/2024/5/4 8:30:37/文章来源:https://blog.csdn.net/Atalanta1/article/details/127119961

Jmeter是一款优秀的开源性能工具,官网文档地址:http://jmeter.apache.org/usermanual/index.html

一、优点

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

2.高可扩展性,用户可自定义调式相关模块代码;

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

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

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

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

7.支持脚本取样器

二.基础构成部分

1.组成部分

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

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

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

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

2.主要概念

2.1测试计划:描述一个性能测试,包含本次测试的所有相关功能;

 2.2 线程

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

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

举个例子:loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块,与其对应的线程组 ,通常添加使用的线程,一搬一个线程组可看做一个虚拟用户组,其中每个线程为一个虚拟用户

2.3 测试片段

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

 2.4控制器

Jmeter有2种控制器:取样器和逻辑控制器

(1)取样器

 是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,Jmeter原生支持多种不同的取样器,如HTTP 请求取样器,TCP取样器,JDBC Request等,每一种不同类型的取样器可以根据设置的参数向服务器发出不同类型的请求。

Java请求取样器和Bean Shell取样器是两种特殊的可制定的取样器

(2)逻辑控制器

包含两类原件:

一类是测试计划中取样器节点发送请求的逻辑顺序控制器,常用的有:if控制器,switch控制器,循环控制器,Runtime控制器等;

另一类是用来组织和控制取样节点的,如事务控制器。

2.5监听器

 

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

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

2.6 配置元件

用于提供对静态数据配置的支持。CSV 数据文件设置可以将本地数据文件形成数据池,对应于 http请求配置和TCP取样器配置等类型的配置元件则可以修改这些取样器的默认数据等 。

2.7定时器

用于操作之间设置等待时间,等待时间使性能测试中常用的控制客户端QPS的手段。

2.8 断言

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

2.9前置处理器

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

例如:HTTP URL 重写修饰符可以实现URL重写,当URL中有sessionId一类的信息时,可以通过该处理器填充发出请求实际的sessionId。

2.10 后置处理器

用于对取样器发出请求后得到的服务器响应进行处理。一般用来提取响应中特定的数据

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_16560.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS App更换图标Logo(本地更换)

1.各大购物平台在节假日都是更换App Icon图标 通常有两种方式:1.每换一个新的图标,需要重新上一次AppStore; 2.在项目里预留好未来需要更换的图标,用api触发(或者本地时间判断自动更换) 两种方法各有利弊,第一种 弊&…

「喜迎华诞」手把手教你用微信小程序给头像带上小旗帜

文章目录一、文章前言二、实现原理三、开发步骤四、完整代码五、国庆临近,祝祖国永远繁荣昌盛!一、文章前言 2022年是新中国成立73周年,在这个举国欢庆的日子里,让我们给头像上加上小红旗,迎国庆换新颜,一起…

视频倒放怎么制作?快来学会这几个简单的方法

众所周知,如果我们想要让视频更具有观赏性的话,少不了用视频倒放功能来制作视频。不过还是有很多小伙伴不知道视频倒放怎么制作? 下面我就来手把手教你们视频倒放的制作方法,你们快来看看吧! 方法一:提词全…

Monaco Editor教程(五): 实现同时多文件编辑,tab切换

背景 上一篇我们讲解了如何设置编辑器的值,获取编辑器的值,以及监听编辑器的内容修改。这些功能对于基础的单文件修改,一次只修改一个文件的业务场景比较友好。但如果是复杂的场景,比如WEB IDE,同时打开一个项目的多个…

聊聊SQL注入

明天是国庆1001,祝大家国庆节快乐!!!这个月还有属于程序员的节日:1024SQL注入问题概述:首先SQL注入是一个非常危险的操作,很可能被一些不怀好意的人钻空导致我们系统出现异常等状况,比如数据库遭到破坏或被入侵。原因:使用JDBC的Statement语句添加SQL语句由于我们的JD…

直播电商开发,源码无加密

随着直播电商的流行,很多企业开始使用商场电商直播系统,该企业使用电商直播系统的优势具体体现在哪里?下面由零七科技小编为您总结企业电商直播系统的优点。 使用电商直播系统的优点: 1、全面展示商品风格和效果。 与在线平台的…

【Django-rest-framework框架】第04回 视图集

目录1. 两个视图基类1.1 GenericAPIview属性和方法1.2 基于APIView写5个接口1.3 基于GenericAPIview写5个接口2. 5个视图扩展类3. 9个视图子类4. 视图集5. 源码分析ViewSetMixin6. 总结7 继承关系画出来,有哪些常用属性或方法写出来 1. 两个视图基类 1.1 GenericAPIview属性和…

【redis】7.1 分布式架构概述(章节介绍)

分布式架构概述 请求业务比较长(耗时业务),需要分布式系统。 1. 本章节内容 分布式缓存中间件Redis分布式会话与单点登录分布式搜索引擎Elasticsearch分布式文件系统分布式消息队列分布式锁数据库读写分离与分库分表数据库表全局唯一主键i…

迭代器并不全是指针,list的迭代器与vector和string的有什么不一样,让博主告诉你其底层原理!

链表的模拟实现 文章目录链表的模拟实现一、list的基本架构🤖_list_node基本构架--双向带头循环链表二、list的迭代器--重点🐱‍👤list迭代器的基本架构构造函数--node*封装operator*()--得到值operator!()--跟另一个迭代器进行比较operator(…

xLua热更新(一)xLua基本使用

一、什么是xLua xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。 xLua是用来实现Lua代码与C#代码相互调用的插件。我们可以借助这个插件来实现热更新方案。 那么为什么要选择Lua实现热更新呢&am…

报告分享|数字化转型,从战略到执行报告

报告链接:http://tecdat.cn/?p=28672 如何加速国家、城市、行业、企业数字化进程,激发数字经济新动能。这份报告通过洞察数字化的6大改变、4大载体、4个阶段、20+场景、100+国家/项目案例/数据,全面系统性地阐述了多层次多场景数字化如何落地实施,最终带来经济、社会价值的…

报告分享|2022年企业数字化人才发展白皮书

报告链接:http://tecdat.cn/?p=28670 数字经济时代,企业对数字化人才的需求急剧增长。此报告对数字化人才培养和企业数字化人才发展现状进行梳理和研究,聚焦于金融、零售、能源和制造四个行业,采用定量与定性相结合的研究方法,对数字化人才的发展态势、岗位能力需求、培养…

第八章 常用用类

文章目录8.4 StringBuffer类8.4.1 StringBuffer对象8.4.2 StringBuffer类的常用方法1.append方法2.charAt(int n)和setCharAt(int n, char ch)8.5 Date类与Calendar类8.5.1 Date类8.5.2 Calendar类8.6 日期的格式变化8.6.1 format方法8.6.2 不同区域的星期格式8.7 Math类、BigI…

【算法】【二叉树模块】求一个二叉树“子树“是否包含另一个二叉树的全部拓扑结构

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介绍 …

三个线程顺序打印ABC?我有十二种做法,彻底掌握多线程同步通信机制

大家好,我是老三,这篇文章分享一道非常不错的题目:三个线程按序打印ABC。 很多读者朋友应该都觉得这道题目不难,这次给大家带来十二种做法,一定有你没有见过的新姿势。 1. synchronizedwaitnotify 说到同步&#xf…

Swift中的内存访问冲突、指针、局部作用域

内存访问冲突(Conflicting Access to Memory) 1、内存访问冲突会在两个访问满足以下条件时发生: 至少一个是写入操作它们访问的是同一块内存它们的访问时间重叠(比如在同一个函数内) //无内存访问冲突 func plus(_ n…

PIE-engine 教程 ——利用NDWI加载青海湖三年水域影像和面积计算

这里我们首先画一个自己选择的研究区,用于方便计算NDWI,这里我们将青海湖区域作为我们的研究区,第二步我们就是要设定一个函数,用于在函数中执行循环遍历,这里包括去云和影像筛选过程,最后按照最大值合成&a…

Windows 10 docker 容器添加新端口映射的方法与步骤

在Docker容器已经创建后,需要添加新的端口映射,即对已经存在的Docker容器添加新的端口映射,可以通过以下步骤来添加,即通过修改配置文件的方法。 1、Windows 10 下 Dockers容器的配置文件存在的路径为: 笔者本文是20…

CLIP扩展

Audio CLIP:Extend CLIP to Image,Text and Audio(语音) 在已有的image、text 的基础上又加上了audio语音模态。 找了一些视频,有视频帧(图像)、文本、语音三种模态的信息,仿照CLIP的模型结构。三种模态两…

SpringSecurity + JWT(前后端分离)

文章目录一、先来聊聊 SpringSecurity JWT二、简单聊聊SpringSecurity 完整流程1、认证2、授权三、撸代码1、入门案例2、认证-前端端分离 Demo2.1 环境准备2.2 密码加密存储2.3 数据库校验存储2.4 编写自定义登陆接口2.5 JWT 认证过滤器2.6 退出登陆3、授权-前后端分离 Demo3.…