(性能测试)性能测试工具 2.jmeter的环境搭建 3jmeter元件和4使用实例 5jmeter元件和参数化

目录

性能测试工具

性能测试工具

jemeter环境搭建

jmeter的常用目录介绍

jmeter修改语言和主题--jmeter界面的汉化

jmeter元件 

jmeter元件和组件的介绍

jmeter的作用域原则

jmeter的执行顺序

案例:执行顺序

jmeter使用案例

jmeter线程组的介绍

jmeter线程组的参数介绍

http取样器参数详解

jemter参数化

参数化的介绍

用户定义的变量

用户参数

CSV数据文件设置

counter函数


现在有两款主流的性能测试工具

性能测试工具

性能测试工具

loadrunner存在我们需要的各种数据指标

loadrunner和jmeter是两款主流的性能测试工具  loadrunner支持的协议比较多 这个工具是使用c编写的 可以让每次发出去的请求都使用不同的ip发出去

缺点就是比较贵 限制使用用户和使用协议 需要支付一定的费用 

在现在很大的企业是会使用的 安装包就比较大 小公司是不会使用的

jemeter是使用千为单位的 

jemeter的所有的功能在loadrunner上都能找到原型  界面是不一样的 是比较开源的   支持的比较多 免费 内存较小 

具有较多的功能组件  不存在ip欺骗 

性能测试的目的:评估当前系统能力 定位系统的性能瓶颈,优化性能 预估对未来的业务的支持情况

jemeter环境搭建

jmeter是Java写的,所有用Java写的必须安装jdk,只有这样才可以运行

安装目录不能出现空格和中文

jmeter的版本要和jdk的版本是匹配的

.bat后缀是Windows下的正常的执行程序 另一种是exe文件

jmeter的常用目录介绍

bin目录:存放可执行文件和配置文件

docs:提供二次开发的文档  用于开发扩展组件 因为jmeter本身就是开源

lib里面存放的就是第三方库  lib中的ext存放的是第三方jar包

jmeter修改语言和主题--jmeter界面的汉化

修改语言:

但是这个并不是永久性的,永久性的要在bin目录中修改配置文件

打开软件:

cmd中直接输入jmeter就可以直接打开

bin目录中有一个启动文件:也可以在这里直接打开

使用配置文件进行修改

修改的时候,去掉注释 然后修改语言

jmeter元件 

jmeter元件和组件的介绍

 元件:一个一个的类 右键添加线程组

线程组就相当于用户  线程组就是用户的意思  因为脚本是用户的意思

右击取样器--用来发送请求 这个就相当于是request

逻辑控制器--控制语句的执行顺序 if else for

前置处理器--对请求参数进行预处理           后置处理器就是对响应结果进行处理

断言:检查接口返回的结果与预期结果是否一致

sleep就是等待

监听器就是查看日志 

元件就是容器的集合 组件就是方法  jdbc就是连接数据库的请求  

jmeter的作用域原则

作用域就是作用范围

jmeter的执行顺序

不同元件的执行顺序按照脚本的写作顺序来执行

写脚本的第一步就是初始化数据--  

同一作用域下的执行顺序是按照作用来排序

定时器永远都在取样器的前面  监听器用来看结果

若是在同一个作用域下有多个相同类型的元件:按照从上往下的顺序进行

案例:执行顺序

分析下面的执行顺序:

其中的定时器1每次都要执行一次  当父节点不是取样器的时候,对父节点下的所有子节点都要起作用

最先执行的是定时器1--http请求1--定时器1--定时器2--http请求2--定时器1--定时器3--http请求3

jmeter使用案例

jmeter线程组的介绍

当用户量很大的时候就可以做性能测试了

特点:可以模拟多人操作 多个线程组可以一起来运行  一个用例就是一个线程组  一个线程组作为一个测试脚本  

测试脚本可以串行和并行 取样器和逻辑控制器必须依赖线程组才能使用

分类:前置处理setup和后置处理

百度京东淘宝属于是并行 qq和搜狐分别位于首尾

setup:前置处理以及初始化的操作

线程数就是虚拟用户数

线程组就是模拟用户 支持多用户操作  多个线程组之间可以串行执行,也可以并行执行

jmeter线程组的参数介绍

为了更好的模拟用户的使用情况  可以虚拟用户启动所需要的时间

线程数就是用户数 

循环次数为永远就是一直在运行

下面的要想生效 就必须勾选调度器  设置等待时间

模拟十个用户并行执行: 5s内启动完成

jmeter是以毫秒为单位的

性能测试就是大量的数据请求

负载测试就是一组一组往上加

性能就是研究大量的数据请求

压力测试 负载测试测试的时间长差不多两个小时 稳定性测试12h

http取样器参数详解

get在path路径中进行传输 也可以在参数列表当中,以键值对的方式进行传输

post只能添加form类型的

响应结果显示乱码:修改配置文件:bin目录下

jemter参数化

参数化的介绍

参数化:使用参数的方式来替代脚本中的固定的测试数据

参数化的形式:实现方式:参数替代脚本---文件定义的方式 数据库的方式参数化

代码:定义变量--参数化  函数传参--参数化

文件定义:实际使用不多 注册登录 添加 测试数据都是固定的情况下 

定义变量多

数据库的方式和函数的方式比较多 适合业务需要

参数化!=文件定义

用户定义的变量

用户定义的变量作为全局参数使用  只要是定义的都是全局变量,不作为局部变量所使用

第一步先添加线程组,所有的脚本都加在线程组下面

第二部添加用户定义的变量

以英文作为变量

添加http请求,应用变量名 和postman很像:一个大括号,前面加一个$

最后查看结果树

因为协议是默认的,所以就是默认的

上面这个就是用来定义全局变量的!!!只要是全局的时候就可以使用了

用户参数

这里多加了一个用户参数!:::

可以添加变量和用户,左边是变量,右边是用户

因为只有张三和李四,所以线程组是2 线程数就设置为2

路径加上/S就不会有重定向

将线程组置为2,查看结果树中直接查看响应结果,有2个http请求,分别是张三和李四

CSV数据文件设置

添加CSV文件设置:

配置文件名:CSV文件

编码格式统一

变量名称:需要读取,存在临时变量

是否忽略首行:第一行是名字写在上面 不是就false:不忽略

以XXX方式进行分割

练习:

添加线程组,次数是3 添加3次循环

添加CSV数据文件设置

counter函数

 当CSV文件当中的数据比较大的时候,十万及以上数据,jemeter就崩了

所以当数据较多,函数就会起到很大的效果

counter函数,保证每次取得的数据是不一样的

函数:可以执行统计的次数  

true就是分开计数

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

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

相关文章

Qt程序基于共享内存读写CodeSys的变量

文章目录 1.背景2.结构体从CodeSys导出后导入到C2.1.将结构体从CodeSys中导出2.2.将结构体从m4文件提取翻译成c格式 3.添加RTTR注册信息4.读取PLC变量值5.更改PLC变量值6.Qt读写CodeSys的共享内存 1.背景 在文章【基于RTTR在C中实现结构体数据的多层级动态读写】中&#xff0c…

大模型架构全景解析:从Transformer到未来计算范式

1. Transformer 架构 核心模型 GPT-4、BERT、T5、LLaMA、通义千问、文心ERNIE 关键技术 多头注意力:GPT-4 使用 96 头注意力位置编码创新:LLaMA 采用 RoPE(旋转位置编码),Claude 3 引入 ALiBi归一化优化&#xff1…

AI第一天 自我理解笔记--微调大模型

目录 1. 确定目标:明确任务和数据 2. 选择预训练模型 3. 数据预处理 (1) 数据清洗与格式化 (2) 划分数据集 (3) 数据加载与批处理 4. 构建微调模型架构 (1) 加载预训练模型 (2) 修改模型尾部(适配任务) (3) 冻结部分层(可…

计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法

引言 卷积神经网络(Convolutional Neural Networks,简称 CNNs)是一种深度学习架构,专门用于处理具有网格结构的数据,如图像、视频等。它们在计算机视觉领域取得了巨大成功,成为图像分类、目标检测、图像分…

[C++面试] 关于deque

一、入门 1、deque与vector的区别 deque的迭代器包含以下信息: 当前缓冲区指针(current_buffer)当前元素在缓冲区内的位置(current)中控器的位置(map) 每次移动迭代器时,需检查是…

服务性能防腐体系:基于自动化压测的熔断机制

01# 背景 在系统架构的演进过程中,项目初始阶段都会通过压力测试构建安全护城河,此时的服务性能与资源水位保持着黄金比例关系。然而在业务高速发展时期,每个冲刺周期都被切割成以业务需求为单位的开发单元,压力测试逐渐从必选项…

SpringBoot 和vue前后端配合开发网页拼图10关游戏源码技术分享

今天分享一个 前后端结合 的网页游戏 开发项目源码技术。 这也是我第一次写游戏类的程序,虽然不是特别复杂的游戏,但是是第一次写,肯定要记录一下了,哈哈。 游戏的内容 就是 我们显示中玩的那个 拼图碎片的 游戏,类似下…

【k8s002】k8s健康检查与故障诊断

k8s健康检查与故障诊断 ‌一、集群状态检查‌ ‌检查节点健康状态‌ kubectl get nodes -o wide # 查看节点状态及基本信息 kubectl describe node <node-name> # 分析节点详细事件&#xff08;如资源不足、网络异常&#xff09; kubectl top nodes …

01-Canvas-使用fabric初始

fabric官网&#xff1a; https://fabric5.fabricjs.com/demos/ 创建画布并绘制 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

【机器学习-基础知识】统计和贝叶斯推断

1. 概率论基本概念回顾 1. 概率分布 定义: 概率分布(Probability Distribution)指的是随机变量所有可能取值及其对应概率的集合。它描述了一个随机变量可能取的所有值以及每个值被取到的概率。 对于离散型随机变量,使用概率质量函数来描述。对于连续型随机变量,使用概率…

常见限流算法及实现

1. 固定窗口计数器&#xff08;Fixed Window Counter&#xff09; 原理&#xff1a;在固定时间窗口&#xff08;如1分钟&#xff09;内统计请求数&#xff0c;超过阈值则拒绝后续请求。优点&#xff1a;实现简单&#xff0c;内存占用低。缺点&#xff1a;存在窗口切换时的流量…

《TCP/IP网络编程》学习笔记 | Chapter 18:多线程服务器端的实现

《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现 《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现线程的概念引入线程的背景线程与进程的区别 线程创建与运行pthread_createpthread_join可在临界区内调用的函数工作&#…

创新实践分享:基于边缘智能+扣子的智能取物机器人解决方案

在 2024 年全国大学生物联网设计竞赛中&#xff0c;火山引擎作为支持企业&#xff0c;不仅参与了赛道的命题设计&#xff0c;还为参赛队伍提供了相关的硬件和软件支持。以边缘智能和扣子的联合应用为核心&#xff0c;参赛者们在这场竞赛中展现出了卓越的创新性和实用性&#xf…

QT:动态属性和对象树

动态对象 1.添加Q_PROPERTY对象 #ifndef MYPROPERTYCLASS_H #define MYPROPERTYCLASS_H#include <QObject>class MyPropertyClass : public QObject {Q_OBJECTQ_PROPERTY(QString mask READ mask WRITE setMask NOTIFY maskChanged) public:explicit MyPropertyClass(Q…

MobileNet家族:从v1到v4的架构演进与发展历程

MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络&#xff08;CNN&#xff09;家族&#xff0c;旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来&#xff0c;MobileNet 经历了从 v1 到 v4 的多次迭代&#xff…

在 Windows 上使用 choco 安装 mkcert 并配置 Vue 运行HTTPS

解决在Windows上使用Vue本地运行HTTPS的问题,vue-cli或vite都可以使用 步骤 1&#xff1a;确认 Chocolatey 是否已安装 1. 检查 choco 命令是否可用 打开 PowerShell&#xff08;管理员权限&#xff09;&#xff0c;输入&#xff1a; choco -v如果显示版本号&#xff08;如…

【PHP】新版本特性记录(持续更新)

文章目录 前言PHP 7.01&#xff09;NULL合并运算符&#xff1a;??2&#xff09;参数、返回值支持类型声明3&#xff09;太空船操作符&#xff1a;<>4&#xff09;通过 define 定义常量数组5&#xff09;匿名类实例化6&#xff09;字符串里使用\u转义unicode codepoint …

【记】如何理解kotlin中的委托属性?

1. 什么是委托属性&#xff1f; 委托属性的核心思想是&#xff1a; 你可以将一个属性的 getter 和 setter 的逻辑交给一个外部对象&#xff08;称为委托对象&#xff09;来处理。这个外部对象负责存储属性的值&#xff0c;并提供自定义的 get 和 set 行为。 通过委托属性&am…

使用自动导入后,eslint报错 eslint9

前提&#xff1a;使用pnpm create vuelatest创建vue应用&#xff0c;并且在创建项目时就勾选eslint和prettier&#xff0c;不然有些配置还需要手动配&#xff0c;比如解决eslint和prettier的冲突问题 1. 解决使用自动导入后Eslint报错问题 配置vite.config.ts // 自动导入api…

springboot EasyExcel 实现导入导出

1. 添加依赖 确保 Maven 依赖中包含 EasyExcel 3.0.5&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version></dependency><!-- excel工具 --><dep…