【性能测试】Jmeter详细操作-小白使用手册(2)

 

本篇文章主要介绍Jmeter中如何使用

JSON断言、同步定时器、事务控制器、CSV数据文件设置、HTTP Cookie管理器

目录

一:JSON断言

1:正确结果展示

2:错误结果展示

3:JSON配置

(1)Additionally   assert   value添加断言值

(2)Match   as  regular  expression正则匹配

4:正则表达式

(1)\d匹配数字 

(2)\s匹配字符

(3)最小匹配多少次

5:使用展示

二:同步定时器

1:场景引入

2:实现并发效果

3:前后对比

4:如果模拟用户组数量大于线程组数量

三:事务控制器

1:创建事务控制器

2:聚合报告的信息讲解

四:CSV数据文件设置

1:场景引入

2:创建我们要的信息

(1)创建一个表格

(2)保存文件

3:参数介绍

4:结果展示

五:HTTP  Cookie管理器

1:浏览器请求访问场景引入

2:Jmeter中不设置Cookie管理器演示

3:设置HTTP Cookie管理器


一:JSON断言

1:正确结果展示

2:错误结果展示

使用错误的名称

登录返回的数据中没有code1这个数据,所以没有找到这个result,换成data

3:JSON配置

(1)Additionally   assert   value添加断言值

①若不选Additionally   assert   value,表⽰添加断⾔值,则可⽤来判断字段是否存在
②选择Additionally  assert  value,则必须添加Expected  Value期望的断⾔值(这里区分大小写)

 

(2)Match   as  regular  expression正则匹配

③若不选Match   as  regular  expression正则匹配,则Expected  Value必须填写完整,少⼀个字符都会导致断⾔失败
④若选择Match   as   regular   expression正则匹配,则Expected    Value可以仅写上部分关键词即可断⾔成功

去匹配我们的token字符串

4:正则表达式

(1)\d匹配数字 

(2)\s匹配字符

\s匹配所有空白符,包括换行;\S非空白符,不包括换行;

(3)最小匹配多少次

5:使用展示

 

二:同步定时器

1:场景引入

配置了五个线程,我们想要让这个五个线程达成同步并发的效果,但是看我们当前的执行情况,这些线程是在1s内陆陆续续的完成,没有达成我们预想中并发执行的效果。(这里就是谁先准备好,谁就先发起请求)

2:实现并发效果

想象一个场景:我们行人在过马路前需要等待红灯跳转到绿灯,行人在这个等待的过程中越聚越多,绿灯一亮,行人则蜂拥而过。

 同步定时器可以理解为集合点,当线程数量达到指定值后,再⼀起释放,可以瞬间产⽣很⼤的
压⼒。这样,可以更好地模拟真实的⽤⼾并发访问场景,提⾼测试的准确性和可靠性。

配置的数量与我们前面设置好的线程组的数量保持一致

3:前后对比

所有线程都准备好了,一起发送请求,达到并发的效果

4:如果模拟用户组数量大于线程组数量

这里就会卡主,因为没有它会一直等待到50个线程准备完毕,才发送请求。所以这里设置的数量不可以大,那可以小吗?

答案也是不可以的,假设我们当前设置的模拟用户组数量为3,那么我们就是分3个一组请求一次,但是我们设置的是5个线程呀,还有2个线程凑不出来3,所以就迟迟不能发送请求。也会卡主

那又有一个问题了: 若小于配置的线程数,线程组中的线程数与当前配置的数据必须成整数倍。这个结论是否正确呢?

也是不可以的,假设我们的线程组数量为(6),我们第一轮准备好的线程数(5)>=配置的数量3,就直接发送请求了(3),此时还有一个就落单了,落单的那个线程就会一直等

所以当配置的数量小于线程数时,最好把循环打开,避免最后一次为准备好的线程数量达不到并发数

三:事务控制器

我们现在有5个接口

打开聚合报告,就会显示五个接口的相关测试信息

1:创建事务控制器

思考:我们现在如果想要把登录接口和列表接口合并成一个事物,应该怎么做呢?

执行合并操作

再打开聚合报告,就会发现,多了一行我们的登录事务

2:聚合报告的信息讲解

登录和用户信息接口平均响应时间分别为34ms和22ms,相加登录事务为56ms

列表页返回的data数据比较多,所以响应的时间比较高是正常的

一般看90%的请求对应的响应时间

(1)异常就是错误率

(2)吞吐量——有两种划分方式

①请求的数量划分

TPS——每秒处理的事务数量(常用)发送很多请求,每秒处理的事务数越高,tps越高,性能越高

QPS——每秒的查询率

②网络数据包划分

四:CSV数据文件设置

1:场景引入

以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和password,然⽽实际使⽤中不可能只有⼀个⽤⼾登陆,为了模拟更真实的登录环境,我们需要提供更多的⽤⼾username和password来实现登录操作

我们现在不把用户名和密码写死,

2:创建我们要的信息

(1)创建一个表格

word文档

(注:如果我们数据库当中的用户数量不多的话,可以自己添加一些数据进去,这里在查看数据库是可以格式化查看,比如select * from user\G)无分号,格式化查看

(2)保存文件

3:参数介绍

⽂件名:填写csv⽂件的路径。建议使⽤绝对路径。
• ⽂件编码:UTF-8
• 变量名称:从csv数据⽂件中读起的数据需要保存到的变量名。有多个变量时⽤逗号分隔
• 是否忽略⾸⾏:是否从csv数据⽂件第⼀⾏开始读取。
• 分隔符:要求与csv数据⽂件中多列的分隔符⼀致
• 遇到⽂件结束符再次循环:若选择为True当数据不够的时候会从头取。若选择False,则需要勾选
下⾯的配置,遇到⽂件结束符停⽌线程,这⾥如果不勾选,请求将会报错。

4:结果展示

配置多个线程数,我们才能看到多个不同的用户,发起请求

五:HTTP  Cookie管理器

1:浏览器请求访问场景引入

我们访问第一个login登录接口,会设置这个Cookie信息,

进行302临时重定向之后,第二次访问最下方的login,也会带上一次的Cookie信息

2:Jmeter中不设置Cookie管理器演示

这里没有加入Cookie管理器所以第二次登陆请求头当中就没有携带上我们当前线程的Cookie信息,所以浏览器就找不到对应的Session会话

3:设置HTTP Cookie管理器

结果展示

总结:如果没有设置HTTP Cookie管理器,那么第一个接口中获取到的Cookie信息是不会带入到其他的接口当中的。

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

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

相关文章

分布式锁—Redisson的同步器组件

1.Redisson的分布式锁简单总结 Redisson分布式锁包括:可重入锁、公平锁、联锁、红锁、读写锁。 (1)可重入锁RedissonLock 非公平锁,最基础的分布式锁,最常用的锁。 (2)公平锁RedissonFairLock 各个客户端尝试获取锁时会排队,按照队…

国产编辑器EverEdit - 脚本(解锁文本编辑的无限可能)

1 脚本 1.1 应用场景 脚本是一种功能扩展代码,用于提供一些编辑器通用功能提供不了的功能,帮助用户在特定工作场景下提高工作效率,几乎所有主流的编辑器、IDE都支持脚本。   EverEdit的脚本支持js(语法与javascript类似)、VBScript两种编程…

服务器上的nginx因漏洞扫描需要升级

前言 最近客户联系说nginx存在安全漏洞 F5 Nginx 安全漏洞(CVE-2024-7347) F5Nginx是美国F5公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。F5 Nginx存在安全漏洞,该漏洞源于可能允许攻击者使用特制的…

ASP.NET CORE MVC EF框架

1.一个视图中的多个表单Form中的变量。 方式一:视图中跨Form变量不能用,得各自定义变量否则编译不能通过。变量名还不能相同。 或者方式二:在Form之外定义变量 {ViewData["Title"] "ExpenseForm"; }  {L…

【MySQL 中 `TINYINT` 类型与布尔值的关系】

MySQL 中 TINYINT 类型与布尔值的关系 在 MySQL 数据库中,BOOLEAN 类型并不存在,BOOLEAN 或 BOOL 都是 TINYINT(1) 的别名。通常,TINYINT(1) 类型用于存储布尔值。 1. TINYINT 类型介绍 TINYINT 是一个占用 1 字节的整数类型,取…

【Rust基础】Rust后端开发常用库

使用Rust有一段时间了,期间尝试过使用Rust做后端开发、命令行工具开发,以及做端侧模型部署,也尝试过交叉编译、FFI调用等,也算是基本入门了。在用Rust做后端接口开发时,常常会找不到一些合适库,而这些库在J…

[leetcode]位运算

一.AND &运算 注:两个操作数做&运算结果是不会变大的 二.OR |运算 注:两个操作数做|运算结果是不会变小的 三.XOR(异或) ^运算 注:结果可能变大也可能变小也可能不变,但是不会导致进位,比如两个四位的数字做…

常见FUZZ姿势与工具实战:从未知目录到备份文件漏洞挖掘

本文仅供学习交流使用,严禁用于非法用途。未经授权,禁止对任何网站或系统进行未授权的测试或攻击。因使用本文所述技术造成的任何后果,由使用者自行承担。请严格遵守《网络安全法》及相关法律法规! 目录 本文仅供学习交流使用&am…

前置机跟服务器的关系

在复杂的IT系统架构中,前置机与服务器的协同配合是保障业务高效、安全运行的关键。两者的关系既非简单的上下级,也非独立个体,而是通过功能分层与职责分工,构建起一套既能应对高并发压力、又能抵御安全风险的弹性体系。 在当今复…

MySQL中有哪些索引

1,B-Tree索引:常见的索引类型 2,哈希索引:基于哈希表实现,只支持等值查询 ,只有Memory存储引擎和NDB Cluster存储引擎显示支持哈希索引 3,全文索引:可在字符列上创建(T…

Python爬虫---中国大学MOOC爬取数据(文中有数据集)

1、内容简介 本文为大二在校学生所做,内容为爬取中国大学Mooc网站的课程分类数据、课程数据、评论数据。数据集大佬们需要拿走。主要是希望大佬们能指正代码问题。 2、数据集 课程评论数据集,343525条(包括评论id、评论时间、发送评论用户…

Tomcat 安装

一、Tomcat 下载 官网:Apache Tomcat - Welcome! 1.1.下载安装包 下载安装包: wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz 安装 javajdk。 yum install java-1.8.0-openjdk.x86_64 -y /etc/altern…

MC34063数据手册解读:功能、应用与设计指南

MC34063A/MC33063A 系列是摩托罗拉(现 NXP)推出的高集成度 DC-DC 转换器控制电路,适用于降压、升压和反相应用。本文将基于官方数据手册,对其核心功能、关键参数、典型应用及设计要点进行详细解读。 一、核心功能与特性 集成度高…

基于SpringBoot实现旅游酒店平台功能十一

一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高,旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求,旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上&#xff0…

Linux入门 全面整理终端 Bash、Vim 基础命令速记

Linux入门 2025 超详细全面整理 Bash、Vim 基础命令速记 刚面对高级感满满的 终端窗口是不是有点懵?于是乎,这份手册就是为你准备的高效学习指南!我把那些让人头大的系统设置、记不住的命令都整理成了对你更友好的格式,让你快速学…

基于deepseek的图像生成系统

目录 问题 核心思路 pollinations 提示词 基于deepseek的图像生成系统 项目说明 详细说明 1. 注册流程 2. 登录流程 3. 图片生成流程 4. 图片下载流程 项目结构 代码实现 1. 配置文件 config.py 2. 数据库模型 models.py 3. 解决循环引用 exts.py 4. 登录和…

mac安装mysql之后报错zsh: command not found: mysql !

在Mac上安装MySQL后,如果终端中找不到mysql命令,通常是 因为MySQL的命令行工具(如mysql客户端)没有被正确地添加到你的环境变量中。 检查 MySQL 是否已安装 ps -ef|grep mysql查看到路径在 /usr/local/mysql/bin 查看 .bash_pro…

骨质健康护理笔记

1. 阅读资料 《骨质疏松症不是“老年病”!除了补钙、晒太阳,专家还推荐… —— 健康湖北》

CSS3 用户界面设计指南

CSS3 用户界面设计指南 引言 随着互联网的快速发展,用户界面设计已经成为网站和应用程序吸引和留住用户的关键因素之一。CSS3,作为Web开发中的核心技术之一,提供了丰富的工具和特性来改善用户界面。本文将深入探讨CSS3在用户界面设计中的应用,包括基本概念、常用技巧以及…

Mybatis3 调用存储过程

1. 数据库MySQL,user表 CREATE TABLE user (USER_ID int NOT NULL AUTO_INCREMENT,USER_NAME varchar(100) NOT NULL COMMENT 用户姓名,AGE int NOT NULL COMMENT 年龄,CREATED_TIME datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,CREATED_BY varchar(100) NOT NUL…