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, но вы можете написать собственное динамическое значение для этого или использовать хакерский обходной путь:

  1. Выберите переменную секционирования в вашей среде шаг 1

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

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

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();
  }
 }

};

Другие вопросы по тегам