GUI模式执行

这种方式一般是在调试脚本时使用,不建议在真正接口压测的时候使用,主要原因是UI界面执行大量并发时会占用过高的CPU;计算机的本省的性能会很大情况上影响压测结果,导致测试结果不准确。

cmd执行

1. 命令

 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
  • jmx file是测试计划文件路径
  • results file是测试结果文件路径
  • Path to web report folder 报告路径
  • -n:非GUI模式,其实就是命令行的模
  • -t:后跟测试文件(jmx文件)
  • -l:后跟log文件,把测试的过程输出到日志文件中
  • -e:测试结束后生成报告
  • -o:测试报告存放目录,必须为空目录

2. 文件路径

在这里插入图片描述

3. 命令执行

jmeter -n -t D:/jmeter/my_test/permission.jmx -l D:/jmeter/my_test/result/result.txt -e -o D:/jmeter/my_test/report

在这里插入图片描述

4. 执行完毕之后,从报告路径打开html既可查看结果:

在这里插入图片描述

5. 再次执行,结果如下:

在这里插入图片描述

  • 原因:再次执行同一脚本,需要清理report和result文件。
  • 解决办法:新建bat文件,每次执行脚本前删除文件和文件夹,并且新建文件夹
    在这里插入图片描述
    @echo off
    del/s/Q report
    rd/s/Q report
    del/s/Q result
    rd/s/Q result
    md report
    md result
    ::这里使用了相对路径,bat文件放在了jmx文件同级目录,也可使用绝对路径
    jmeter -n -t permission.jmx -l result/result.txt -e -o report
    

6、动态设置并发数、执行时间、循环次数

在这里插入图片描述

配置说明
  • 并发数设置为${__P(concurrent_number,1)}
  • 循环次数设置为${__P(cycles,1)},取消勾选Forever
    • 1是默认值,作用是执行一次来调试脚本,
    • =-1时即表示Forever(持续压测时设置为-1)
  • 执行时长设置为${__P(duration,60)},默认1分钟(60s),如果同时设置了循环次数和执行时长,那么满足其中一个条件脚本就会停止
    50并发执行10min的命令行如下:
    jmeter -n -t permission.jmx -Jconcurrent_number=50 -Jduration=600 -Jcycles=1 -l result/result.txt -e -o report
Linux服务器执行
  1. 镜像服务-镜像仓库:jmeter-tomact-new
  • 克隆并构建
    • 先将jmeter压缩包上传到根目录,构建镜像
    • 克隆并构建上次的镜像
    • jmx脚本放在/apache-jmeter-5.5/bin
  1. 弹性计算-容器服务,选择:jmeter-tomact/tomact-new
  • 新构建服务后,需要升级选择镜像版本
  1. 点击进入终端
  2. cd usr/local/tomcat/webapps/
  3. 新建文件夹:mkdir ROOT
  4. cd apache-jmeter-5.5/bin
  5. 增加权限:chmod +x jmeter
  6. 输入命令,执行jmx脚本(每次执行report文件须):
    sh jmeter.sh -n -t test_per.jmx -Jconcurrent_number=30 -Jduration=600 -Jcycles=-1 -l /usr/local/tomcat/webapps/ROOT/report30/result.txt -e -o /usr/local/tomcat/webapps/ROOT/report30
    执行中:
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/11ad2143c3494049b8d22a02125dad28.png

9、执行结束后,访问路径:http://tomcat-new.preview.paas.gwm.cn/report30/

遇到的坑
1.CannotResolveClassException:com.blazemeter.jmeter.RandomCSVDataSetConfig

  • 原因:缺少jar包导致,服务器上的jar包和windows上的保持一致在这里插入图片描述
    执行./jmeter报错【./jmeter:Permission denied】
    在这里插入图片描述

  • 分析:是由于jmeter的没有执行权限

  • 【查询权限的方法】
    1)输入命令:ls -al
    2)查看对应文件的权限,类似于:-rw-r–r–
    3)含义:
    r 表示文件可以被读(read)
    w 表示文件可以被写(write)
    x 表示文件可以被执行(如果它是程序的话,execute)

    • 表示相应的权限还没有被授予
  • 解决办法:

    • 需要进入到bin目录下,增加权限:chmod +x jmeter

    • 增加后可输入命令:ls -al 查看是否增加权限
      (-rwxr-xr-x 1 root root 8644 Feb 1 1980 jmeter)

    • 运行命令:sh jmeter.sh -v (可验证是否成功))
      在这里插入图片描述

      sh jmeter.sh -n -t test_per.jmx -Jconcurrent_number=50 -Jduration=600 -Jcycles=-1 -l /usr/local/tomcat/report50/result.txt -e -o /usr/local/tomcat/repor50
      
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐