使用邮递员中的预请求脚本在 laravel 5 应用程序中命中路由?

Hit a route in laravel 5 application using pre request scripts in postman?

所以我正在使用邮递员来测试我的 API 端点。我测试了所有资源的 CRUD。但是每次我 运行 测试时,数据库状态都会发生变化,这就是下一次测试迭代失败的原因。

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

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

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

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

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

有谁知道更好的方法吗?或者我正在尝试做的解决方案?

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

据此,该功能尚不可用。所以我进行了周转。

我只是创建了一个名为 AAA-reset 的请求,以便它在顺序中排在第一位。我想还有另一种方法可以在邮递员集合中内部调整顺序,但我只是把它搞砸了。

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

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

我还在 laravel 的路线中设置了 ini_set('max_execution_time', 300); 以避免使用 PHP 达到执行时间上限。