Jmeter: как инициализировать элемент диспетчера заголовков глобально - PullRequest
0 голосов
/ 23 марта 2019

Я хотел использовать один и тот же набор заголовков в нескольких файлах jmx. Поэтому я хотел инициализировать его один раз и использовать его в моих файлах jmx.
Может ли кто-нибудь помочь мне в удовлетворении моего требования? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Вы можете сделать это следующим образом:

  1. Создать CSV-файл с именем headers.csv для хранения заголовков, например:

    header-1-name,header-1-value
    header-2-name,header-2-value
    

    и сохранить его в "Папка bin "вашей установки JMeter

  2. Добавить пустой Диспетчер заголовков HTTP на верхний уровень вашего плана тестирования

  3. Добавить setUp Thread Group в ваш план тестирования
  4. Добавьте JSR223 Образец r в группу потоков setUp
  5. Поместите следующий код в область «Сценарий»:

    import org.apache.jmeter.protocol.http.control.Header
    import org.apache.jmeter.protocol.http.control.HeaderManager
    import org.apache.jmeter.threads.JMeterContext
    import org.apache.jmeter.threads.JMeterContextService
    import org.apache.jorphan.collections.SearchByClass
    
    SampleResult.setIgnore()
    
    def engine = ctx.getEngine()
    def testPlanTree = org.apache.commons.lang3.reflect.FieldUtils.readDeclaredField(engine, "test", true)
    
    def headerManagerSearch = new SearchByClass<>(HeaderManager.class)
    testPlanTree.traverse(headerManagerSearch)
    def headerManagers = headerManagerSearch.getSearchResults()
    headerManagers.any { headerManager ->
        new File('headers.csv').readLines().each { line ->
            def values = line.split(',')
            headerManager.add(new Header(values[0], values[1]))
        }
    }
    

    enter image description here

  6. Если вы хотите, вы можете «экстернализовать» точки 3 и 4 с помощью Тестового фрагмента
1 голос
/ 24 марта 2019

Это невозможно. Чтобы иметь возможность применять менеджер заголовков ко всему плану, он должен иметь самую большую область действия, но использование контроллера «Включить» или «Модуль» означает сокращение области действия.

Благодаря области действия все еще вы можете установить свой менеджер заголовка как дочерний элемент плана тестирования, и он будет применяться ко всем запросам.

Вы можете использовать свойства и функцию __P, чтобы настроить их в user.properties

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