Как получить имя файла JMX Jmeter в переменной

Я хочу использовать имя тестового скрипта jmeter (.jmx) в слушателе, чтобы динамически генерировать файл результатов. Подскажите, пожалуйста, какая для этого используется переменная Jmeter?

Использовал $ {fileName}, который не работал


person user2885295    schedule 01.07.2015    source источник


Ответы (3)


Переменная, содержащая имя плана тестирования, ${__TestPlanName}.

Ссылка: http://jmeter.apache.org/usermanual/functions.html#__TestPlanName

person RaGe    schedule 01.07.2015

Вы можете сделать это с помощью сценариев Beanshell, например:

  1. Режим GUI

    import org.apache.jmeter.gui.GuiPackage;
    
    String scriptName = GuiPackage.getInstance().getTestPlanFile();
    vars.put("scriptName", scriptName);
    
  2. режим без графического интерфейса

    import org.apache.jmeter.services.FileServer;
    
    String scriptName = FileServer.getFileServer().getScriptName();
    vars.put("scriptName", scriptName); 
    

Поместите фрагмент кода по вашему выбору в любой тестовый элемент «Beanshell» (сэмплер, предварительный / постпроцессор или утверждение), он получит имя тестового скрипта .jmx и сохранит его в переменной ${scriptName}.

Чтобы узнать больше о сценариях Beanshell в JMeter, ознакомьтесь с Как использовать BeanShell: любимое приложение JMeter встроенный компонент руководство.

person Dmitri T    schedule 01.07.2015

Ниже будет работать независимо от режима GUI / Non GUI:

import org.apache.jmeter.services.FileServer;
import java.io.File;

String testPlanFile = FileServer.getFileServer().getBaseDir() +
                       File.separator +
                       FileServer.getFileServer().getScriptName();

props.put("testPlanFile", testPlanFile);

Используйте это как $ {__ P (testPlanFile)} - добавление его как var не будет работать во всех потоках. Из http://jmeter.apache.org/usermanual/functions.html -

Свойства - это не то же самое, что переменные. Переменные являются локальными для потока; Свойства являются общими для всех потоков, и на них нужно ссылаться с помощью функции __P или __property.

person Pavan Kumar    schedule 26.04.2016