2016-06-10 7 views
0

Я хочу извлечь значение параметра, отправленного по запросу в jmeter. Я знаю использование регулярного выражения для извлечения значения ответа или URL-адреса запроса, но здесь я хотел бы извлечь значение post-запроса.Извлечение значения из jmeter post request

Я был основательно how to extract value from request in Jmeter, но это не сработало.

ответ

0

Я добавил постпроцессор Beanshell в свой http-запрос со следующим кодом.

import org.apache.jmeter.config.Argument; 
import org.apache.jmeter.config.Arguments; 

Arguments argz = ctx.getCurrentSampler().getArguments(); 
for (int i = 0; i < argz.getArgumentCount(); i++) { 
    Argument arg = argz.getArgument(i); 
    String a = arg.getValue(); 
    vars.put("EMAIL",a); 
}  

Пояснение: Я получаю свой запрос как json и помещаю его в EMAIL. Теперь я могу использовать EMAIL как переменную в моем другом запросе.

Затем я добавил jp @ gc Json Path Extractor и применил его к Jmeter Varaible. Теперь электронная почта будет использоваться как переменная, которая содержит мой запрос json, и я могу извлечь ее с помощью jsonPath Extractor.

+0

https://kishorsharma69.wordpress.com/2016/10/03/absolute-directory-path-for-jmx-file-jmeter/ для получения более подробной информации. –

1

Не уверен, почему вам это нужно, как дал вам посылать «что-то» у вас уже есть, что «что-то» значит, что вам не нужно, чтобы извлечь его, однако здесь вы идете:

Для того, чтобы сохранить 1-ый значение параметра (или целые почтовые данные в, если вы используете режим «Data Body»):

  1. Добавить Beanshell PostProcessor как потомка HTTP запроса.
  2. Поместите следующий код в области «Скрипт» постпроцессор в:

    String request = ctx.getCurrentSampler().getArguments().getArgument(0).getValue(); 
    vars.put("request", request); 
    

Вы сможете получить доступ к экстрагированному значению в ${request}, где требуется.

Разъяснения:

  • ctx - сокращение для JMeterContext экземпляра класса
  • getCurrentSampler() - в случае HTTP запроса пробоотборник означает HTTPSamplerProxy

См How to Use BeanShell: JMeter's Favorite Built-in Component руководство для получения более подробной информации об использовании JMeter и Java API из тестовых элементов Beanshell в вашем тесте JMeter.

0

Простым способом для этого является использование экстрактора пути JSON.

Есть только Для примера вы дали { "data" : { "name" : "john_doe", } }

«Имя переменной: YourNewVar» «JSON Путь: $ .data.name» должен работать, но вы, возможно, придется сделать некоторые эксперименты.

Возможно, вы захотите добавить «отладочный пробоотборник» (один из стандартных пробоотборников) и поставить в свой заголовок $ YourNewVar, чтобы вы могли видеть, что извлекается.

Beanshell и «Regular Expression Extractor» будут работать, конечно, но могут быть немного сложнее в использовании, если вы не знакомы с ними.

Смежные вопросы