JMETER与它的组件们

os进程取样器

这个取样器可以让jmeter直接调用python写的测试数据

 这样就可以调用python写的测试数据给到jmeter进行调用

注意:1建议python返回转json格式dumps一下;2py文件中需要把结果打印出来,可以不用函数直接编写

 传到jmeter之后可以用json提取出来给后面的接口使用

JSON提取器与Debug Sampler

我们平时会遇到很多JSON格式的接口返回,我们需要提取参数可以用JSON提取器,同时配合自带的调试器来进行调试。

 JSON提取器

Name of created variables:提取的值存放的变量名称
JSON Path expression:表达式,就是刚在在结果树中验证的表达式,可以同时使用多个表达式,用分号隔开
Match No:0 随机 1第一个 -1所有
Compute concatenation var:如果匹配所有时,就将所有值存入变量名_ALL 中
Default Value:提取不到值时默认值
我们使用Dummy sampler来mock一个返回(这里不会可以上一篇)

{
    "topic":"mock_api",
    "data":{
        "errormes":"",
        "response":[
            {
                "name":"A",
                "age":18
            },
            {
                "name":"B",
                "age":30
            }
        ]
    }
}

现在我们来提取age这个字段,这里会分享不同的方法来取值

第一种:一层一层从上至下取age=18这个值

1

2

//每一层就是一个".",因为response是个列表,我们去索引为0

$.data.response[0].age

 第二种:有条件的筛选name=A的age,使用表达式:[?(@.key == value)]

//$..直接去找response字段,根据表达式去找name是A的age
$..response[?(@.name=="A")].age

第三种:直接根据表达式找,并且可以一次性提取多层多变量

// Result[0]={"name":"A","age":18}
$..[?(@.name=="A")].["age","name"]
// Result[0]=18
$..[?(@.name=="A")].age

效果展示

 

 计数器

 然后我们设置不同的线程和循环次数来看看效果

设置线程1,循环3

 设置线程2,循环3

 设置线程2,循环3,勾选上方计数器中的与每用户独立的跟踪计数器

  设置线程2,循环3,勾选上方计数器中的与每用户独立的跟踪计数器 和 在每个线程组迭代上重置计数器

 while逻辑控制器、循环控制器、if逻辑控制器和测试活动

这两个我们放在一起,假设我们需要去判断循环的次数大于5就自动跳出循环

while控制器

 填入 ${__jexl3("${num}" != "5",)}

 循环五次后退出,这里需要注意的是while条件中一般只会使用javaScript或者jexl3(这两个都是在函数助手中查看,辅助编写)

循环控制器+if控制器

 勾选上永远,这样就会一直循环(这里勾选上只要是为了和上面while控制器模拟同一个场景,一般不会勾选永远,下面在做if判断,这样太麻烦了)

我们在for循环下面增加if控制器去判断是否满足我们需要的条件,if下面增加一个动作控制器,如果满足if条件就Break,跳出循环

if条件填入 ${__jexl3("${num}" == "5",)}

这样就达到和while相同的效果了

 

 断言

 汉化过后断言就很好理解,这里讲一下模式匹配规则:

包括(contains):包含指定的某个或多个字符串,支持正则表达式

匹配(match):完全匹配指定的字符串,判断为成功,支持正则表达式

相等(equals):响应需要完全匹配指定的字符串,不支持正则

字符串(Substring):响应中需要包含指定字符串,不支持正则

否(Not) 和 或者(or):就是对上述判断做的逻辑运算

 随机变量

在配置元件中有个随机变量简单好用

 

HTTP镜像服务器

可以理解做了一个挡板,把我们自己当做服务器,把我们自己收到的请求原封不动的显示出来,方便调试请求

 

 设置好服务器记得点击启动

 

 这时候请求的数据就会全部显示在你面前了

JDBC

JDBC链接数据库

链接数据库我们需要一个链接数据的jar包:MySQL :: Download MySQL Connector/J (Archived Versions)

 步骤

1 测试计划中添加上方下载的jar包

2 添加一个线程组 添加一个jdbc链接配置器

DataBase URL:库名+?+ useUnicode=true&characterEncoding=utf8,加入后缀防止乱码

3 取样器中添加一个jdbc request

 4把需要取得值放入变量

1

2

value=vars.getobject("resultserial_nos").get(8).get("serial_number");

vars.put(serial_number,value);

 

 同步定时器

 同步定时器设置了集合点,达到并发的作用

说到并发绕不开的就是并行:并发其实就是任务切换,而并行就是多个进程同时进行,Jmeter也提供了并发插件这里不做赘述,有兴趣的可以去插件管理内自己下载:Parallel Controller

事务控制器

我们需要去测试几个接口的混合场景下的性能,就需要把几个接口放到一个事务中

 

 

stepping Thread Group + jp@gc - Transactions per Second + jp@gc - Response Times Over Time

线程组中有个stepping thread group可以帮助我们不断加压增加线程组数量来查看不同压力下的tps

 

 安装插件: jpgc - Standard Set这里有jp@gc - Transactions per Second可以用这个查看每秒事务处理

纵坐标为TPS横坐标为时间

纵坐标为请求响应时间

 

 

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

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

相关文章

智慧应急:构建全方位、立体化的安全保障网络

一、引言 在信息化、智能化快速发展的今天,传统的应急管理模式已难以满足现代社会对安全保障的需求。智慧应急作为一种全新的安全管理模式,旨在通过集成物联网、大数据、云计算、人工智能等先进技术,实现对应急事件的快速响应、精准决策和高…

复盘丁磊造车危机:超10亿美金融资搁浅,高合等待救援

作者 |祥威 编辑 |德新 2024年春节过后,新造车公司华人运通宣布停工停产,等待最后救援。 华人运通由丁磊创办于2017年,2019年发布高合HiPhi ,定位「豪华智能纯电品牌」,至今推出的量产车型有高合HiPhi X、Z、Y。 丁…

MATLAB环境下使用相关图可视化相关矩阵

为了处理各行各业中出现的高维数据,迫切需要寻找适用的统计学方法。大维随机矩阵理论是处理高维数据的理论工具之一,在高维统计分析中,表现出良好的性能并有着广泛的应用。 二十世纪四十年代和五十年代初期,大维随机矩阵理论起源…

377组合总和 Ⅳ

题目 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums [1,2,3], target 4 输出:7 解释&…

模型选择与评估

🚩 机器学习的一般流程包括:数据集的准备与预处理、搭建模型、模型训练、模型评估与应用。 在现实任务中,我们往往有多种学习算法可供选择,甚至对同一个学习算法,当使用不同的参数配置时,也会产生不同的模型…

@Slf4j 变量log找不到符号,可能是 Gradle 配置文件写得有问题

Slf4j 变量log找不到符号 鄙人在学习 Java 的 spring boot 项目时, 常常因为 maven 配置文件使用 xml 格式过于复杂, 所以更倾向于使用 gradle 作为构建工具. 然而, 在使用 gradle 作为构建工具时, 又需要引用 Lombok 依赖. 有时忘记在初始化项目时添加上 Lombok 依赖, 所以经…

源码安装nginx保姆级教程

一.目录存放 1./usr/lib/syste,md/system/:每个服务最主要的启动脚本设定 2. /run/systemd/system/:系统执行过程中所产生的服务脚本,这些脚本的优先序要比 /usr/lib/systemd/system/ 高! 3./etc/systemd/system/:管…

力扣:9. 回文数

力扣:9. 回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如&#xf…

【Redis | 第一篇】快速了解Redis

文章目录 1.快速了解Redis1.1简介1.2与其他key-value存储的不同处1.3Redis安装——Windows环境1.3.1下载redis1.3.2启动redis1.3.3进入redis客户端1.3.4修改配置 1.4Redis安装——Linux环境1.4.1安装命令1.4.2启动redis1.4.3进入redis客户端 1.5配置修改1.6小结 1.快速了解Redi…

开源项目:图像分类技术在医疗影像分析中的应用与实践

一、引言 在当今快速发展的医疗行业中,数字医疗正逐渐成为提升医疗服务质量和效率的关键力量。本项目旨在通过整合医药电商、远程问诊、慢病管理等多维度服务,为消费者和企业提供全面的医疗解决方案。项目的核心在于运用先进的图像分类技术,以…

开工大吉,接单助你!

新年的气息逐渐散去,打工人重返岗位,开启新一年的搬砖! 虽说,个个都叫嚷着“这个班是非上不可不可嘛?!”但不少人新年的第一条朋友圈却是“开工大吉”。好吧, 在生活和金钱的威逼利诱下&#…

OSCP靶场--Shenzi

OSCP靶场–Shenzi 考点(1.目录扫描:可以尝试使用多个工具(扫描不出来任何东西,可以结合机器名拼接url 2.WP 目标插入webshell getshell 3.windows环境AlwaysInstallElevated提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- …

云呐智能运维包含哪些内容?运维未来的发展方向是什么?

智能运维(AIOps)是一种使用人工智能应用程序来调节IT操作和维护的实践方式。它结合了大数据和机器学习技术,旨在自动化和改进IT操作和维护任务,如故障检测、因果分析和自动故障修复。以下是智能操作和维护的具体内容、挑战和解决方…

ANTLR4规则解析生成器(三):遍历语法分析树

文章目录 1 词法分析2 语法分析3 遍历语法分析树3.1 Listener3.2 Visitor 4 总结 1 词法分析 词法分析就是对给定的字符串进行分割,提取出其中的单词。 在antlr4中,词法规则的名称的首字母需要大写,右侧必须是终结符,通常将词法…

unity自定义着色器基础

这些内置渲染管线的着色器示例演示了编写自定义着色器的基础知识,并涵盖了常见的用例。 有关编写着色器的信息,请参阅编写着色器。 设置场景 第一步是创建一些用于测试着色器的对象。在主菜单中选择 Game Object > 3D Object > Capsule。然后&a…

掘根宝典之C语言字符,字符串常量,字符串数组,字符指针,字符指针与字符串数组的区别

字符 什么是字符? 字符就是我们键盘上面能打出的字符,包括所有英语大小写单词,数字0到9,以及各种符号等。 C语言中的字符是用单引号括起来的,例如a, b, A, 1等。字符可以用来表示字母、数字、符号等。在C语言中&…

继续预训练对大语言模型的影响

翻译自文章:Investigating Continual Pretraining in Large Language Models: Insights and Implications 摘要 本文研究了大型语言模型(LLMs)中不断学习(CL)的不断发展领域,重点是制定有效和可持续的训练…

【前端素材】推荐优质在线服饰购物电商网页Uthr平台模板(附源码)

一、需求分析 1、系统定义 在线服饰购物商城是指一个通过互联网提供服装和配饰购买服务的电子商务平台。这类商城通常提供一个网站或移动应用程序,让顾客可以浏览、选择和购买各种类型的服装、鞋帽、包包、配饰等时尚商品。 2、功能需求 在线服饰购物商城是指一…

网工内推 | 项目经理,软考证书优先,最高26K,加班补贴

01 龙盈智达 招聘岗位:项目经理 职责描述: 1 根据业务员需求,完成生态圈下账簿中心系统的开发管理工作。 2 负责账簿中心实施过程中的需求调研分析、方案设计、开发测试、系统上线等工作的计划、组织协调、沟通等方面管理工作。 3 完成系统核…

计算机网络-网络互连和互联网(四)

1.TCP协议: 传输控制协议,面向字节流按顺序连接,可靠,全双工,可变滑动窗口,缓冲累积传送。协议号为6。下面是TCP段(段头),TCP头(传输头)&#xf…