Jmeter各组件超详细介绍

1、JMeter和Loadrunner的区别?

2、JMeter如何开发脚本的?强化脚本的技术?

代理服务器录制脚本Fiddler录制脚本Badboy录制脚本根据API,手写脚本根据抓包,手写脚本

  1. 参数化:在JMeter中,可以通过CSV DATA SET CONFIG组件或函数方式实现参数化。参数化可以帮助您模拟不同的用户行为和输入值。
  2. 关联:关联是测试不同页面或服务之间的交互。在JMeter中,您可以使用HTTP请求中的“关联”选项来模拟用户在应用程序中的操作。
  3. 事务:事务是将多个HTTP请求组合成一个事务,以便于分析和报告。在JMeter中,您可以使用“事务”元件来组合多个HTTP请求。
  4. 检查点:检查点用于验证测试结果是否符合预期。在JMeter中,您可以在监听器中添加检查点来验证响应内容是否正确。
  5. 思考时间:思考时间是在用户之间模拟空闲时间。在JMeter中,您可以在线程组中设置思考时间来模拟用户在执行操作后等待的情况。
  6. 集合点:集合点用于控制并发用户数量。在JMeter中,您可以在线程组中设置集合点来控制并发用户数量。

3、JMeter什么是关联?使用什么元件实现?

服务器返回的一些动态数据,我们需要利用JMeter元件来获取这些内容,这个过程就是关联。

关联方式:

Regular Expression Extractor:正则表达式提取器

JSON Extractor:一般JSON的时候,用的比较多

XPath Extractor:一般xml的时候,用的比较多

【Regular Expression Extractor是重点】

【关联是提取响应中的数据传递给后续接口使用。使用正则表达式提取器实现是重点】

在JMeter中,关联是指在测试计划中,通过将一个接口的输出数据作为另一个接口的输入数据,实现接口之间的数据交互。这种关联可以用于模拟实际业务场景中的数据传递和交互过程。

要实现关联,可以使用HTTP请求中的“关联”选项。具体实现步骤如下:

  1. 在第一个HTTP请求中,选择“关联”选项,并选择要传递的参数。
  2. 在第二个HTTP请求中,选择“使用之前样本数据”选项,并选择要接收的参数。

这样,第一个HTTP请求的输出数据就可以作为第二个HTTP请求的输入数据,实现接口之间的关联。

另外,也可以使用正则表达式提取器或JSON提取器等元件来实现关联。这些元件可以用于从上一个HTTP请求的响应数据中提取所需的数据,并将其传递给下一个HTTP请求使用。具体实现方法可以参考JMeter官方文档或相关教程。

4、JMeter什么是参数化?使用什么元件实现?

性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同账号,这时我们就需要参数化。

参数化方式:

CSV Data Set Config:CSV数据配置

User Parameters:用户参数

Counter:计数器

【参数化是为了不同用户使用不同的数据进行测试,实现用户行为的差异化。使用CSV数据配置实现是重点】

JMeter的参数化是指将脚本中的某些输入使用参数来代替,以实现数据驱动测试(Data Driven Test)。参数化可以帮助模拟不同的用户行为和输入值,从而更好地测试应用程序的性能。

在JMeter中,参数化主要依赖于CSV Data Set ConfigUser Variables两个元件。CSV Data Set Config允许您从CSV文件中读取数据,并将这些数据以变量的形式在测试中使用。您可以将不同的用户数据(如用户名、密码等)存储在CSV文件中,然后在JMeter中读取这些数据。User Variables允许您定义一组变量,并在测试计划中使用这些变量。您可以手动定义一些变量,或者使用函数和表达式动态生成这些变量。

具体实现步骤如下:

  1. 创建CSV文件,包含需要的数据,如用户名和密码。
  2. 在JMeter中添加一个CSV Data Set Config元件,并设置“Filename”为CSV文件的路径,“Variable Names”为CSV文件中的列名。
  3. 在需要使用这些数据的地方,使用variablename的形式引用这些变量。例如,可以在HTTP请求的“BodyData”中使用{username}和${password}。

5、JMeter什么是检查点?使用什么元件实现?

大并发的情况下有可能出现服务器响应出错(响应超时、响应不对等),所以我们有必要让JMeter来帮我们验证测试结果的正确性。

检查点方式

Response Assertion:响应断言

Assertion Results:断言结果

【断言是检查脚本操作是否跟与预期结果一样。使用响应断言实现是重点】

在JMeter中,检查点(Checkpoint)是通过添加断言(Assertion)来完成的。断言是用于验证测试结果是否符合预期的一种方法。在压力测试过程中,由于并发用户数量较多,服务器可能会返回一些异常或者错误信息,或者页面的某些元素可能丢失。针对这种情况,测试人员可以添加断言来检查特定的HTML标签是否存在,或者常见的错误信息是否出现等。

要添加断言,可以按照以下步骤进行:

  1. 找到需要添加断言的HTTP请求,在请求下方添加一个“断言”元件。
  2. 在“断言”元件中,选择“响应断言”或“参数断言”等合适的类型。
  3. 根据需要设置断言的条件。例如,如果想要检查服务器返回的HTTP响应码是否为200,则可以设置“响应代码”为“200”。
  4. 如果需要使用正则表达式进行匹配,可以在“匹配模式”中输入正则表达式。
  5. 点击“添加”按钮保存断言设置。

6、JMeter什么是事务?使用什么元件实现?

性能测试的结果统计时我们一定会关注TPS, TPS代表的是每秒事务数。

事务方式:

Transaction Controller:事务控制器

【事务是统计用户的操作的响应时间的。使用事务控制器实现是重点】

在JMeter中,事务是指将多个HTTP请求组合成一个事务,以便于分析和报告。这些请求可以是不同的页面请求,也可以是同一个页面内的不同操作或请求。

在性能测试中,有些操作或请求是逻辑上依赖相关的一个整体,不可分割;或者是为了方便度量我们关注的一组操作或请求的性能,将要将其看做一个整体。基于这些原因,我们把这些操作或请求放在一个事务控制器下。

事务控制类似于简单控制器,不仅提供了元素分组的功能;除此之外,还可以度量其包含的所有测试元素执行的响应时间。只有当事务控制器所有的取样器都成功时,事务控制器才成功。故需要页面请求与资源请求看做一个整体,放在一个事务控制器下;

另外,在做API或接口性能测试时,接口之间存在逻辑依赖关系,后一个接口会引用前面接口返回的结果,故需要将这些接口看成一个整体,放在一个事务控制器下,度量性能才能接近真实场景。

7、JMeter什么是集合点?使用什么元件实现?

性能测试需要模拟大量用户并发,集合点能够尽量让虚拟用户同一时刻发送请求,在 JMeter中集合点是通过定时器来完成的

集合点方式:

Synchronizing Timer:同步定时器

【集合点是实现大量用户并发(同一时间做同一操作)。使用同步定时器实现是重点】

JMeter中的集合点(JMeter Glue)是一种同步定时器,用于同步多个线程(或用户组)的执行。它可以让各个线程到达集合点后等待,等集齐指定的线程数后,再同时释放以便产生并发。这样可以模拟真实环境下多个用户同时进行某一操作,实现性能测试的最终目的。

在JMeter中,使用Synchronizing Timer(集合时间元件)来实现集合点。可以设置模拟用户组的数量、超时时间等参数来配置集合点的行为。

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

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

相关文章

Matlab 查找文件

1. 查找文件夹下具有指定文件名的所有路径 会遍历所有的文件夹及子文件夹 function filePath getAllFilePath(fileDir,filename) subDirs dir(fileDir); % 列出当前文件夹中的文件和文件夹 filePath []; for i 1:length(subDirs)% 判断是否为文件夹,如果是则递…

OpenHarmony实战:轻量级系统之配置其他子系统

除上述子系统之外,还有一些必要但是无需进行移植的子系统。如:分布式任务调度子系统、DFX子系统。 这些子系统添加方式比较简单,在“vendor/MyVendorCompany/MyProduct/config.json”文件中进行如下配置即可: {"subsystem&…

STM32 TIM DMA burst 输出变频 PWM 波形

1. 问题背景 客户需要 MCU 输出一组变频的 PWM 波形来控制外围器件,并且不同频率脉冲的个数也不同。STM32U5 芯片拥有 TIM1/TIM8 高级定时器,还有通用定时器TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。TIM 模块中,可通过修改 ARR 寄存器的…

OSPF中配置静态路由负载分担实验简述

OSPF中配置静态路由负载分担 实验简述 在静态路由负载分担中,多个路由器被配置为共享负载的目标,以实现流量的均衡分配。 到达目的地有N条相同度量值的路径,默认值60,N条路由是等价路由,数据报文在N条链路上轮流发送。…

docker------docker入门

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:Linux 🤝希望本文对您有所裨益,如有不足之处&#…

php运行python脚本失败怎么解决

假设有文件:php_test.php python_test.py 在php文件中运行Python: exec("python python_test.py", $array, $ret); 如果运行Python出错并不能保存在数组array中,因此应该把标准错误重定向到文件中,以上代码改写如下&a…

国外媒体推广软文宣发:促进海外宣发新风尚,迈向国际舞台

大舍传媒http://www.dashemeijie.com 序言 伴随全球经济一体化发展趋向,越来越多的中国企业希望在国际舞台上表现自己的总体水平。而国外媒体软文发稿作为一种全新的海外宣传方式,正逐渐成为促进海外宣发新风尚的主要常用工具。接下来我们就探讨国外媒…

记 log4j-over-slf4j.jar AND bound slf4j-log4j12.jar jar包冲突问题

报错信息如下 SLF4J: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError. SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details. Exception in thread “main” java.lan…

WPS二次开发专题:如何获取应用签名SHA256值

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 在申请WPS SDK授权版时候需要开发者提供应用包名和签…

uni-app开发微信小程序使用BLE低功耗蓝牙正确步骤

文章目录 前言连接逻辑建议 参考资料:https://www.hc01.com/downloads 前言 微信小程序通过蓝牙连接设备,所以需要使用到BLE连接。 思路: 小程序连接BLE的步骤已经知道设备的BLE名称、服务id、特征值ID。需要根据蓝牙模块提供商的说明书去…

Pycharm+Neo4j红楼梦人物关系图谱

欢迎来到我的主页~【蜡笔小新..】 本篇收录于专栏【Python】 如果对你有帮助,希望点赞收藏加关注啦~ 目录 前言 neo4j基础知识 Pycharm及代码实现 py2neo 数据集获取 代码介绍 前言 Python实验课时,老师提到用知识图谱构建红楼梦的人物关系图&…

实战webSocket压测(二)jmeter配置webSocket连接

背景 我们可以通过Jmeter添加插件实现webSocket脚本编写。WebSocket的插件较多,我选择以WebSocket Samplers by Peter Doornbosch为例来进行配置。 步骤1、WebSocket Samplers插件安装 下载地址:JMeter WebSocket Samplers,建议下载最新版本…

如何在pgAdmin中用替换的值更新jsonb列?(二)

上一篇提到怎么替换jsonb,链接如下: 如何在pgAdmin中用替换的值更新jsonb列?-CSDN博客 那么当jsonb嵌套jsonb应该怎么替换呢?像这样,类型依然是jsonb,只不过嵌套一层,JsonData:&qu…

C++ //练习 11.9 定义一个map,将单词与一个行号的list关联,list中保存的是单词所出现的行号。

C Primer(第5版) 练习 11.9 练习 11.9 定义一个map,将单词与一个行号的list关联,list中保存的是单词所出现的行号。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /***********…

九河云:在AWS上实现跨region VPC互联

如何跨region实现不同VPC之间的对等链接?九河云为您介绍AWS跨region连接方案。 说明:VPC-A位于弗吉尼亚region,VPC-B位于俄勒冈region 本文将在同一账户的弗吉尼亚和俄勒冈VPC中各启用一台EC2(本文已提前创建好VPC、EC2等资源&am…

hive的使用(本地数据上传到idea)

1.首先第一步是先启动hive,hive的启动指令如下 nohup hiveserver2 & 2.然后我们进入idea中 这里我们使用的是idea里的Apache Hive的插件,进行配置,等我们跟moba连接好后,就可以进行数据的导入了。 hive的sql和mysql里的sql语…

WPS二次开发系列:以自动播放模式打开PPT文档

在前面文章中 WPS SDK打开文档并实现保存回传 介绍了如何使用WPS SDK打开文档,那么我们是否能够实现在打开WPS 文档的时候能够传递一些参数来控制打开文档的行为呢,经过研究WPS SDK相关文档和API,最终实现了 以自动播放方式打开PPT文档功能。…

LeetCode-146. LRU 缓存【设计 哈希表 链表 双向链表】

LeetCode-146. LRU 缓存【设计 哈希表 链表 双向链表】 题目描述:解题思路一:双向链表,函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。一张图:知识点__slots__ 解题思路二:0解题思路三:0 题目描述&am…

【Web】2024红明谷CTF初赛个人wp(2/4)

目录 ezphp playground 时间原因只打了2个小时,出了2道,简单记录一下 ezphp 参考文章 PHP filter chains: file read from error-based oracle https://github.com/synacktiv/php_filter_chains_oracle_exploit 用上面的脚本爆出部分源码&#xff…

uniapp开发app使用谷歌地图(ios跟安卓)

前提条件&#xff1a; 谷歌地图需要翻墙&#xff0c;否则无法加载 谷歌地图说明 文档地址&#xff1a;概览 | Maps JavaScript API | Google for Developers 设置地图语言 <script asyncsrc"https://maps.googleapis.com/maps/api/js?keyYOUR_API_KEY&lang…