jmeter入门(环境搭建&运行&初识)
最近了解了一些性能测试的基础知识和原理决定动手实践下,比较选择了jmeter
一、什么是jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
二、下载&GUI模式运行(基于windows):
我下载的版本是目前最新的4.0版本apache-jmeter-4.0.zip
官网地址:
http://jmeter.apache.org/download_jmeter.cgi
jmeter不需要安装,只需要配置好JDK环境,然后在在jmeter的bin目录中双击运行jmeter.bat文件即可
4.0版本官方建议配置的JDK最好用1.8或者1.9版本(检查java版本 java -version)
双击运行会弹出一个cmd命令窗口&jmeter图形界面,cmd命令窗口内容如下(关闭cmd命令窗口,jmeter也会同时被关闭):
Don't use GUI mode for load testing !, only for Test creation and Test debugging
.
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in
the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
翻译下来的意思就是:
不要使用GUI模式进行负载测试,只用于测试创建和调试!
对于负载测试使用no-GUI的方式进行运行:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
或者进行修改堆内存的大小:
Jmeter的默认堆为256m,因此,如果使用Jmeter进行负载测试建议将堆内存进行修改到合适的大小;
修改方法:
在jmeter的bin目录下,找到jmeter.bat文件打开,修改heap(4.0版本在144行)
三、更改文字为中文(建议用英文)
官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文
四、Non-GUI Mode (Command Line mode)
如果要直接在cmd命令行运行则需要配置jmeter的环境变量否则每次执行命令都要切换到bin目录下:
右键计算机属性---》高级系统设置---》环境变量---》
变量名: JMETER_HOME
变量值: D:\apache-jmeter-4.0
变量名: Path (在后面添加以下变量值)
变量值:;%JMETER_HOME%\bin;
对于负载测试,必须在此模式下运行JMeter(没有GUI)以从中获得最佳结果。为此,请使用以下命令选项:
-n 这指定JMeter将以非gui模式运行
-t [包含测试计划的JMX文件的名称]。
-l [将样本结果记录到的JTL文件的名称]。
-j [JMeter运行日志文件的名称]。
-r 在JMeter属性“ remote_hosts ” 指定的服务器中运行测试
-R [远程服务器列表]在指定的远程服务器中运行测试
-G [CSV文件的路径]仅生成报告仪表板
-e 负载测试后生成报告仪表板
-o 输出文件夹在加载测试后生成报告仪表板的位置。文件夹不得存在或为空
该脚本还允许您指定可选的防火墙/代理服务器信息:
-H [代理服务器主机名或IP地址]
-P [代理服务器端口] 例子:
jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000 ps:If the property jmeterengine.stopfail.system.exit is set to true (default is false),
then JMeter will invoke System.exit(1) if it cannot stop all threads. Normally this is not necessary.
如果属性jmeterengine.stopfail.system.exit被设置为true(默认为false),如果无法停止所有线程,jmeter将会引用System.exit(1)。通常这不是必需的。
五、熟悉jmeter的安装目录(windows&只针对bin目录)
1.JMeter自动从以下目录中的jar中查找类:
JMETER_HOME/lib目录用于存放实用程序和依赖的jar包
JMETER_HOME/lib/ext目录用于JMeter组件和插件(如果自己开发了相关组件也可以打成jar包放在这个目录下,组件依赖的jar包放在/lib下)

*.cmd文件运行需要系统在win2000以上的版本
| 文件名 | 含义 |
|---|---|
| jmeter.bat | 运行Jmeter(这个默认是带win shell控制台的)(默认使用GUI模式) |
| jmeterw.cmd | 运行Jmeter,但是不显示win shell控制台(可以对比jmeter.bat启动的jmeter)(默认使用GUI模式) |
| jmeter-n.cmd | 将JMX文件拖拽到该命令文件上,将会以non-GUI模式运行该测试 |
| jmeter-n-r.cmd | 将JMX文件拖拽到该命令上,将会在远程测试机上以non-GUI模式运行该测试 |
| jmeter-t.cmd | 将JMX文件拖拽到该命令上,使用GUI模式加载该JMX |
| jmeter-server.bat | 使用服务模式启动Jmeter(用于分布式的服务端启动) |
| mirror-server.cmd | 使用non-GUI模式启动Jmeter镜像服务 |
| shutdown.cmd | 运行Shutdown客户端关闭一个non-GUI实例 |
| stoptest.cmd | 运行Shutdown客户端关闭一个non-GUI实例 |
GUI模式----推荐使用GUI模式进行创建脚本以及调试脚本,不推荐进行负载测试(所谓负载测试是属于性能测试的一种类型,通过测试系统在资源超负荷情况下的表现,以发现设计上的错误和验证系统的负载能力,在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力;负载测试的目的是确定并确保系统在超出最大预期工作量的情况下仍能正常运行,此外,负载测试还要评估性能特征;例如:响应时间、事务处理速率和其他与时间相关方面),因此可以看出负载测试是比较浪费系统资源的,GUI界面本身便很浪费资源,因此如果出现大并发或者机器处于大负载的情况下,非但不会得到你想要的结果,机器是必然会出现卡死的情况。 --------这部分理解转自:https://www.cnblogs.com/richered/p/8324039.html
参考:
官方入门文档(本文只是根据个人学习进度摘取了部分学习并记录,不定期更新):
http://jmeter.apache.org/usermanual/get-started.html#running
其他博客的全文翻译(这个文章是2017年8月的可能和现在的官方文档有出入,仅作参考):
https://blog.csdn.net/yue530tomtom/article/details/76529619
jmeter入门(环境搭建&运行&初识)的更多相关文章
- Windows C#入门环境搭建
Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...
- ArcGIS API for Silverlight/ 开发入门 环境搭建
Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...
- Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
- 57.NodeJS入门--环境搭建 IntelliJ IDEA
转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...
- NodeJS入门--环境搭建 IntelliJ IDEA
NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- Mac最新Flutter环境搭建运行和对比理解声明式UI
前言 这段时间一直都在学习和写关于SwiftUI的东西,前面也总结了四篇文章来大体上说了下Demo中功能实现的一些细节,后面准备开始了解学习一下Flutter,争取在年前能再用Flutter写一份项目 ...
- Jmeter学习一:Jmeter性能测试环境搭建(Windows下)
最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...
随机推荐
- JS基础-该如何理解原型、原型链?
JS的原型.原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对 ...
- MSIL实用指南-生成foreach语句
foreach可以迭代数组或者一个集合对象.foreach语句格式是它的生成步骤是foreach (<成员> in <集合>) <循环体> 一.声明三个变量,loc ...
- API 资源隔离系统设计与实现
(马蜂窝技术原创内容,公众号 ID:mfwtech) Part 1 背景 大交通业务需要对接机票.火车票.租车.接送机等业务的外部供应链,供应商的数据接口大部分通过 HTTP.HTTPS 等协议进行通 ...
- asio kcp源码分析
asio kcp代码走读 (1)kcp_client_wrap类 a 提供方法接口如下: send_msg kcp_client_.send_msg(msg); stop //等待工作线程退出 set ...
- AOJ-2249-Road Construction-dijkstra-最小花费
Road Construction 题意:在一个无向图中,每条边上有建设的花费和路径的长度,要求求得,在保持每个点到1号点最小距离不变的情况下,求最小的总花费: 思路:用dijkstra 找出每个点的 ...
- POJ-2502 Subway( 最短路 )
题目链接:http://poj.org/problem?id=2502 Description You have just moved from a quiet Waterloo neighbourh ...
- CodeForces 948B Primal Sport
Primal Sport 题意:2个人玩游戏, 每次轮到一个人选择一个比当前值小的素数, 然后在找到比素数的倍数中最小的并且不小于当前数的一个数. 现在这个游戏玩了2轮, 现在想找到最小的那个起点X0 ...
- bzoj 1588: [HNOI2002]营业额统计(splay入门)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 题解:这题如果用普通的bst的话是可以过时间差不多4s左右如果用splay的话是14 ...
- uva 796 C - Critical Links(tarjan求桥)
题目链接:https://vjudge.net/contest/67418#problem/C 题意:求出桥的个数并且按顺序输出 题解:所谓桥就是去掉这条边后连通块增加,套用一下模版就行. #incl ...
- 用户上传gif动图分解成多张帧图片,并合并生成新gif图片
背景 为什么要制作这么一款工具 首先公司最近在做一款表情包的产品,需要将文字生成到gif图片中,并可以控制文字显示的位置,并将不同的文字显示在不同的图片上 制作成网页端工具,随时随地,方便使用 探索 ...