自动化工具 Jmeter 性能测试辅助工具

盗版迷糊 · 2018年03月30日 · 最后由 盗版迷糊 回复于 2018年04月07日 · 1314 次阅读

https://github.com/cheongwen/jmeterTestTools

编译打包

mvn clean
mvn package

运行环境

jdk 8
jmeter 3.x 及以上
linux & windows

功能说明

1.根据性能测试运行方案配置,生成自动运行脚本。

运行配置文件 runconfig.properties

### 运行系统配置
# 运行系统 linux,windows
run.jmeter.sys=linux
# jmeter 安装主目录
run.jmeter.home=/home/tools/apache-jmeter-4.0
# 按时间 time 按次数 cycle
run.mode=time
# 最小的并发数
run.threads.min=10
# 最大的并发数
run.threads.max=30
# 每次递增的并发数
run.threads.step=10
# 启动间隔时间,单位:秒
run.threads.ramptime=10
# 每个线程数的运行时间,单位:秒
run.time=120
# 每个线程数运行次数
run.cycle=300
# 每次运行的间隔时间,单位:秒
run.sleeptime=60

根据上述配置,会自动生成性能测试运行 shell 脚本,测试方案为 10 个并发开始依次递增 10 个并发,最大并发数为 30;
即 10、20、30 个并发每次运行 120 秒,每次运行间隔时间为 60 秒。

2.执行自动运行脚本,生成测试报告,根据测试报告数据自动整理合并测试数据。

自动测试脚本执行完成后,jmeter 生成测试报告目录,本工具会汇总每次执行完成后的测试报告,生成总的测试报表,格式为 excel。

使用说明

usage:java -jar JmeterTestTool-v1.x.jar [test | report] [jmx file | report file] [config file | report dir]

一、生成测试脚本

example:java -jar JmeterTestTool-v1.x.jar [test] [test.jmx] [config.properties]

1. 生成测试脚本 usage: test
2. jmx 文件路径,e.g. /home/runtest/test.jmx
3. 执行配置方案文件路径,e.g. config.properties

生成产物:

  1. 以 [测试计划 + 时间戳] 命名的测试目录,如 testrun_1521541865273
  2. 目录下生成自动测试脚本 auto_run_jmeter.sh
  3. jmeter 执行测试计划文件 jmeter_test.jmx

产物使用:

  1. chmod a+x auto_run_jmeter.sh
  2. ./auto_run_jmeter.sh &

执行完毕:

  1. 根据方案运行配置生成对应的测试报告文件及目录,命名方式:并发数_执行时间 (s),如 10_120.jtl、10_120

二、合成测试报告

example:java -jar JmeterTestTool-v1.x.jar [report] [report.xlsx] [/home/testrun_1521541865273]

1. 合成测试报告 usage: report
2. 生成报告文件,e.g. report.xlsx
3. 测试报告集合目录,e.g. /home/testrun_1521541865273

生成产物:

  1. 执行目录生成汇总报表文件,如 report.xlsx
共收到 5 条回复 时间 点赞

感谢楼主的分享,有个疑问:jmeter 的 ramptime 不是指启动所有线程所需要的时间吗

suihansongmao 回复

run.threads.ramptime 这个参数对应的 jmeter 的 Ramp-Up Period,也就是所有线程启动时间。举个栗子:线程数 100,Ramp-Up Period=20,那么就是 jmeter 创建线程时是每秒按照【线程数/Ramp-Up Period】=5 个线程启动。说明下是创建线程时,不是运行时。

盗版迷糊 回复

嗯,我们说的应该是一个意思吧?
你设置这个时间后,10 个线程时的 Ramp-Up Period 就是 100s,30 个线程时的 Ramp-Up Period 就是 300s,我理解的没错吧

6楼 已删除

之前尝试用一个网页去生成 JMX 配置文件,就做了一个 Thread Group + HTTP Sampler 的,后来懒的维护了。http://testertool.com/

suihansongmao 回复

好像不一样哦,这个参数的意思是第一次启动线程的时间,相当于启动缓冲时间。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册