Paw - 获取使用特定环境发出的最后一个请求
Paw - Get last request made using specific environment
我正在尝试使用已解析响应中的动态字段。解析的响应必须针对使用特定环境发出的最后一个请求。这可能吗?
场景如下:
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 步?
我们计划通过在 MacOS Sierra 上使用选项卡来正确实施它。每个选项卡操作都是专用的 session,您会将环境选择固定到选项卡。
这在 Paw 中尚未正确实现,但您可以为此编写自定义动态值或使用 hacky 解决方法:
在请求 2 中,在您使用 Response Parsed Body
的字段中插入一个 Custom
动态值。在其中获取请求 1 的最新交换,其中请求 header 与当前环境的分区变量值相匹配。然后使用 RegExp Match 从响应 body 中提取您需要的值
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();
}
}
};
我正在尝试使用已解析响应中的动态字段。解析的响应必须针对使用特定环境发出的最后一个请求。这可能吗?
场景如下:
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 步?
我们计划通过在 MacOS Sierra 上使用选项卡来正确实施它。每个选项卡操作都是专用的 session,您会将环境选择固定到选项卡。
这在 Paw 中尚未正确实现,但您可以为此编写自定义动态值或使用 hacky 解决方法:
在请求 2 中,在您使用
Response Parsed Body
的字段中插入一个Custom
动态值。在其中获取请求 1 的最新交换,其中请求 header 与当前环境的分区变量值相匹配。然后使用 RegExp Match 从响应 body 中提取您需要的值
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();
}
}
};