【问题标题】:Hit a route in laravel 5 application using pre request scripts in postman?使用邮递员中的预请求脚本在 laravel 5 应用程序中命中路由?
【发布时间】:2016-06-30 13:02:54
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: php laravel laravel-5 postman


    【解决方案1】:

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

    据此,该功能尚不可用。所以我设法扭转了局面。

    我只是创建了一个名为 AAA-reset 的请求,以便它按顺序排在第一位。我想还有另一种方法可以在 postman 集合内部调整顺序,但我只是修改了它。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      • 2018-08-27
      • 2020-06-19
      • 2015-10-26
      相关资源
      最近更新 更多