最近了解了一些性能测试的基础知识和原理决定动手实践下,比较选择了jmeter

一、什么是jmeter

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

                                                                              ----百度百科
     Jmeter是跨系统的,在windows、Mac、Linux均可使用;一方面在于它支持丰富的协议(HTTP、FTP、JDBC、SOCKET。。。);功能方面也相对比较健全(各种各样的逻辑处理,如条件判断,循环,仅一次等等);各种检查点,对文本、Java对象均可进行处理;丰富的图表展示;此外还有许多第三方插件支持以及第三方集成;且最重要的是开源的。。。

二、下载&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入门(环境搭建&运行&初识)的更多相关文章

  1. Windows C#入门环境搭建

    Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...

  2. ArcGIS API for Silverlight/ 开发入门 环境搭建

    Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...

  3. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  4. 57.NodeJS入门--环境搭建 IntelliJ IDEA

    转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...

  5. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

  6. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  7. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  8. Mac最新Flutter环境搭建运行和对比理解声明式UI

    前言 这段时间一直都在学习和写关于SwiftUI的东西,前面也总结了四篇文章来大体上说了下Demo中功能实现的一些细节,后面准备开始了解学习一下Flutter,争取在年前能再用Flutter写一份项目 ...

  9. Jmeter学习一:Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

随机推荐

  1. ionic $state.go() 传参

    例子: $state.go("tab.home" , {"hello": "world"}) 重点: 接受参数的页面--tab.home,需 ...

  2. Kubernetes 入门必备云原生发展简史

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 "未来的软件一定是生长于云上的"这是云原生理念的最核心假设.而所谓"云原生",实际上就是在定义一条能 ...

  3. 手把手教你用深度学习做物体检测(七):YOLOv3介绍

    YOLOv3 论文:< YOLOv3: An Incremental Improvement > 地址: https://arxiv.org/pdf/1804.02767.pdfyolov ...

  4. Codeforces 468 B Two Sets

    Two Sets 题意:就是将一对数放进setA, setB中, 如果放进setA的话要求满足 x与a-x都在这个集合里面, 如果放进setB中要求满足x与b-x都在这个集合中. 题解:我们将能放进B ...

  5. Treasure Hunt CodeForces - 979B

    After the big birthday party, Katie still wanted Shiro to have some more fun. Later, she came up wit ...

  6. codeforces 454 E. Little Pony and Summer Sun Celebration(构造+思维)

    题目链接:http://codeforces.com/contest/454/problem/E 题意:给出n个点和m条边,要求每一个点要走指定的奇数次或者是偶数次. 构造出一种走法. 题解:可能一开 ...

  7. ASP.NET MVC实现依赖注入

    在java的spring中有自动注入功能,使得代码变得更加简洁灵活,所以想把这个功能移植到c#中,接下来逐步分析实现过程 1.使用自动注入场景分析 在asp.net mvc中,无论是什么代码逻辑分层, ...

  8. 5分钟理解 SpringBoot 响应式的核心-Reactor

    目录 一.前言 二. Mono 与 Flux 构造器 三. 流计算 1. 缓冲 2. 过滤/提取 3. 转换 4. 合并 5. 合流 6. 累积 四.异常处理 五.线程调度 小结 参考阅读 一.前言 ...

  9. 059 Python计算生态概览

    目录 一.概要 二.导学 三.实践能力 一.概要 从数据处理到人工智能 实例15-霍兰德人格分析雷达图 从Web解析到网络空间 从人机交互到艺术设计 实例16-玫瑰花绘制 二.导学 纵览Python计 ...

  10. Vert.x 之 HelloWorld

    Hello World 欢迎来到Vert.x的世界,相信您在接触Vert.x的同时,迫不及待想动手试一试,如您在学习计算机其它知识一样,总是从Hello World开始,下面我们将引导您制作一个最基本 ...