1.简介

上一篇宏哥已经介绍了如何在Linux系统中安装Jmeter,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功安装好了,那么今天宏哥就来介绍一下如何在Linux系统下运行Jmeter脚本。

2.具体步骤

2.1创建Jmeter测试脚本

你要在Linux系统中运行Jmeter脚本首先要有Jmeter。在Windows系统中启动jmeter,创建Jmeter测试脚本,这里宏哥以访问我博客首页为例

1.启动Jmeter后,添加线程组,如下图所示:

2.选中“线程组”,添加取样器“HTTP请求”,如下图所示:

3.选中“HTTP请求”,添加监听器“察看结果树”,如下图所示:

4.点击保存按钮,脚本保存为test.jmx,运行脚本进行调试直到调试成功,如下图所示:

5.将线程组修改成100,然后保存,将文件上传至linux服务器。

2.2运行脚本

1.在Linux服务器的usr目录下创建一个test文件夹,如下图所示:

2.将在Windows调试好的基本上传到此文件夹中,如下图所示:

3.将脚本上传至linux服务器,然后就在当前的test目录下,输入命令 jmeter -n -t test.jmx -l log.jtl ,运行jmeter脚本。运行结果,如下图所示:

4.将脚本上传至linux服务器,或者进入jmeter的bin目录下,输入命令 jmeter -n -t /usr/test/test.jmx -l /usr/test/log.jtl ,运行jmeter脚本。运行结果,如下图所示:

PS:常用命令解析:

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

5.跑完之后,在test目录下,生成两个文件:一个是jmeter.log(jmeter运行日志),一个是我们的性能结果文件(log.jtl),我们用命令把log.jtl文件导入windows系统就能查看结果了,如下图所示:

2.3查看测试报告

1.在windows上启动jmeter,添加所需的监听器,导入脚本运行产生的log.jtl文件,查看测试结果,(注:察看结果树的请求内无信息,后边宏哥会给出解决方案),如下图所示:

从上图可以看出:宏哥前边线程组设置的是100,这里的聚合报告的样本也是100,说明没有问题,运行的是宏哥上传的脚本。

以上,即为在linux环境中运行jmeter脚本进行压测,并生成测试报告的的过程,具体操作,请自行实践,本文仅供参考。。。

2.4解决结果树查看无请求信息

1.在windows上启动jmeter,添加察看结果树监听器,导入脚本运行产生的log.jtl文件,查看测试结果,发现察看结果树的请求内无信息。如下图所示:

2.解决linux下运行jmeter脚本,导出的jtl文件,用结果树查看无请求信息问题,解决方法:在linux的jmeter安装目录下bin/user.properties 加入如下参数:

jmeter.save.saveservice.output_format=xml

jmeter.save.saveservice.response_data=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.responseHeaders=true

3.修改好以后,重新运行脚本,重新导入log.jtl文件查看测试的察看结果树,可以看到请求信息。如下图所示:

2.5解决中文乱码

1.察看结果树,有请求信息了,但是查看响应信息看到中文乱码了,如下图所示:

2.解决linux下运行jmeter脚本,导出的jtl文件,用结果树查看查看响应信息看到中文乱码了。解决办法:

修改bin目录下的user.properties文件,追加配置:

jmeter.save.saveservice.encoding=true

另外:JMeter结果树响应数据中文乱码解决办法:

encoding编码,打开apache-jmeter-5.4\bin\jmeter.properties文件,搜索“encoding”关键字,找到如下配置:

#The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1

将注释删掉,并改成utf-8编码,即:

sampleresult.default.encoding=utf-8

重启JMeter即可。

3.修改好以后,重新运行脚本,重新导入log.jtl文件查看测试的察看结果树,可以看到响应信息没有中文乱码了。如下图所示:

3.小结

1.jmeter为了减轻客户机负担,没有默认把这些信息(请求信息)保存,如果想要保存,也可以,需要做一下前边的配置即可。性能测试建议还是不要开这些配置,会增加报告的大小。

从生产的日志文件大小就可以看出确实是增加了客户机的负担,如下图所示:

2.修改完jmeter的配置文件信息,如果没有作用,记得要使用命令 source /etc/profile  运行后,再次尝试一下。

3.细心的小伙伴或者童鞋们会发现宏哥在登录Linux服务器的时候不是同一个用户,最前边是admin,后边又是root。这是因为宏哥之前用admin的时候,权限没有root的大,在运行脚本时,报错如下: main ERROR FileManager (jmeter.log) java.io.FileNotFoundException: jmeter.log (Permission denied) java.io.FileNotFoundException: jmeter.log (Permission denied)  报了一个权限错误。一时间没有找到解决办法就切换到root用户了,然后就成功运行了脚本。后来宏哥觉得是jmeter启动的日志文件写入不了test的文件夹中,于是就给文件夹赋予了最大权限,如下图所示:

再次运行jmeter脚本运行成功了,如下图所示:

4.要注意:

  • 不在JMeter脚本所在的当前目录中执行命令,需要填写脚本文件的全路径。
  • 还有就是运行脚本所产生的jmeter.log文件和结果文件,如果没有指定生成路径的话。会在执行JMeter命令的当前目录中生成。(这点要注意一下)

Jmeter(五十四) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 上篇(详解教程)的更多相关文章

  1. Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)

    1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...

  2. Jmeter(三十四) - 从入门到精通进阶篇 - 参数化(详解教程)

    1.简介 前边三十多篇文章主要介绍的是Jmeter的一些操作和基础知识,算是一些初级入门的知识点,从这一篇开始我们就来学习Jmeter比较高级的操作和深入的知识点了.今天这一篇主要是讲参数化,其实前边 ...

  3. Jmeter(四十四) - 从入门到精通高级篇 - Jmeter远程启动(本地运行+远程运行)(详解教程)

    1.简介 这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下. 2.什么是远程运行? 远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一 ...

  4. Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)

    1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...

  5. Jmeter(四十八) - 从入门到精通高级篇 - Jmeter监控服务器性能(详解教程)

    1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自 ...

  6. Jmeter(四十六) - 从入门到精通高级篇 - Jmeter之网页图片爬虫-下篇(详解教程)

    1.简介 上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中.网上很多漂亮的壁纸或者是美女.妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载. 2. ...

  7. Jmeter(四十九) - 从入门到精通高级篇 - jmeter使用监视器结果监控tomcat性能(详解教程)

    1.简介 上一篇宏哥讲解了利用jmeter的插件来监控服务器资源,这一篇讲解分享如何使用jmeter的监视器结果监控tomcat性能. 2.准备工作 文章标题中提到jmeter和tomcat,那么只需 ...

  8. Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)

    1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...

  9. Jmeter(三十六) - 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)

    1.简介 在性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间,然后继续加压达到某个值持续运行,如此循环直到达到预期的峰值,运行一 ...

随机推荐

  1. linux中查看端口号使用情况

    百度一圈,以下是整理来的操作命令. 1.netstat -anp |grep (端口号) 这个方法可以直观看到对应端口号是否被使用. 2.netstat -nultp 这个方法可以看到该机上所有以用的 ...

  2. 使用JQGrid中可见列并存入Cookie

    引入js与css <link href="~/Content/js/jquery-ui/jquery-ui.min.css" rel="stylesheet&quo ...

  3. Android 环境搭建记录

    Android 环境搭建记录 官网 https://developer.android.com/ studio 下载地址 官方下载 jikexueyuanwiki 国内镜像 studio历史版本 安装 ...

  4. .NET 6 史上最全攻略

    欢迎使用.NET 6.今天的版本是.NET 团队和社区一年多努力的结果.C# 10 和F# 6 提供了语言改进,使您的代码更简单.更好.性能大幅提升,我们已经看到微软降低了托管云服务的成本..NET ...

  5. 记一次docker安装成功,启动失败的原因

    问题 按照错误提示,先查看docker的状态: systemctl status docker 可以看到,非常明显的一行大红字:Failed to start Docker Application C ...

  6. 2021.11.03 P2886 [USACO07NOV]Cow Relays G(矩阵+floyed)

    2021.11.03 P2886 [USACO07NOV]Cow Relays G(矩阵+floyed) [P2886 USACO07NOV]Cow Relays G - 洛谷 | 计算机科学教育新生 ...

  7. MySQL Router重装后重新连接集群进行引导出现的——此主机中之前已配置过的问题

    问题出现的前因: 因为重新安装了MySQL Router,然后打算重新连接上目标集群进行MySQL Router的初始化引导,结果报错了! [root@linux666 system]# mysqlr ...

  8. 9.2 Linux硬盘分区和挂载

    一块新的硬盘存储设备后,先需要分区,然后再格式化文件系统,最后才能挂载并正常使用. 分区:根据需求和硬盘大小划分空间 格式化:对分区安装文件系统 挂载:将设备文件与一个目录关联的动作叫挂载 硬盘分区格 ...

  9. 掌握AI学习路上核心理论知识,你绝对不能错过这份最全资料包

    人工智能成为当下科技发展的代表之一,持续受到了不少追捧,不管你是否是这一专业的学生或者职场人,学习并掌握一项新潮技能总是不会被同龄人淘汰的.我曾经问过别人.也被别人问过关于学习人工智能(AI)最好的方 ...

  10. 详解Docker中Image、Container与 Volume 的迁移

    开源Linux 长按二维码加关注~ 上一篇:Linux Used内存到底哪里去了? 已经部署的容器化服务,也不是不需要维护的.而且,由于生产环境往往有这样那样的严格要求,往往需要些非常规操作.Imag ...