2016-03-15 76 views
1

所以我使用邮递员来测试我的API端点。我测试所有资源的CRUD。但每次运行测试时,数据库状态都会发生变化,这就是为什么下一次测试迭代失败,原因很明显。在邮递员中使用预先请求脚本在laravel 5应用程序中创建一个路径?

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

我的意思是,我可以定义一个可以改变数据库的路由,并且我可以在第一个API端点的预请求中打这个路由,这是认证。这样每一次迭代将具有相同的数据库状态。

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

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

因为我没有反馈任何其他方式,我将尝试将其保存在查看响应环境变量。但是这似乎并不奏效,也许是因为它是一个异步请求或者其他原因。我没有看到环境变量集。

有没有人知道更好的方法来做到这一点?或者我正在尝试做的解决方案?

回答

0

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

据此,该功能尚不可用。所以我采取了一个转机。

我只是简单地创建了一个名为AAA-reset的请求,以便它按顺序结束。我想还有另外一种方法可以在postman集合内部调整订单,但我只是把它砍掉了。

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

我使用-r国旗在newman将请求时间设置为一个更大的值,因为播种需要时间。

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

相关问题