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?
1 ответ
Мы планируем реализовать это правильно, используя вкладки на MacOS Sierra. С каждой операцией вкладки в качестве выделенного сеанса, и вы прикрепите выбор среды к вкладке.
Это еще не реализовано должным образом в Paw, но вы можете написать собственное динамическое значение для этого или использовать хакерский обходной путь:
Установить
X-paw-env
заголовок в запросе 1 переменная среды разбиения. Таким образом, вы получите текущее значение переменной разделения в зависимости от средыВ запросе 2 в поле, где вы используете
Response Parsed Body
вставитьCustom
динамическое значение вместо Внутри вы получите последний обмен для запроса 1, где заголовок запроса соответствует значению вашей переменной разделения для текущей среды. Затем извлеките нужное значение из тела ответа, используя RegExp Match
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();
}
}
};