本人才疏学浅,本篇主要用于记录自己学习过程。如果不想看步骤的,可以直接看第5部分。
1. 命令行执行Jmeter最简单的命令是:
Jmeter -n -t XX系统.jmx -l XX系统.jtl
-n是非GUI模式执行,-t是被执行脚本文件 -l是输出执行结果 (日志是自动输出的,也可以手动指定 -j XX系统.log)
2. 但正常情况下,我们还需要实时设定线程数、启动周期时间。所以可以借助Jmeter的P函数。
我们可以在函数助手中找到它。
比如最常见的是这三个参数,都设定为P函数。
执行方式是,在cmd中进入脚本所在文件夹执行如下语句(Jmeter要配置环境变量)
Jmeter -JthreadCount=10 -JinSeconds=5 -Jcycle=1 -n -t XX系统.jmx -l XX系统.jtl -j XX系统.log
-J加上函数名称,注意:没有空格,是连起来的。
3. 每次执行还是很麻烦,现在用批处理来执行一个简单方便的批处理文件吧。把这段内容保存为.bat文件。
echo off
call Jmeter.bat -JthreadCount=10 -JinSeconds=5 -Jcycle=1 -n -t XX系统.jmx -l XX系统.jtl -j XX系统.log
pause
4. 优化一下批处理脚本,我们让之前设定的变量都由执行时来获取。
echo off
rem 获取用户输入的值
set threadCount=
set /p threadCount= 请输入线程数:
set inSeconds=
set /p inSeconds= 请输入启动周期(秒):
set cycle=
set /p cycle= 请输入循环次数:
rem 执行脚本
call Jmeter -JthreadCount=%threadCount% -JinSeconds=%inSeconds% -Jcycle=%cycle% -n -t XX系统.jmx -l XX系统.jtl -j XX系统.log
pause
执行一下,效果如下。
5. Jmeter的输出文件都是续写的,想按日期归类的话,也很简单。在输出命令路径上定义文件名字+日期就好了。
echo off
rem 创建文件夹
mkdir "Jtl文件"
rem 生成当前日期
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET yyyy=%%A
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('DATE/T') DO SET dd=%%B
set date=%yyyy%%mm%%dd%
set tmp_time=%time:~-11,2%%time:~-8,2%%time:~-5,2%
set time=%tmp_time: =%
set d=%date%%time%
echo 当前日期: %d%
rem 获取用户输入的值
set threadCount=
set /p threadCount= 请输入线程数:
set inSeconds=
set /p inSeconds= 请输入启动周期(秒):
set cycle=
set /p cycle= 请输入循环次数:
echo 线程数: %threadCount%, 启动周期(秒): %inSeconds%, 循环次数: %cycle%
rem 换行
echo.
rem 执行脚本
call Jmeter.bat -JthreadCount=%threadCount% -JinSeconds=%inSeconds% -Jcycle=%cycle% -n -t 非GUI积分系统.jmx -l Jtl文件/积分系统_%d%.jtl -j Jtl文件/积分系统_%d%.log
pause
这样每次执行的结果就分开了,也方便查找。