对于我们的应用程序,我们应该编写测试我们的REST api的测试脚本。
所以我在邮递员的集合中写了个别测试。单独运行时,所有测试都通过。
现在要在集合中按顺序运行所有测试,我希望第一个GET请求的输出(响应是json对象的数组),作为输入主体传递给下一个POST请求。
以下代码在测试GET请求中作为测试编写。
var jsonData = JSON.parse(responseBody); postman.setEnvironmentVariable(" data",jsonData);
postman.setNextRequest(" POST请求");
我已将我的帖子请求命名为" POST请求"。但是这个测试失败了。
如果我犯了任何错误,请告诉我。
答案 0 :(得分:2)
您尝试将整个json设置为环境变量而不是属性值。尝试改变这样的行。
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable(" data", jsonData.id );
稍后,将该环境变量用作POST请求的输入{{data}}
考虑到你的json响应是这样的。
<?=yii\bootstrap\Alert::widget([
'options' => [
'class' => 'alert-info',
],
'body' => Yii::$app->getSession()->getFlash('success'),
]);?>
希望我回答你的问题。我最近写了一篇关于使用邮递员自动化API的博客,你可以在这里参考API Automation using postman
如果它能解决您的问题,请告诉我们。
阿!!错过了这一点。
如果要将整个Json作为输入发送,请使用JSON.stringify()Similar question asked
答案 1 :(得分:0)
应将数据设置为POST操作请求的一部分。
在Postman中,在POST请求的body
部分,您可以将数据设置为请求,可以是表单字段值,也可以是整个请求主体,例如原始数据。
{{data}}
此处提供了一些其他信息和示例:https://www.getpostman.com/docs/postman/environments_and_globals/variables