Paw - получить последний запрос, сделанный с использованием определенной среды

Я пытаюсь использовать динамическое поле из проанализированного ответа. Проанализированный ответ должен относиться к последнему запросу, сделанному с использованием определенной среды. Это возможно?

Вот сценарий:

1. Make Request 1 using Environment A
    Receive Response A1
2. Make Request 1 using Environment B
    Receive Response B1
3. Make Request 2 using environment A, with field from parsed response A1
    Receive Response A2
4. Make Request 2 using environment B, with field from parsed response B1
    Receive Response B2

Как организовать шаги 3 и 4?


person Omar Darwish    schedule 12.08.2016    source источник


Ответы (1)


Мы планируем правильно реализовать это с помощью вкладок в MacOS Sierra. С каждой операцией на вкладке в качестве выделенного сеанса вы закрепите выбор среды на вкладке.

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

  1. Выберите переменную разделения в своей среде step1

  2. Установите заголовок X-paw-env в запросе 1 переменной среды разделения. Таким образом, вы получаете текущее значение переменной разделения в зависимости от среды шаг 2

  3. В Запросе 2 в поле, где вы используете Response Parsed Body, вместо этого вставьте динамическое значение Custom. Внутри вы получите последний обмен для запроса 1, где заголовок запроса соответствует значению вашей переменной разделения для текущей среды. Затем извлеките нужное значение из тела ответа, используя RegExp Match step3

function evaluate(context){
	var variableValue = 	context.getEnvironmentVariableByName("myPartitioningVariable").getCurrentValue()

	var exchanges = context.getRequestByName("Request1").getAllExchanges();
	for (var i = 0; i < exchanges.length; i++) {
		console.log(i, exchanges[i].requestHeaders["X-paw-env"]);
		if (variableValue === exchanges[i].requestHeaders["X-paw-env"]) {
			var dv = new DynamicValue("com.luckymarmot.RegExMatch", { re: '"user":\\s*"([^"]*)', input: exchanges[i].responseBody });
			console.log(exchanges[i].responseBody)
			console.log(i, "returning")
			return dv.getEvaluatedString();
		}
	}

};

person Natalia Panferova    schedule 16.08.2016