当前位置: 首页 > news >正文

【P1】Jmeter 准备工作

文章目录

  • 一、Jmeter 介绍
    • 1.1、Jmeter 有什么样功能
    • 1.2、Jmeter 与 LoadRunner 比较
    • 1.3、常用性能测试工具
    • 1.4、性能测试工具如何选型
    • 1.5、学习 Jmeter 对 Java 编程的要求
  • 二、Jmeter 软件安装
    • 2.1、官网介绍
    • 2.2、JDK 安装及环境配置
    • 2.3、Jmeter 三种模式
    • 2.4、主要配置介绍
      • 2.4.1、setenv 配置
      • 2.4.2、jmeter.properties
      • 2.4.3、user.properties
      • 2.4.4、常用命令介绍
    • 2.5、Jmeter 图形端安装
      • 2.5.1、前置条件
      • 2.5.2、参数修改
      • 2.5.3、启动/检测
    • 2.6、Jmeter 服务端安装
      • 2.6.1、前置条件
      • 2.6.2、参数修改
      • 2.6.3、启动&检测
      • 2.6.4、图形端修改
    • 2.7、安装小结
  • 三、Jmeter 常规配置
    • 3.1、设置中文
      • 3.1.1、临时设置中文
      • 3.1.2、永久设置中文
    • 3.2、设置外观(白色)


一、Jmeter 介绍

1.1、Jmeter 有什么样功能

Apache JMeter 是一个开源、纯 Java、优秀的性能测试工具

能够测试许多不同的应用程序/服务器/协议类型:

  • HTTP、HTTPS

  • REST、SOAP

  • JDBC

  • FTP

  • LDAP

  • JMS 消息类

  • 邮件类(SMTP、POP3、和IMAP)

  • 命令或 shell 脚本

  • TCP

  • Java 请求扩展

主要特性:

  • 可视化设计、功能齐全 (可视化)

  • 快速设计测试计划、简单构建和调试程序 (简易性)

  • 内置八大组件,功能强大,高度灵活设计 (高灵活)

  • 完全、快速的可移植性和 100% Java 纯度 (跨平台)

  • 核心功能高度可扩展,可以快速进行二次开发(高扩展)

1.2、Jmeter 与 LoadRunner 比较

比较点Jmeter 5.xLoadrunner 2021
协议开源协议商业版、社区版(用户数有限制)
安装体积小、易安装体积庞大、安装时间长
跨平台性Java 编写,支持多种操作系统和跨平台操作界面仅支持 windows,压力机支持 Linux
功能性方面比较强大,常用协议使用时与 LR 相差不大非常强大,协议多
界面体验稍弱
脚本录制比较方便非常方便,种类大
测试计划稍弱强大
指标分析界面稍弱界面友好,功能强大
学习成本入门快,学至后面需要掌握 Java 语言入门较快,学至后面需要 C 语言
软件性能中等

总结:

  • 在目前市场来讲,Jmeter 为必备技能、LoadRunner 为加强技能(个人技能)

  • Jmeter 为一款轻量级、跨平台、功能强大的性能测试工具,目前热度已然超过 LoadRunner

1.3、常用性能测试工具

目前市场上性能测试工具多达几十种,笔者选取了几种比较实在的测试工具,供大家参考

性能测试工具使用协议支持协议支持场景化主要用途说明
Jmeter开源多协议http 测试,其它测试JMeter 是 Apache 开源基金会提供的完全开源的性能测试工具,旨在加载测试功能行为和衡量性能。它最初是为测试 Web 应用程序而设计的,但此后已扩展到其他测试功能
LoadRunner商业多协议http 测试,其它测试LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试
Kylinpetl/kylinTOP国产商业多协议http 测试,其它测试奇林性能测试软件(简称:kylinPET,performance emulation tool)是一款功能强大的性能测试工具;界面友好、操作方便,资源占用率低;与 LoadRunner 非常类似
ApacheBench开源http简易性 httpApacheBench 是一个轻量级工具。主要用于 HTTP 协议的性能测试。非常简单快捷,不支持场景化测试
Webbench开源http简易性 httpWebbench 是知名的网站压力测试工具,非常简单快捷,不支持场景化测试
Sysbench开源多协议#数据库基准测试sysbench 是一款开源的多线程性能测试工具,可以执行 CPU/内存/线程/IO/数据库等方面的性能测试
Locust开源httphttp 测试Locust 是易于使用的分布式用户负载测试工具。它旨在对网站进行负载测试,并确定系统可以处理多少个并发用户。非常易用。很方便地基于 Python 进行脚本扩展和业务请求实现

1.4、性能测试工具如何选型

  • ab(ApacheBench)、Webbench 使用场景:简单接口测试,无场景化,无参数化处理,命令行工具
  • Jmter 使用场景:免费+复杂场景化
  • LoadRunner 使用场景:商业+复杂场景化
  • Kylinpet/kylinTOP 使用场景:与 LoadRunner 类似,部分功能更为强大
  • Locust 使用场景:对 Python 熟悉度高,无 UI 设计界面,使用轻量级协程,高并发

工具只是一种形式,无论是性能测试还是功能自动化测试,在学至后面,本质是一种测试编程,工具只是简化了一些功能,但并不能完全替代;Jmeter、LoadRunner 任意掌握一种,就算以后有需要学习其它的,也会变得简单很多

1.5、学习 Jmeter 对 Java 编程的要求

  • Jmeter 中的脚本编程本质上是 Java 的编程,要求对 Java 有一定的掌握

  • 编写 Jmeter 脚本,熟悉 Java 的基本编程即可,如变量定义、数据类型、条件、循环、Map 及 List 的结构……

  • Jmter 的二次开发,对 Java 要求上关注较高,要求熟悉使用 Java 和第三方协议的使用,如 Kafaka,Redis 等

二、Jmeter 软件安装

2.1、官网介绍

官网地址: https://jmeter.apache.org/

下载地址: https://jmeter.apachc.org/download_jmeter.cgi

在这里插入图片描述

2.2、JDK 安装及环境配置

  • JDK 版本要求为 1.8

  • Linux 系统下面环境变量设置

export JAVA_HOME=/home/xiangsl/softwares/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • windows下面环境变量设置
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_261;
PATH=%JAVA_HOME%\bin;.......
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

2.3、Jmeter 三种模式

Jmeter 模式设计测试计划性能压测角色说明说明
GUI 模式图形端与压力机在本机设计测试计划,同时可以作轻量级性能测试
客户端模式命令行模式命令行模式来进行性能压测,使用上快捷方便,跨平台
远程模式图形端与压力机分开远程模式下可以水平扩容,一般配合图形界面使用

2.4、主要配置介绍

2.4.1、setenv 配置

win 下面以 setenv.bat 存在,linux 下面以 setenv.sh 存在,默认不存在,需要手工创建主要是用于配置一些系统环境变量,如 JVM 启动参数,默认语言等

配置详情见官网(1.4 Running JMeter):https://jmeter.apache.org/uscrmanual/get-started.htmI#frunning

2.4.2、jmeter.properties

几乎所有的配置都可以通过该文件进行修改,比较常用的有:19.7 Remote hosts and RMl configuration

配置详情见官网:https://jmeter.apache.org/usermanual/properties_reference.html

2.4.3、user.properties

用户自定义参数,一般用于测试计划;在这里,我们可以定义任何自己需要的参数

2.4.4、常用命令介绍

windows 命令,一般用于图形界面,主要命令如下:

启动命令作用
jmeter.bat图形模式下启动界面(有 cmd 命令框),如果有控制台消息的时候建议使用
jmeterw.cmd图形模式下启动界面(没有 cmd 命令框)
jmeter-server.bat以服务端模式启动
mirror-server.cmd启动一个镜像服务器

linux 命令,一般用于服务端,主要命令如下:

启动命令作用
jmeter图形模式下启动界面(有终端命令框),如果有控制台消息的时候建议使用
jmeter.sh图形模式下启动界面(没有终端命令框)
jmeter-server以服务端模式启动
mirror-server.sh启动一个镜像服务器

2.5、Jmeter 图形端安装

2.5.1、前置条件

操作系统: 不限,一般是win系统居多

JDK: 1.8+

下载后解压至某一文件夹

在这里插入图片描述

2.5.2、参数修改

(1)、在 bin 目录下面增加 setenv.bat 文件

rem This is the content of bin\setenv.bat,rem it will be called by bin\jmeter.bat
set JVM_ARGS=-Xms2g -Xmx2g -Dpropname=longge这里根据自行调整内存大小,默认为1024m,做大型测试时起步4G
其它参考选项,详见官网(1.4 Running JMeter)
https://jmeter.apache.org/usermanual/get-started.html#running

(2)、修改 jmeter.properties 配置文件

server.rmi.ssl.disable=true
sampleresult.default.encoding=UTF-8  // 未设置的话,采样器结果有可能乱码

2.5.3、启动/检测

(1)、运行 jmeter.bat 或者 jmeterw.cmd 启动

(2)、启动后,打开 cmd,采用如下命令,检测进程详细,如下表示进程存在且参数配置生效

wmic process where caption="java.exe" get processid,caption,commandline /value
wmic process where caption="javaw.exe" get processid,caption,commandline /value

在这里插入图片描述

2.6、Jmeter 服务端安装

2.6.1、前置条件

操作系统: 不限,一般为 Linux 系统居多

JDK: 1.8+

下载后解压至某一文件夹

2.6.2、参数修改

(1)、在 bin 目录下面增加 setenv.sh 文件

#This is the content of bin\setenv.sh,
#it will be called by bin\jmeter.sh
export JVM_ARGS="-Xms2g -Xmx2g -Dpropname=longge"这里根据自行调整内存大小,默认为 1024m,做大型测试时起步 4G
其它参考选项,详见官网(1.4 Running JMeter)
https://jmeter.apache.org/usermanual/get-started.html#running

(2)、修改 jmeter.properties 配置文件

server.rmi.ssl.disable=true
sampleresult.default.encoding=UTF-8

(3)、修改 jmeter-server 文件

RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.128.166这里根据主机地址修改

2.6.3、启动&检测

(1)、运行 sh jmeter-server 启动

(2)、启动后,采用如下命令,检测进程详细,如下表示进程存在且参数配置生效

ps -ef|grep longge

缺图

2.6.4、图形端修改

修改 jmeter.properties 文件,多个主机用逗号隔开remote_hosts=192.168.128.166:1099,192.168.128.167:1099,192.168.128.168:1099图形端启动后,在 Run/Remote Start 里面能够看到相关主机表示安装成功

2.7、安装小结

(1)、大部分配置采用纯手工修改,一定要细小,注意空格,中英文,端口的影响

(2)、理解 Jmeter 的三种模式的应用场景,对我们后续有比较好的指导意义

三、Jmeter 常规配置

3.1、设置中文

3.1.1、临时设置中文

依次点击 Options <<< Choose Languse <<< Chinese(Simplified)

在这里插入图片描述

3.1.2、永久设置中文

  • 进入 jmeter 安装路径的 bin 目录下,找到 jmeter.properties 文件

在这里插入图片描述

  • 打开 jmeter.properties 文件,找到 #language=en,修改成language=zh_CN,并将前面的 “#” 号去掉,最后保存文件

在这里插入图片描述

  • 最后重新打开 jmeter ,就变成中文了

3.2、设置外观(白色)

依次点击 选项 <<< 外观 <<< Windows

在这里插入图片描述

相关文章:

【P1】Jmeter 准备工作

文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…...

字节的面试,你能扛住几道?

C &#xff0c; Python 哪一个更快&#xff1f; 读者答&#xff1a;这个我不知道从哪方面说&#xff0c;就是 C 的话&#xff0c;它其实能够提供开发者非常多的权限&#xff0c;就是说它能涉及到一些操作系统级别的一些操作&#xff0c;速度应该挺快。然后 Python 实现功能还…...

NOPI用法之自定义单元格背景色(3)

NPOI针对office2003使用HSSFWorkbook&#xff0c;对于offce2007及以上使用XSSFWorkbook&#xff1b;今天我以HSSFWorkbook自定义颜色为例说明&#xff0c;Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor&#xff0c;它内置的颜色有几十种供我们选择&#xff0c;如果不…...

数据分析中常见标准的参考文献

做数据分析过程中&#xff0c;有些分析法方法的标准随便一搜就能找到&#xff0c;不管是口口相传还是默认&#xff0c;大家都按那样的标准做了。日常分析不细究出处还可以&#xff0c;但是正式的学术论文你需要为你写下的每一句话负责&#xff0c;每一个判断标准都应该有参考文…...

辨析 变更请求、批准的变更请求、实施批准的变更请求

变更请求、批准的变更请求、实施批准的变更请求辨析 辨析各种变更请求&#xff0c;不服来辨。 变更请求 定义&#xff1a;对正规受控的文件或计划(范围、进度、成本、政策、过程、计划或程序)等的变更&#xff0c;以反映修改或增加的意见或内容 根据变更请求的工作内容可将变…...

leetcode 561. 数组拆分

题目描述解题思路执行结果 leetcode 561. 数组拆分 题目描述 数组拆分 给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&am…...

AviatorScript

AviatorScript 是一门高性能、轻量级寄宿于 JVM &#xff08;包括 Android 平台&#xff09;之上的脚本语言 特性介绍 支持数字、字符串、正则表达式、布尔值、正则表达式等基本类型&#xff0c;完整支持所有 Java 运算符及优先级等。函数是一等公民&#xff0c;支持闭包和函…...

Oracle跨服务器取数——DBlink 初级使用

前言 一句话解释DBlink是干啥用的 实现跨库访问的可能性. 通过DBlink我们可以在A数据库访问到B数据库中的所有信息,例如我们在加工FDS层表时需要访问ODS层的表,这是就需要跨库访问 一、DBlink的分类 private&#xff1a;用户级别&#xff0c;只有创建该dblink的用户才可以使…...

200人 500人 园区网设计

实验要求&#xff1a; ① 设置合理的STP优先级、边缘端口、Eth-trunk ② 企业内网划分多个vlan &#xff0c;减少广播域大小&#xff0c;提高网络稳定性 ③ 所有设备&#xff0c;在任何位置都可以telnet远程管理 ④ 出口配置NAT ⑤ 所有用户均为自动获取ip地址 ⑥ 在企业…...

netstat命令解析

一、linux系统中netstat命令的帮助信息 └──╼ $netstat -h usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }-r, --route …...

API接口的自我阐述

API&#xff08;Application Programming Interface&#xff09;&#xff0c;翻译为应用程序接口&#xff0c;是一套定义程序之间如何通讯的接口。API可以实现软件的可重用性、可维护性和互操作性&#xff0c;同时也可以提升软件的性能和安全性。API接口是一个软件系统中的重要…...

Day32内部类

内部类 内部类就是在一个类中定义一个类&#xff0c;&#xff08;在A类中定义一个B类&#xff0c;B类就被称为内部类&#xff09; 格式&#xff1a;public class 类名{ 修饰符 class 类名{} } 如&#xff1a;public class Outer{ public class Inner {} } //内部类可以访问外部…...

用户画像系列——HBase 在画像标签过期策略中的应用

一、背景 前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节&#xff0c;让大家更加详细的了解画像数据存储和处理的逻辑 举个现实中的例子&#xff1a; 例子1&#xff1a;因为疫情原因&#xff0c;上线一个平台(…...

时下热门话题:ChatGPT能否取代人类?

时下热门话题&#xff1a;ChatGPT能否取代人类&#xff1f; 2022年11月底&#xff0c;人工智能对话聊天机器人ChatGPT推出&#xff0c;迅速在社交媒体上走红&#xff0c;短短5天&#xff0c;注册用户数就超过100万。2023年1月末&#xff0c;ChatGPT的月活用户已突破1亿&#x…...

每日刷题记录(十七)

目录 第一题&#xff1a;求12...n解题思路&#xff1a;代码实现&#xff1a; 第二题&#xff1a;两两交换链表中的节点解题思路&#xff1a;代码实现&#xff1a; 第三题&#xff1a;只出现一次的数字 II解题思路&#xff1a;代码实现&#xff1a; 第四题&#xff1a;根据字符串…...

开放原子训练营(第三季)RT-Thread Nano学习营一探究竟

前言 不知道从什么时候起&#xff0c;智能设备开始普及到了我们日常生活的方方面面。下班还未到家&#xff0c;热水器就可以调到合适的温度&#xff1b;上班刚进公司&#xff0c;忘关空调也不再是什么烦恼&#xff1b;诸如夜晚的灯光变换&#xff0c;白昼的窗帘适应等更给我们…...

数据库系统概论(二)关系数据库,SQL概述和数据库安全性

作者的话 前言&#xff1a;总结下知识点&#xff0c;自己偶尔看一看。 目录 一、关系模型概述 1.1关系数据结构及形式化定义 1.1.1域&#xff08;Domain&#xff09; 1.1.2笛卡尔积&#xff08;Cartesian Product&#xff09; 1.1.3关系&#xff08;Relation&#xff09; …...

【VM服务管家】VM4.x算子SDK开发_3.1 环境配置类

目录 3.1.1 环境配置&#xff1a;CSharp算子SDK开发环境配置方法3.1.2 算子封装&#xff1a;使用C封装算子SDK的方法3.1.3 异常中断&#xff1a;算子SDK软件运行报错“托管调试助手”中断的解决方法3.1.4 深度学习&#xff1a;GPU运行深度学习算子引发StackOverFlow异常的方法 …...

Java核心书籍1

1.《Java核心技术》是一本深入浅出的Java编程指南&#xff0c;适合初学者和有一定Java编程基础的读者。这本书的主要作者是Cay S. Horstmann和Gary Cornell&#xff0c;他们都是Java领域的知名专家。这本书的最新版本是第10版&#xff0c;其中涵盖了Java SE 9、10和11的新特性&…...

crontab详细用法 定时任务

使用crontab可以在指定时间执行一个shell脚本或者一系列Linux命令 crontab的使用方法 方法1.使用crontab命令 例如添加一个新的或者编辑已有的,使用: crontab -e就可以进入配置文件.此时配置crontab的执行者是当前登入用户,如果当前有用户是root,需要为其他用户配置,可以使用…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...