Jmeter - создание пакетного файла для панели инструментов отчетов - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно выполнить следующую команду:

jmeter -g /path/to/jtl/file -o /where/you/want/to/store/dashboard

Требование: существует папка с множеством файлов расширений jtl.Приведенная выше команда jmeter создает панель мониторинга для файла jtl.Мне нужен пакетный скрипт, который бы создавал папку для каждого файла jtl, и когда я запускаю вышеупомянутый jmeter файл, он должен взять в каждом файле jtl и создать панель мониторинга.В настоящее время папка создается и панель инструментов загружается только для первого файла jtl.

Расположение файлов jtl: C:\Jmeter\Tests.В нем есть такие файлы, как test01.jtl, test02.jtl ...
Панель инструментов, которая будет создана на C:\Jmeter\Dashboard - здесь необходимо создать папку с именем Test01, Test02 ....

Когда я запускаю jmeter -g C:\Jmeter\Tests\Test01.jtl -o C:\Jmeter\Dashboard\Test01\ через сценарий, он создает панель управления только для Test01, а не для остальных файлов.

@echo off

set hh=%time:~-11,2%
set /a hh=%hh%+100
set hh=%hh:~1%
set dateseed=%date:~10,4%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2%
set dashboardPath=C:\Jmeter\Dashboard
set folderpath=C:\Jmeter\Tests

if not exist "%dashboardPath%\%dateseed%" mkdir "%dashboardPath%\%dateseed%"
set folder=%dashboardPath%\%dateseed%

setlocal enabledelayedexpansion

cd %folderpath%

for %%A in (*.jtl) do (
    echo file found  %%A
    for /f "delims=" %%B in ("%%A") do set fname=%%~nB
    for /f "delims=" %%C in ("%%A") do set fextn=%%~xC
    for /f "tokens=1* delims=_" %%D in ("!fname!") do set folname=%folder%\%%D

    echo folder name !folname!
    cd %folder%
    if not exist "!folname!" (
        echo Folder !folname! does not exist, creating
        md "!folname!"
        cd C:\Jmeter1\apache-jmeter-5.0\bin
        jmeter -g "%folderpath%\%%A" -o "!folname!"
    ) else (
        echo Folder !folname! exists
    )
)

pause

Вывод: enter image description here

Выходная папка выглядит следующим образом: enter image description here

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018
@echo off
setlocal enabledelayedexpansion

set dashboardPath=C:\Jmeter\Dashboard
set folderpath=C:\Jmeter\Tests

cd %folderpath%

for %%i in (*.jtl) do mkdir %dashboardPath%\%%~ni
for %%A in (*.jtl) do (
for /f "delims=" %%B in ("%%A") do set fname=%%~nB
pushd C:\Jmeter1\apache-jmeter-5.0\bin
start jmeter -g "%folderpath%\%%A" -o "%dashboardPath%\!fname!"
popd
   )

Все, что нужно, это запустить в начале команды jmeter run

0 голосов
/ 16 декабря 2018
@echo off
setlocal enabledelayedexpansion
set "dashboardPath=C:\Jmeter\Dashboard"
set "folderpath=C:\Jmeter\Tests"

cd /d "%folderpath%"

for %%A in (*.jtl) do (
    if not exist "%dashboardPath%\%%~nA" mkdir "%dashboardPath%\%%~nA"
    set "fname=%%~nA"
    pushd "C:\Jmeter1\apache-jmeter-5.0\bin" && (
        jmeter -g "%folderpath%\%%~nxA" -o "%dashboardPath%\!fname!"
        popd
    )
)
pause

Пример 1.

Использует pushd и popd, чтобы изменить каталог для запуска jmeter.Использует отложенное расширение для fname.Эти команды, возможно, не нужны, поэтому будет отображаться альтернатива.


@echo off
setlocal
set "dashboardPath=C:\Jmeter\Dashboard"
set "folderpath=C:\Jmeter\Tests"
set "path=%path%;C:\Jmeter1\apache-jmeter-5.0\bin"

cd /d "%folderpath%"

for %%A in (*.jtl) do (
    if not exist "%dashboardPath%\%%~nA" mkdir "%dashboardPath%\%%~nA"
    jmeter -g "%folderpath%\%%~nxA" -o "%dashboardPath%\%%~nA"
)

pause

Пример 2.

Добавляет jmeter путь к переменной pathпоэтому менять каталог не нужно.Расширение без задержки, поскольку %%~nA используется вместо установки на fname.


@echo off
setlocal
set "hh=%time:~,2%"
set "hh=%hh: =0%"
set "dateseed=%date:~10,4%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2%"
set "dashboardPath=C:\Jmeter\Dashboard"
set "folderpath=C:\Jmeter\Tests"
set "path=%path%;C:\Jmeter1\apache-jmeter-5.0\bin"

cd /d "%folderpath%"

for %%A in (*.jtl) do (
    if not exist "%dashboardPath%\%dateseed%\%%~nA" mkdir "%dashboardPath%\%dateseed%\%%~nA"
    jmeter -g "%folderpath%\%%~nxA" -o "%dashboardPath%\%dateseed%\%%~nA"
)

pause

Пример 3.

Как и 2-й код, хотя используетсяdateseed концепция.Время может начинаться с пробела, если час представляет собой одну цифру, поэтому используйте подстановку переменной %hh: =0%, которая заменяет любой пробел на ноль.

Не совсем точно, что соответствует вашим требованиям, поэтому предложили несколько примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...