首页 > 其他分享 >一个我个人的jmeter测试流程和命令

一个我个人的jmeter测试流程和命令

时间:2023-11-20 17:22:24浏览次数:36  
标签:流程 jtl html result 测试 服务器 jmeter

1,准备

首先是下载jmeter和插件,包含Custom Thread Groups(多样化的线程组,之后细说),PerfMon(监控服务器信息)

接下来部署测试应用,数据库和jmeter到不同的三个服务器上,启动测试应用和数据库,确保功能正常

 2,perfmon

使用perfmon需要下载两个部分,一个是jmeter的插件,直接从jmeter的Plugins Manager下载即可,首次使用jmeter可能没有自带的Plugins Manager,可以从这里下载jar包,然后放到jmeter根目录下的lib/ext目录中,插件下载完成后在jmeter的主界面上创建一个Thread Group,然后在Thread Group上依次点右键->add->Listerner->jp@gc - PerfMon Metrics Collector即可添加一个监控页面,到这里说明插件安装成功了

 

第二个是服务器上的监控端,叫做Server Agent,目前的版本是2.2.3,以后大概率也不会更新了,可以从这里下载。

下载完成后解压到测试应用所在服务器,位置随意,不要解压错服务器了,在解压出来的目录中执行startAgent.sh即可启动,它的默认端口是4444,启动成功的情况应该是这样的

如果要修改默认端口,执行

./startAgent.sh --udp-port 0 --tcp-port 3450

即可修改默认端口,这个命令的意思是不启用udp端口,修改tcp端口到3450

我个人倾向于让进程后台运行,前台还可以做其他事情,也不需要开更多的ssh窗口,所以我执行的命令是

nohup ./startAgent.sh > nohup.out &

可以将输出重定向到当前目录下的nohup.out文件,启动成功后就不用管了。

3,脚本

接下来是写jmeter的测试脚本,我个人的习惯是在Windows中用jmeter gui写脚本,调试好了放到jmeter所在服务器上面运行。

首先是我个人推荐的Custom Thread Groups插件,同样在Plugins Manager中下载安装,安装好了在Thread Group中有更多选择

我个人最倾向于使用jp@gc - Stepping Thread Group,如图,这个Thread Group的意思是一共开启2000个线程,但不是一开始就是2000个线程,而是启动后先等10秒,然后启动200个线程;接下来每隔10秒钟启动200个线程,直到总共启动2000个线程为止,然后持续运行900秒,运行完毕后每秒停止50个线程,直到所有线程全部停止

设置Thread Group之后就可以开始写脚本并调试了

脚本写完不要忘了添加上面提到的jp@gc - PerfMon Metrics Collector监控,否则是收集不到服务器信息的,点击Servers to Monitor下面的Add Row添加监控信息,包括监控服务器也就是启动了AgentServer的服务器IP,端口和监控项,如果没有指定端口就填默认端口4444,监控项可以选择,我个人一般选择CPU,内存,网络IO和磁盘IO,以及不要忘了把结果输出到文件,在Write results tofile / Read from file中添加文件名,不添加路径的话,就是当前目录

 

 4,运行

上传脚本和jmeter到服务器上就可以运行了,但是需要注意的是,记得要把插件的jar包一起上传,因为Linux服务器上一般是没有图形界面的,无法通过Plugins Manager下载插件

一般情况下我个人用 ./jmeter -n -t test.jmx -l result.jtl 命令执行测试

-n,表示无gui

-t,后面接测试脚本文件,一般情况下是jmx文件

-l,表示将测试结果输出到文件,文件扩展名一般情况下是jtl

如果没有报错,那么控制台输出应该类似于这样

执行完成后当前目录下应该有两个结果文件,一个是result.jtl,这个是测试的结果,一个是perfmon.jtl,是上一节添加的服务器监控数据结果,如果还要继续运行其他测试,记得把perfmon.jtl文件改名,避免使用了相同文件名,内容被覆盖

5,结果

我个人习惯是把测试结果转成html文件后再传到本地电脑写测试报告,因为测试结果jtl文件动辄好几个G大小,从远程服务器下载黄花菜都凉了,所以用这个命令将result.jtl转换成html

./jmeter -g result.jtl -o html/result/

 -g,后面参数接测试结果文件,一般情况下是jtl文件

-o,表示将结果输出到目录,如果没有会自动创建,包含子目录

执行完成后,控制台没有输出,当前目录下会生成一个html目录,目录中包含一个result目录,result目录中包含一个完整的html页面,将整个result目录打包成zip文件

zip -q -r result.zip html/result/

这个命令会将当前目录下的html/result目录打包成一个result.zip压缩文件,如果不希望压缩文件中有太多层级,进入html目录压缩result目录也是可以的。

下载result.zip文件并解压,然后双击打开index.html文件,就能看到测试结果了

 Charts里面可以看到各种图表,包括tps,这里就不挨个看了,各取所需

然后是perfmon.jtl,虽然文件格式相同,但是不能用这种方式转换成html页面,这个就只能下载到本地电脑,然后用jmeter打开。

跟上面的步骤一样,也是创建一个jp@gc - PerfMon Metrics Collector,但是不用填其他信息,直接从Write results tofile / Read from file下面找到Browse按钮,选择下载下来的perfmon.jtl,就能看到监控信息了

 忽略报错,这个不用管它,结果大概类似上面的截图,可以从Rows中勾选只显示某一项监控,更多的使用方法,可以参考插件文档,这里就不多说了。

以上就是我个人的一个大致流程,最重要的测试指标,服务器搭建,结果分析等就见仁见智了,毕竟没有统一标准,欢迎大家一起沟通讨论。

标签:流程,jtl,html,result,测试,服务器,jmeter
From: https://www.cnblogs.com/whiteEyeborw/p/17844412.html

相关文章

  • vue 创建项目流程
    1、首先在文件下打开cmd运行cd到你的目录下面2、npminitvue@latest命令创建项目默认都选否,具体需要,后面自行添加2、根据提示完成下三步操作这是运行npminstall由于卡住了,就需要进行下一步,手动打开刚刚的目录文件并且在该目录下,运行cmd,并输入,npmrundev来启动vu......
  • 接口测试之mock服务
    mock测试用实际应用的场景前后端分离架构模式中,同步开发时后端某些接口未开发好,而前端需要调用后端接口服务时,就可mock后端接口服务需要第三方接口服务挂掉或者需要第三方接口异常场景的数据时也可以mock第三方接口的返回数据上游接口服务挂掉,下游接口需要依赖数据时,也可以mo......
  • java版本的智能合约部署到fabric区块链测试网络
    开发智能合约并进行部署和更新操作在之前的文章中我们可以成功启动测试网络并进行了相关测试,现在我们需要进行智能合约的编写操作,并将其部署到测试网络中进行相关测试。本节智能合约代码采取Java语言进行编写,代码及相关部署参考(https://www.bilibili.com/video/BV1DR4y1M74B/?spm......
  • 秦疆的Java课程笔记:33 流程控制 Scanner
    之前学习的基本语法中并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,可以获取用户的输入。java.util.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in);通过Scanner类的nexr()与nextLine()方法获取输入的......
  • jmeter基本使用实践1
    1、录制脚本打开开发者工具,选中要录制的接口,右键copy>copyascurlbash2、线程数(即并发数):一个用户占一个线程,200个线程就是模拟200个用户;Ramp-Up时间(秒):设置线程需要多长时间全部启动;如果线程数为200,准备时长为10,那么需要1秒钟启动20个线程;也就是每秒钟启动20个线程;循环......
  • 文件的上传下载测试点
    上传超大超多文件的业务:业务举例:对于rvt文件支持上传200个 (1)上传了200个rvt文件后系统提交成功时间、是否保存成功、页面加载、附件下载的等性能。 (2)上传文件夹后单个删除再上传等边界场景。 (3)上传的进度条展示 (4)上传的过程中取消(刚上传的时候取消,上传到9......
  • 中台架构下的性能测试实践方法
    知识星球有同学私信问我:中台服务建设过程中,性能测试如何开展?问题背景如下:业务背景:银行业务;技术架构:业务应用和中台之间请求统一走ESB;当前阶段:中台建设中,一边拆分一边推动业务应用接入;具体问题:性能测试范围如何界定?业务应用是否需要纳入压测范围?在我看来,这是一个很典型的性......
  • bug分析总结测试点
    通用测试点: BUG总结易出错点: ......
  • revit测试插件更新,测试纪要
    1、revit如何模拟测试插件更新测试方法修改注册表的UUID,满足这个UUID和最新的UUID不一致,会弹出更新提示备注:(1)一定要测试环境和测试环境对应,dev和dev对应(2)test要和test对应,要去对应发布环境  当开发有代码修改,此时去发布对应代码库的代码,然后本地做插件更新,更新完......
  • sysbench 安装 postgres 测试环境( Connection to database failed: SCRAM authenticat
    报错Connectiontodatabasefailed:SCRAMauthenticationrequireslibpqversion10orabove的解决方案1、下载安装包https://gitee.com/xiaohai008/postgresql10-devel2、安装yuminstall-ylibiculibicu-develrpm-ivhpostgresql10-10.23-1PGDG.rhel7.x86_64.rpmrp......