首页 文章

使用 postman 中的预请求脚本在 laravel 5 应用程序中命中一条路线?

提问于
浏览
1

所以我使用 postman 来测试我的 API 端点。我测试了所有资源的 CRUD。但是每次运行测试时,数据库状态都会发生变化,这就是为什么下一次测试迭代会因为显而易见的原因而失败的原因。

我可以看到有预请求脚本部分,我可以在 postman 中执行之前定义要运行的脚本。现在来解决数据库状态更改问题,我通常使用 laravel 附带的 artisan 通过命令行重新设置数据库。我可以通过应用程序中的代码执行相同的操作。

我的观点是,我可以定义一个可以重新设置数据库的路由,并且可以在第一个 API 端点(即身份验证)的预请求中命中该路由。这样每次迭代都将具有相同的数据库状态。

所以我在第一个端点的预请求脚本中尝试这个:

$.get('http://{{host}}/api/reseed', function(response){
    postman.setEnvironmentVariable("foo", response);
});

由于我没有任何其他反馈方式,我试图通过将其保存在环境变量中来查看响应。但这似乎不起作用,可能是因为它是异步请求或其他原因。我没有看到环境变量集。

有谁知道更好的方法吗?或者解决我想要做的那个?

1 回答

  • 0

    https://github.com/postmanlabs/postman-app-support/issues/697

    据此,该功能尚不可用。所以我顺利完成了工作。

    我只是创建了一个名为 AAA-reset 的请求,以便它在订单中首先结束。我想还有另一种方法可以在 postman 集合内部调整订单,但我只是将其搞砸了。

    此请求在另一个请求之前运行,并在我的应用程序中命中一个简单的路由,该路由重置数据库。

    我使用newman中的-r标志将请求时间设置为更大的值,因为播种需要时间。

    我也在 laravel 的路线中设置了ini_set('max_execution_time', 300);,以避免在 PHP 中执行时间。

相关问题