Apache Jmeter测压工具快速入门

Jmeter测压工具快速入门

  • 一、Jmeter介绍
  • 二、Jmeter On Mac
    • 2.1 下载
    • 2.2 安装
      • 2.2.1 环境配置
      • 2.2.2 初始化设置
    • 2.3 测试
      • 2.3.1 创建JDBC Connection Configuration
      • 2.3.2 创建线程组
      • 2.3.3 创建JDBC Request
      • 2.3.4 创建结果监控
      • 2.3.5 运行结果
    • 2.4 问题记录
      • 2.4.1 VM option 'UseG1GC'异常
      • 2.4.2 ExceptionInInitializerError异常
  • 三、Jmeter On Linux
    • 3.1 下载
    • 3.2 示例
    • 3.3 测试

一、Jmeter介绍

在这里插入图片描述

Apache JMeter是一款由Apache软件基金会开发的纯Java桌面应用程序,用于性能测试和负载测试。它最初是用于测试Web应用程序,但逐渐扩展到测试其他类型的网络协议和应用程序。

使用Apache JMeter可以模拟高负载的用户行为,从而测试一个应用程序在不同负载下的性能表现。它可以对服务器、网络、数据库、操作系统等各个方面的性能进行监控和分析,帮助开发人员和测试人员快速定位性能问题和瓶颈,并提供详细的性能报告和分析结果。

Apache JMeter支持多种网络协议和数据格式,包括HTTP、FTP、JDBC等,并且可以通过插件机制扩展其功能。它具有丰富的图形界面和易用的脚本编辑器,允许用户创建复杂的测试场景和流程,并支持多线程并发执行,以模拟真实的用户行为和负载情况。

除了性能测试之外,Apache JMeter还可以用于功能测试、压力测试、安全测试等各个方面。它是一款开源软件,免费使用并得到了广泛的应用。

二、Jmeter On Mac

界面化操作,Windows流程类似。

2.1 下载

Jmeter下载地址
在这里插入图片描述
下载完后解压到你想的那个位置即可,目录如下
在这里插入图片描述

2.2 安装

需要先安装JDK,可参考Java快速入门体验

2.2.1 环境配置

# 编辑profile
vim ~/.bash_profile# 根据自己目录输入如下配置
#>>>Jmeter>>>
export JMETER_HOME=/Users/jayhua/Documents/apache-jmeter-5.6.2
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
#<<<Jmeter<<<# :wq退出后,source ~/.bash_profile 让配置生效# 输入jmeter -h测试,输出帮助指令则说明正常

在这里插入图片描述

2.2.2 初始化设置

# 输入jmeter启动客户端
jmeter

在这里插入图片描述

  • 中文设置
# 持久化设置
# 进入配置目录
cd apache-jmeter-5.6.2/bin/
vim jmeter.properties# 新增如下属性
language=zh_CN

客户端临时设置如下
在这里插入图片描述

2.3 测试

以JDBC Connection为例。

2.3.1 创建JDBC Connection Configuration

在这里插入图片描述

  • 配置名称
  • 配置DB URL
  • 配置JDBC 驱动
  • 配置账号密码
    在这里插入图片描述

2.3.2 创建线程组

在这里插入图片描述
主要用于控制压测的循环测试、线程数和压测时间等
在这里插入图片描述

2.3.3 创建JDBC Request

在这里插入图片描述
主要用于关联JDBC配置及输入查询SQL的内容
在这里插入图片描述

2.3.4 创建结果监控

在这里插入图片描述

2.3.5 运行结果

在这里插入图片描述

2.4 问题记录

2.4.1 VM option 'UseG1GC’异常

在这里插入图片描述

解决方案

# 进入jmeter目录
cd apache-jmeter-5.6.2/bin/
vim jmeter# 注释如下行即可
# : "${GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20"}"

在这里插入图片描述

2.4.2 ExceptionInInitializerError异常

在这里插入图片描述
解决方案
少了mysql驱动,需要把mysql驱动拷贝到lib目录下,然后重启启动Jmeter即可。
在这里插入图片描述

三、Jmeter On Linux

非GUI使用模式。

3.1 下载

# 官方下载包
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.tgz# 解压包
tar -zvf apache-jmeter-5.6.tgz# 解压后目录结构和本地UI模式一样

3.2 示例

命令模版和参数说明,详情可阅JMeter命令行模式官方手册

jmeter -n -t <脚本文件名>.jmx -l <本不存在的结果文件名>.jtl -e -o <存放html报告的空目录>-h 帮助
-n 非GUI模式
-t 测试脚本.jmx的路径和文件名称
-l 测试结果存放的路径和文件名称 (要确保之前没有运行过,即xxx.jtl不存在,不然报错),会自动创建
-r 启动jmeter.properties文件中指定的所有远程服务器
-e 在脚本运行结束后生成html报告
-o 用于存放html报告的目录(目录要为空,不然报错),会自动创建

3.3 测试

# jmx用【二、Jmeter On Mac】中的测试case
./bin/jmeter -n -t test01.jmx -l test01.jtl -e -o result01

在这里插入图片描述

至此,Jmeter测压工具快速入门介绍完成~查阅过程中若遇到问题欢迎留言或私信交流。

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

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

相关文章

【C语言】每日一题(旋转数组)

旋转数组&#xff0c;链接奉上 目录 方法:创建额外的数组&#xff1a;整体思路&#xff1a;代码实现&#xff1a; 数组反转&#xff1a;整体思路&#xff1a;代码实现&#xff1a;小插曲&#xff1a; 方法: 创建额外的数组&#xff1a; 整体思路&#xff1a; 创建一个额外的…

PJSIP 2.7.2对G.729的支持,编译bcg729步骤

PJSIP 2.7.2对G.729的支持&#xff0c;编译bcg729步骤 下载BCG729源码升级cmake编译BCG729编译pjsip2.7.2 pjsua测试 下载BCG729源码 git clone git://git.linphone.org/bcg729.git升级cmake 注&#xff1a;编译BCG729要求cmake版本大于3.0&#xff0c;如果版本已经达到要求&…

oracle实现搜索不区分大小写

<if test"code ! null and code ! ">and upper(code) like upper(%${code}%) </if>关键字upper

51单片机的时钟系统

1.简介 51内置的时钟系统可以用来计时&#xff0c;与主程序分割开来&#xff0c;在计时过程中不会终端主程序&#xff0c;还可以通过开启时钟中断来执行相应的操作。 2.单片机工作方式 单片机内部有两个十六位的定时器T0和T1。每个定时器有两种工作方式选择&#xff0c;分别…

Redis-Sentinel高可用架构学习

Redis-Sentinel高可用架构 Redis主从复制过程&#xff1a; 主从同步原理 Redis Sentinel&#xff08;哨兵&#xff09;高可用集群方案&#xff1a;Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案。 当用Redis做Master-slave的高可用方案时&#xff0c;假如master宕机了…

STM32F4_照相机

目录 前言 1. BMP编码 2. JPEG编码 前言 我们所要实现的照相机&#xff0c;支持BMP图片格式的照片和JPEG图片格式的照片。 1. BMP编码 BMP文件是由文件头、位图信息头、颜色信息和图形数据四部分构成。 1. BMP文件头&#xff08;14个字节&#xff09;&#xff1a;BMP文件…

numpy矩阵画框框

在n>5(n是奇数)的nn数组中&#xff0c;用*画外方框和内接菱形。 (本笔记适合熟悉numpy的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那…

c++中的继承

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、继承的概念及定义1、继承的概念2、继承的定义2.1 定义格式2.2 继承关系和访问限定符2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承…

【SA8295P 源码分析 (四)】26 - QNX Ethernet MAC 驱动 之 emac_rx_thread_handler 数据接收线程 源码分析

【SA8295P 源码分析】26 - QNX Ethernet MAC 驱动 之 emac_rx_thread_handler 数据接收线程 源码分析 一、emac_rx_thread_handler():通过POLL 轮询方式获取数据二、emac_rx_poll_mq():调用 pdata->clean_rx() 来处理消息三、emac_configure_rx_fun_ptr():配置 pdata->…

【27】c++设计模式——>迭代器模式(遍历双向链表)(2)

//实现双向链表 #pragma once #include<iostream> #include<string> #include<vector> using namespace std;class Iterator; class ForwardIterator; class ReverseIterator;//链表的最小组成部分是一个节点&#xff0c;先实现一个节点 struct Node //c中st…

在Espressif-IDE中使用Wokwi仿真ESP32

陈拓 2023/10/17-2023/10/19 1. 概述 在Espressif-IDE v2.9.0版本之后可直接在IDE中使用Wokwi模拟器。 1.1 什么是 Wokwi 模拟器&#xff1f; Wokwi 是一款在线电子模拟器&#xff0c;支持模拟各种开发板、元器件和传感器&#xff0c;例如乐鑫产品 ESP32。 Wokwi 提供基于浏…

【单元测试】--工具与环境

一、单元测试工具概览 1.1 JUnit JUnit 是一个广泛用于 Java 程序开发的开源测试框架。它是单元测试的标准工具之一&#xff0c;用于编写和运行测试用例&#xff0c;以确保 Java 程序的各个组件按预期工作。以下是一些关键特点和概念&#xff0c;来介绍 JUnit&#xff1a; 注…

深度学习笔记_5 经典卷积神经网络LeNet-5 解决MNIST数据集

1、定义LeNet-5模型&#xff0c;包括卷积层和全连接层。 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms# 导入必要的库# 定义 LeNet-5 模型 class LeNet5(nn.Module):def __init__(self):super(LeNet5, self…

xxl-job学习

学习链接 xxl-job官方文档 【分布式任务调度】三、XXL-JOB详细介绍 xxljob从入门到精通-全网段最全解说 XXL-JOB分布式任务调度框架(一)-基础入门 XXL-JOB分布式任务调度框架(二)-策略详解 XXL-JOB分布式任务调度框架(三)-集群部署 XXL-JOB分布式任务调度框架(四)-源码分析…

C语言每日一题(16) 消失的数字

题目链接 一.题目描述 数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗&#xff1f; 二.题目分析 方法1 异或法 基于异或的思想&#xff0c;将0与数组中的数一一进行异或后得到的值&#xff0c;再与0…

行为型模式-备忘录模式

备忘录模式保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象。备忘录模式属于行为型模式。 意图&#xff1a;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。 主要解决&#xff1a;所谓备忘录模式就是在不破坏…

ARouter - 组件化通信方案

官网 https://github.com/alibaba/ARouter/blob/master/README_CN.md 项目简介 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 功能介绍 支持直接解析标准URL进行跳转&#xff0c;并自动注入参数到目标页面中支持多模块工程使用支持添…

【c++】跟webrtc学std array 1: 混音的多维数组

对于固定大小的数组,非常适合用std的array 实现。静态赋初值 static constexpr std::array<int, 5> kInputValues = {0, 1, 2, 1, 0}

html表格标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--表格table 行 tr 列 td --> <table border"1px"><tr> <!--colsp…

逻辑漏洞详解

原理&#xff1a; 没有固定的概念&#xff0c;一般都是不符合常识的情况。比如任意用户注册&#xff0c;短信炸弹&#xff0c;占用资源&#xff0c;交易支付、密码修改、密码找回、越权修改、越权查询、突破限制。 根据实际业务逻辑进行比对&#xff0c;购物的可以根据数量&a…