如何为使用 RDS 作为存储的 Spring 应用组织端到端测试

How to organize e2e tests for Spring app with RDS as a storage

我们有一个 Spring 启动应用程序,它使用 RDS 服务存储数据(特别是 PostgreSQL、VPC + 私有子网)和 Cognito 进行用户身份验证。所有这些爵士乐都以自动化方式部署(Jenkins + CloudFormation)。现在,我们进行了一些端到端测试,检查应用程序是否处于活动状态。问题是,我们是否应该进一步尝试测试功能,要求一些测试用户获得授权。就个人而言,我更希望它被测试,但有一些障碍我不知道如何处理。

  • 不确定如何同时发布应用程序和数据库补丁,或者根据是否有数据库更改发布不同的版本。很多都取决于这个

  • 我更喜欢端到端测试在他们之后清理数据库数据。我的意思是这个测试将数据插入数据库并且可能在拆卸方法中或者可能是一个全新的测试删除所有创建的记录 by/for 测试并且在这 2 个过程之间你可以执行你的正常测试。

  • 这里我假设您正在遵循测试金字塔,与系统集成和单元测试相比,e2e 测试最慢且数量更少。

  • 这可能有点棘手,具体取决于您要测试的场景,当 运行ning simultaneous/concurrent 测试时,这里有一个解决方法,可以为每个场景使用不同的数据测试。

  • 我希望您应用具有所需状态的快照(这里我的意思是不是使用预填充的测试数据,而是只使用具有所需主数据的 table 模式)。

  • 如果有架构更改,您仍然会备份现有架构,应用架构的新脚本更改,然后 运行 测试。