最近了解了一些性能测试的基础知识和原理决定动手实践下,比较选择了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. 关于Function和Object之间先后问题的相关研究

    文章说明,博主是一个前端小白,本片文章是博主在学习的过程中碰到的疑惑,根据查找的资料,之后得出的个人结论,文中如果出现错误,欢迎指正. -------路漫漫其修远兮吾将上下而求索,与诸君共勉----- ...

  2. 跟我学SpringCloud | 第十六篇:微服务利剑之APM平台(二)Pinpoint

    目录 SpringCloud系列教程 | 第十六篇:微服务利剑之APM平台(二)Pinpoint 1. Pinpoint概述 2. Pinpoint主要特性 3. Pinpoint优势 4. Pinp ...

  3. 快应用list组件 scrollTo 方法的调用方式

    例如,滚动到list 的第4个list-item: this.$element('alist').scrollTo({index:3})

  4. unity_实用小技巧(相机跟随两个主角移动)

    在两人对战的游戏中,有时候我们希望能看清楚两玩家的状态,这时我们需要让相机跟随玩家,可是我们不能让相机只跟随一个玩家移动,这时我们可以取两玩家的中点作为相机的位置.方法如下: public Trans ...

  5. [Python] Django框架入门

    说明:Django框架入门 当前项目环境:python3.5.django-1.11 项目名:test1 应用名:booktest 命令可简写为:python manager.py xxx => ...

  6. Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件

    项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...

  7. ElasticSearch专栏

    1.es的分布式架构原理(es是如何实现分布式)? elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的.核心思想就是在多台机器上启动多个es进程实例,组成了一个es ...

  8. codeforces-214(Div. 2)-C. Dima and Salad+DP恰好背包花费

    codeforces-214(Div. 2)-C. Dima and Salad 题意:有不同的沙拉,对应不同的颜值和卡路里,现在要求取出总颜值尽可能高的沙拉,同时要满足 解法:首先要把除法变成乘法, ...

  9. light 1205 - Palindromic Numbers(数位dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1205 题解:这题作为一个数位dp,是需要咚咚脑子想想的.这个数位dp方程可能不 ...

  10. 2017福建省赛 L Tic-Tac-Toe 模拟

    Kim likes to play Tic-Tac-Toe. Given a current state, and now Kim is going to take his next move. Pl ...