Jmeter常用场景梳理

2023-05-16

一.在一段时间内持续发送请求

        此场景可以用于稳定性测试,在稳定性测试中,通常需要持续压测几个小时甚至几天时间,查看接口是否有报错,或者cpu、内存会上涨,此时就需要通过控制持续时间来达到此目的。

1.创建线程组,循环次数勾选永远

2.勾选调度器,持续时间输入120,即可在120秒内持续调用接口

二.每秒钟固定调用次数

如果想控制每秒发送请求数量,仅仅通过线程数与循环次数是不够的,因为这只能控制发送总数,而要控制每秒发送数量,需要线程数与常数吞吐量控制器的搭配使用,这种场景在性能测试中使用不多。

例如每秒钟调用30次接口,那么把线程数设置为30,将常数吞吐量控制器的每分钟样本量设置为60,即每个线程每秒钟调用一次,通过此设置可以控制每秒钟的调用次数。

三.数据库操作

Jmeter不仅可以作为性能测试工具和接口自动化工具,也可以作为日常数据库操作的工具。如果想循环多次操作数据库,例如插入多条数据,不需要写java或者python代码,仅仅通过Jmeter添加几个插件就可以实现了。

1.先在测试计划中配置数据库连接中间件,以mysql5.7为例,下载mysql-connector,如果是mysql8+,还请网上自行下载对应connector。

然后配置到Jmeter的测试计划中。

2.创建线程组和JDBC Connection Configuration,然后配置变量名称

3.在下面的Database Connection Configuration中配置数据库url、driver、name、password

4.创建JDBC Request,变量名称与上一步的变量名称一致,下方输入sql语句,执行即可

5.如果数据的某个字段需要随机生成,可以配合工具->函数助手来完成

四.将响应结果提取并写入csv

有时在进行性能测试时,需要将上一个接口的响应结果进行持久化保存,从而作为下一个接口的参数进行性能压测。创建线程组和HTTP请求,请求的响应结果中包含currentUserId这个字段,假定要提取这个字段

1.配置正则表达式提取器,每个字段的含义可查看此文章:https://zhuanlan.zhihu.com/p/27999878

2.配置BeanShell PostProcessor,参数与正则表达式中的引用名称一致,用${}进行引用,脚本如下:

FileWriter fw = new FileWriter("D:\\account1.csv",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(vars.get("param"));
bw.newLine();
bw.close();

五.线程组内参数传递

实现参数传递是做接口自动化的前提之一,而Jmeter可以实现参数提取与参数传递,例子中创建了两个HTTP请求,新闻列表请求会返回新闻列表uniquekey

而新闻详情请求的参数需要通过uniquekey,来返回详情内容。

1.在新闻列表的请求中增加JSON提取器,JSON Path expressions输入JsonPath表达式,定位到要提取的字段,然后赋值给变量“name”。

2.在新闻详情的请求中通过${}的形式,提取上一个接口的变量,注意此处变量用的是“name”

六.跨线程组参数传递

性能测试中,两个相关联的接口不一定都在同一个线程组,遇见这种情况时,我们要进行跨线程组传参,与上一个示例基本相同,只不过在第一个线程组中使用了BeanShell后置处理器,将参数保存到了全局变量。此处还是用新闻列表和新闻详情两个请求举例,只不过这次将两个请求分别放入不同的线程组。

1.新闻列表请求中配置BeanShell后置处理器,将“name”变量保存到全局变量中,并重新叫做“NAME”

${__setProperty(NAME,${name},)}

2.新闻详情请求中使用下面这种方式提取全局变量

${__property(NAME,,)}

3.如果失败,记得查看测试计划里是否勾选独立运行每个线程组,勾选后才生效

七.吞吐量控制器

在进行混合负载测试时,需要按照线上实际的流量,添加多个接口进行测试,此时就需要使用吞吐量控制器来进行流量的分配。例如将三个接口按照30%、50%、20%的比例进行分配,持续调用一段时间后,最终调用三个接口调用的样本数为:3:5:2

1.在每个接口上增加吞吐量控制器,注意吞吐量不要加百分号

2.持续调用20秒,查看聚合报告,样本数量基本保持3:5:2

 

八.id自增控制器

使用jmeter调用接口或者往数据库插入数据时,经常遇见id不能重复的情况,此时可以通过计数器来完成。

1.添加计数器控制元件,输入起始值、步长和引用名称

2.接口调用时使用${}引用计数器的引用名称即可实现变化

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jmeter常用场景梳理 的相关文章

  • 技术招聘漫谈 | Java工程师招聘难?你可能需要这份独家指南

    两周前 xff0c 我们发布了一篇关于怎样招聘前端工程师的文章 xff08 点击此处顾 xff09 在文章中 xff0c 我们分析了前端岗位有哪些必不可少的考察要点 xff0c 以及如何在面试中考核对方是否能写出高质量的代码 xff0c 这
  • 技术招聘演化论:怎样从纸上答题升级到实战编程?

    创新赛道的出现 一些企业或许已经对招聘管理系统 xff08 Applicant Tracking System xff0c 简称 ATS xff09 有一定了解 xff0c ATS 可以帮助企业管理招聘流程 xff0c 其中包括发布招聘信息
  • 一次查找分子级Bug的经历,过程太酸爽了

    Debugging is like trying to find a needle in a haystack except the needle is also made of hay Debug调试就像是在大片的干草堆中找针一样 xff
  • k8s 内部实现服务注册和服务调用

    k8s内部的服务注册主要是依靠几个组件 coreDns service和pod的标签选择器 服务注册的流程 pod创建完以后 xff0c 一般我们都会打算一组标签 xff0c 标签是key value形式的 如下 apiVersion v1
  • 使用Jetson Nano向PX4提供T265位置信息,实现室内定点飞行

    使用的Jetson Nano镜像版本 xff1a 4 6 xff08 2021 08 04发布 xff09 NVIDIA官方镜像下载链接 1 安装 ROS Melodic 参考官网安装教程 设置sources list sudo sh c
  • 结束,也是开始。

    三年时光转眼即逝 xff0c 临到毕业才幡然醒悟 xff0c 自己掌握的专业技能太少 xff0c 最后几个月才养成了几个好习惯 在上班利用空闲时间多学学其他的技术 xff0c 希望自己可以不停的努力 xff0c 充实自己的每一天
  • win10 和ubuntu双系统设置启动顺序和时间

    安装了ubuntu18 04后 xff0c 默认启动项是ubuntu xff0c 如果希望默认启动项是windows xff0c 修改方法如下 xff1a 1 进入Ubuntu系统 xff0c 打开终端 xff0c 输入 sudo gedi
  • 论 "张筱雨"

    当今网络谁最红 xff1f 当今网络谁最裸 xff1f 当今网络谁征服了大多数男人们的眼球 xff1f 当今网络谁最具创新 xff0c 引领时尚潮流 xff0c 当今网络谁敢和日本AV女优叫板 那么她就是 张筱雨 张筱雨 xff01 xff
  • PostgreSQL 性能优化--参数的配置

    nbsp nbsp nbsp PostgreSQL的配置参数作为性能调优的一部分 起着重要的位置 有时候一个简单的配置参数就会觉得应用的性能 因此有必要简单了解下其相关的配置参数 查询Linux服务器配置 在进行性能调优之前 需要清楚知道服
  • EJB指导教程前言

    前言 xff1a 本人将通过EJB tutorialspoint 网站学习EJB相关知识 xff0c 并将一部分知识翻译整理写为博客 xff0c 加入自己的见解 xff0c 供分享和交流 一 EJB指导 企业级Java Beans EJB
  • RTOS概念介绍

    事件标志组 事件标志组是实现多任务同步的有效机制之一 也许有不理解的初学者会问采用事件标志组多麻烦 xff0c 搞个全局变量不是更简单 xff0c 其实不然 在裸机编程时 xff0c 使用全局变量的确比较方便 xff0c 但是在加上 RTO
  • EJB概述

    EJB含义为企业Java Beans EJB是J2EE平台的重要组成部分 开发者可以在J2EE平台使用基于组件的体系结构 xff0c 该结构目的为企业级应用程序提供多层 分布式和高度事务性等特性 EJB提供了一种开发和部署基于组件的企业应用
  • EJB - 环境设置

    一 本博客将根据tutorialspoint文档的指导进行EJB环境的设置 二 系统需求 EJB是Java的一个框架 xff0c 所以第一个要求是在您的机器上安装一个Java开发工具包 xff08 JDK xff09 JDK1 5 or a
  • EJB--应用创造上

    为了创建一个简单的EJB模块 xff0c 我们将使用NetBeans New project 向导 在下面给出的示例中 xff0c 我们将创建一个名为Component的EJB模块项目 一 创建项目 在NetBeans IDE中 xff0c
  • EJB-应用创造中

    一 构建项目 在项目资源管理器窗口中选择EjbComponent项目 右键单击它打开context菜单 选择clean and build 您将在NetBeans控制台输出中看到以下输出 ant f C EJB EjbComponent c
  • EJB--应用创造下

    创建客户端以访问EJB 一 创建客户端以访问EJB 在NetBeans IDE中 xff0c 选择File gt New Project gt 在 Java类别 下选择 项目类型 xff0c 将 项目类型 选为 Java应用程序 单击下一步
  • iptables 原来这么简单

    你在找一个完整的iptables教程吗 xff1f 在本文中 xff0c 我们将向您展示如何在linux系统上安装和使用iptables 通过了解这个Linux防火墙工具 xff0c 您可以使用命令行界面更好的保护Linux xff0c 免
  • zabbix 事件通知--邮件媒体配置

    一 概述 假设我们已经配置了一些项 xff08 items xff09 和触发器 triggers xff0c 并且现在由于一些事件而引起触发器的状态改变 xff0c 那么现在是时候考虑去做一些操作了 首先 xff0c 我们不想一直盯着触发
  • zabbix 事件通知--警告脚本配置

    一 概述 假设我们已经配置了一些项 xff08 items xff09 和触发器 triggers xff0c 并且现在由于一些事件而引起触发器的状态改变 xff0c 那么现在是时候考虑去做一些操作了 首先 xff0c 我们不想一直盯着触发
  • shell 脚本统计文件数

    下面这段代码展示了通过shell 脚本统计某个目录下的文件数 xff0c 并输出到文本文件中 bin sh declare x num1 61 0 read dir for file in 96 ls a 1 96 do echo 1 if

随机推荐

  • 文件传输命令(持续更新中)

    文件传输是非常常用的命令 xff0c 今天小编就带大家整理一下自己常用的一些文件传输命令 xff1a rsync 命令 rsync是可以实现增量备份的工具 配合任务计划 xff0c rsync能实现定时或间隔同步 xff0c 配合inoti
  • 滑模控制

    滑模控制 举例说明滑模控制 对于一个典型的二阶系统 x 1 61 x
  • wildfly软件介绍

    WildFly是什么 xff1f Wildfly是一个开源的基于JavaEE的轻量级应用服务器 xff0c 目前 xff0c 最新版本是Wildfly 15 xff0c wildfly遵循LGPL2 1许可 xff0c 意味着可以在任何商业
  • JDK介绍与安装

    xff08 一 xff09 JDK 简介 JDK Java SE Development kit JDK java开发工具包 JDK 全称Java SE Development kit JDK xff0c 即java 标准版 开发包 xff
  • 一个简单的java程序

    xff08 一 xff09 简单的java程序 public class MyFirstApp public static void main String args System out print 34 Hello world 34 x
  • Java 注释

    xff08 一 xff09 注释的重要性 编写程序的时候 xff0c 总需要为程序添加一些注释 xff0c 用以说明某段代码的作用 xff0c 或者说明某个类的用途 xff0c 某个方法的工能 xff0c 以及该方法的的参数和返回值的数据类
  • java 标识符,分隔符,关键字

    xff08 一 xff09 标识符的介绍 Java语言中 xff0c 对于变量 xff0c 常量 xff0c 函数 xff0c 语句块也有名字 xff0c 我们统统称之为Java标识符 标识符是用来给类 对象 方法 变量 接口和自定义数据类
  • Java基本数据类型

    这节博客将向大家讲解java的数据类型 xff0c 在讲解数据类型前 xff0c 先来看一下变量 xff08 一 xff09 变量 java语言是强类型语言 xff0c 强类型包含两方面的含义 1 xff1a 所有的变量必须先声明 xff0
  • 自动类型转换

    xff08 一 xff09 自动类型转换 在java 程序中 xff0c 不同的基本类型的值经常需要进行相互类型转换 xff0c 类型转换分为自动类型转换和强制类型转换 布尔类型boolean占有一个字节 xff0c 由于其本身所代码的特殊
  • Eclipse中设置Tomcat服务器

    01首先打开eclipse软件 xff0c 点击顶部的windows菜单 xff0c 选择下拉菜单中的preferences选项 xff0c 如下图所示 02在弹出的Preference界面中选择Server 找到左侧的Runtime En
  • games系列学习 -- Möller Trumbore 算法

    M ller Trumbore 算法 是三角形与射线 光线 之间判定是否相交的快速算法 利用了重心坐标来表示三角形 首先假设射线的方程 xff1a O为发射点 D为方向向量 再假设三角形平面方程 xff1a b1 b2 1 b1 b2 分别
  • 使用手机摄像头实现视频监控实时播放

    使用手机摄像头实现视频监控实时播放 一 概述 视频监控实时播放的原理与目前较为流行的直播是一致的 xff0c 所以采用直播的架构实现视频监控实时播放 xff0c 流程图如下 xff1a
  • 滑模观测器

    什么是滑模观测器 1 滑模观测器是一类动态系统 2 滑模观测器是指根据系统的外部变量 输入变量和输出变量 的实测值得出状态变量估计值的一类动态系统 xff0c 也称为状态重构器 3 作用 xff1a xff08 1 xff09 滑模观测器不
  • ROS入门_1.18 接下来做什么?

    此时你应该已经对ROS中的一些核心概念有了一定的理解 给你一台运行ROS的机器人 xff0c 你应该能够运用所学知识来列出机器人上发布和订阅的各种话题 xff08 topic xff09 xff0c 查看话题中发布的消息 xff0c 然后编
  • 【git】看懂git diff

    git diff 可以用来比较 xff1a 1 staging area和working area的文件 xff08 无其他参数时 xff09 plain view plain copy print git diff 2 master分支和
  • makefile 自动编译同一个目录下的所有文件

    SOURCE 61 wildcard c OBJS 61 patsubst c o SOURCE CROSS COMPILE 61 arm linux CXX 61 gcc CFLAGS 43 61 static CLFAGS 43 61
  • PX4_Bootloader单步调试配置(STM32F7 配置)

    Bootloader Makefile 编译选项 Os g 43 O0 43 ggdb3 Bootloader libopencm3 lib stm32 f7 Makefile TGT CFLAGS 61 Os g 43 TGT CFLAG
  • 2021北邮自考c++实践题及答案

    北邮c 43 43 实践考期 xff0c 只能在每年的下半年进行报名 xff0c 11月进行考试 由于疫情原因 xff0c 现在均为线上考试 xff0c 每人的考题不同 xff0c 但是大同小异 xff0c 此为2021年的c 43 43
  • 从idea推送代码到github,到jenkins部署,再到从github下载代码完成构建的全部详细操作流程

    目录 1 idea推送代码到github 1 1 github创建 1 2 git下载与安装 xff08 windows xff09 1 3 idea关联github 1 3 1 windows生成公私钥 1 3 2 idea关联githu
  • Jmeter常用场景梳理

    一 在一段时间内持续发送请求 此场景可以用于稳定性测试 xff0c 在稳定性测试中 xff0c 通常需要持续压测几个小时甚至几天时间 xff0c 查看接口是否有报错 xff0c 或者cpu 内存会上涨 xff0c 此时就需要通过控制持续时间