本文我们一起来学习在Linux(Mac)上利用Jmeter进行性能测试并生成测试报告的方法。

环境准备

JDK

访问这个地址 【JDK11.01】,根据实际环境下载一个JDK。

Jmeter

Jmeter 5.0:https://jmeter.apache.org/download_jmeter.cgi

建议下载zip绿色版本

环境变量

因为博主使用的是dmg安装包,安装时已自动完成环境变量配置,其他linux环境可能需要手动完成,输入命令vim /etc/profile ,添加下面的内容,保存后,执行 source /etc/profile让其生效即可 (比较懒的小伙伴可以直接用.代替source)。

注意:下面配置中的jmeter-5.0路径要根据实际Jmeter包放置的位置进行修改。

export JAVA_HOME=/usr/java/1.8.0_181
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME.lib/tools.jar:$JRE_HOME.lib
export PATH=$PATH:$JAVA_HOME/lib
export PATH=/jmeter/apache-5.0/bin/:$PATH
export JMETER_HOME=/jmeter/jmeter-5.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

运行Jmeter

权限

在Linux下执行软件脚本时,遇到的最多的可能就是权限的问题,我们可以使用ls -l来查看文件的权限信息,比如文件最前方的-rwxr-xr-x就表示文件所有者有读写执行的权限,文件所有者所在群组和或者其他的用户有读和执行的权限。当然我们也可以那就是查看文件的颜色来判断其权限,常见的颜色对应信息如下表,当然,这些都是可以手动设置的,所以仅作参考:

颜色 代表的信息
白色 普通的文件
蓝色 目录
绿色 可执行的文件
红色 压缩文件或者包文件
青色 连接文件
黄色 设备文件
灰色 其他的文件

启动jmeter,

在Linux环境下切换到jmeter的bin目录执行./jmeter.sh即可启动jmeter,比如博主的目录是:

/Users/bingo/Hebinz/apache-jmeter-5.0/bin

启动之后我们可以看到终端打印的信息:不要使用GUI模式进行负载测试,GUI只用于创建脚本以及用来debug,执行测试时建议使用非GUI模式运行。后面紧接着的就是命令行模式的命令提示。

创建脚本

这里以访问我博客首页为例:

脚本保存为test.jmx

运行脚本

输入命令 jmeter -n -t test.jmx -l test.jtl ,运行jmeter脚本。

常用命令解析

常见命令 说明
-h 帮助:打印出有用的信息并退出
-n 非 GUI 模式:在非 GUI 模式下运行 JMeter
-t 测试文件:要运行的 JMeter 测试脚本文件
-l 日志文件:记录结果的文件
-r 远程执行:启动远程服务
-H 代理主机:设置 JMeter 使用的代理主机
-P 代理端口:设置 JMeter 使用的代理主机的端口号

运行结果如下图:

由于我只运行了一次,所以只有一轮结果。

查看测试报告

打开聚合报告



然后打开刚才的文件就可以了

生成HTML报告

参考命令:

jmeter -n -t test.jmx -l test.csv -e -o htmlResult

会在当前目录生成一个test.csv文件结果和存储html报告的文件夹htmlResult,浏览器打开文件夹里面的index.html就能看到html报告了。

HTML报告详情的话可以参考我另外一个博客:【Jmeter】 Report Dashboard 生成html图形测试报告

总结

  • Jmeter 5.0 Mac环境搭建
  • Linux系统权限
  • Jmeter常用命令及如何生成Html性能测试报告

【Jmeter】Linux(Mac)上使用最新版本Jmeter(5.0)做性能测试的更多相关文章

  1. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现

    有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息.这个特性之前只在Windows上有实现,Linux/Mac上的实现最 ...

  2. Mac上配置不同版本的JDK

    Mac上JDK的版本为1.8,编译AOSP时发现需要JDK 1.7.想找一种比较容易切换JDK版本的方式,经过一番Google发现Jenv比较合适. 安装Jenv至少有三种方式: - $ git cl ...

  3. 大规模数据分析统一引擎Spark最新版本3.3.0入门实战

    @ 目录 概述 定义 Hadoop与Spark的关系与区别 特点与关键特性 组件 集群概述 集群术语 部署 概述 环境准备 Local模式 Standalone部署 Standalone模式 配置历史 ...

  4. linux & mac环境python多版本切换与选择

    linux和mac很多地方是相似的,只不过在切换python版本时权限有差异. ====图已补上,O(∩_∩)O~ 1.linux 首先linux内核自带版本是python2.6,但是一般linux ...

  5. Mac 上Python多版本切换

    Mac上自带了Python2.x的版本,有时需要使用Python3.x版本做开发,但不能删了Python2.x,可能引起系统不稳定,那么就需要安装多个版本的Python. 1.安装Python3.x版 ...

  6. mac上Python多版本共存

    http://www.cnblogs.com/mingaixin/p/6295963.html https://www.cnhzz.com/pyenv_virtualenv_virtaulenvwra ...

  7. mac上Python多版本共存(python2.7.10和python3.5.0)

    本文的实现目标是在mac上安装一个python3.5.0的版本,跟当前系统自带的python2.7.10共存. 查看当前版本号 python -V 2.7.10 安装配置Python版本管理器pyen ...

  8. 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本

    问题描述 解决方法 先了解compile comsquareupokhttpokhttp240的意义 了解Jcenter和Maven jcenter Maven Central 理解jcenter和M ...

  9. 在 CentOS 6.x 上安装最新版本的 git

    在 CentOS 的默认仓库中有git,所以最简单的方法是: $ sudo yum install git 这种方法虽然简单,但是一般仓库里的版本更新不及时,比如 CentOS 仓库中的 git 最新 ...

随机推荐

  1. Linux系统——PXE高效能批量网络装机

    PXE:Pre-boot Excution Environment,预启动执行环境,石油Intel公司开发的网络引导技术,工作在Client.Server模式,允许客户机通过网络从远程服务器下载阴道镜 ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON Roberts1

    zw版[转发·台湾nvp系列Delphi例程]HALCON Roberts1 procedure TForm1.Button1Click(Sender: TObject);var img, img1: ...

  3. ajax 拦截器设置请求头

    使用vue-resource时,往headers里添加token后,post方法会自动变成options? Vue.http.interceptors.push(function(request, n ...

  4. Linux服务器---安装squid

    安装squid proxy就是软件代理或者代理服务器,而squid就是一种常用的proxy服务 1.安装squid [root@localhost wj]# rpm -qa | grep squid ...

  5. 用rewrite把旧域名直接跳转到新域名的nginx配置

    用rewrite把旧域名直接跳转到新域名的nginx配置 把下面代码保存到daziran.com.conf 放在nginx配置目录下 /etc/nginx/conf.d/ #把旧域名zdz8207直接 ...

  6. Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作

    Python3 Selenium WebDriver网页的前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 通过selenium webdr ...

  7. mysql服务器,大量tcp连接状态TIME_WAIT

    今天早上,java应用中发现too many open files,检查了下使用的连接数发现基本上在两三百左右,mysql打开的文件数也就几百左右,再看所有tcp连接,发现3306的连接有4000多, ...

  8. 20145304 刘钦令 Exp2 后门原理与实践

    20145304 刘钦令 Exp2 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 浏览网页时,或许会触发网站中隐藏的下载代码,将后门程序下载到默认地址. 下载的 ...

  9. 关于activity生命周期,启动模式和tag

    Acticity启动模式 1.standard:Activity的默认加载方法,该方法会通过跳转到一个新的activity,同时将该实例压入到栈中(不管该activity是否已经存在在Task栈中,都 ...

  10. Python3基础 set 自动将重复合并掉 不支持索引

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...