测试休息Api并使用db访问验证,优点和缺点

时间:2016-05-11 11:52:44

标签: database rest automated-tests integration-testing

我正在端到端测试REST API,当我想检查应用程序的行为时。 一种是尽可能使用现有的REST API,但在其他情况下我没有可用的REST API,因此有两种选择: 为测试目的创建api或在数据库中检查数据是否按预期更改。

哪一个更好,为什么?从测试中进行db调用有什么害处吗?

2 个答案:

答案 0 :(得分:2)

由于您要测试API本身(端到端测试),因此我可能会选择创建测试数据库并进行处理的方法。如果您是手动执行此操作,则尽管很麻烦,但每次测试后都可以轻松重置数据库。

您也可以并且我可能会走这条路,创建一个具有随时可用数据库的Docker容器,您可以根据需要对该数据库进行更新,并随时间跨度开发API本身。您可以在每次需要执行测试时生成一个新的容器/数据库,这也将简化CI / CD管道中的自动化和集成。

使用这些解决方案中的任何一个,您都可以在真实的数据库中测试真实的API。提供更准确的测试结果。

希望这会有所帮助! 干杯!

答案 1 :(得分:0)

在e2e测试或验收测试中,通常只检查可观察到的行为,因此对于API用户,用户可以看到该行为,因此从理论上讲,您无需检查数据库。 / p>

如果您真的想检查数据库中的结果,我将使用xmysql https://github.com/o1lab/xmysql之类的项目来使用Rest API,该API可用于检查数据库。原因是:

  1. 您不必维护自己的代码即可为生产中不需要的API端点提供服务。该代码可能会公开,并可能成为安全问题
  2. 您不需要模拟任何数据库或调用,您可以测试自己的测试内容,也可以测试自己的测试内容
  3. 如果运行测试的系统和被测系统是不同的计算机,
  4. 易于测试。您可以进行所有远程测试,而无需打开数据库的端口。例如易于使用的docker进行设置,运行测试然后进行部署。部署唯一没有的是xmysql