我们可以使用模拟框架进行负载测试还是应该创建接口将虚拟数据注入到类中?

问题描述 投票:0回答:1

我有一个服务“S”,它具有生成报告并下载报告的逻辑。它是用spring-boot和java编写的。该数据由另一个系统“B”使用,该系统的数据库“C”中的数据需要放入报告中。

单击一个按钮,“B”从“C”查询数据并将其存储在 java pojo 类中,该类被写入 Excel 文件并存储在云中。这发生在“B”

我们想使用一些虚拟数据对“S”进行负载测试。当“B”向数据库发起查询时,我们能否以某种方式将示例结果集注入“B”,而不需要在“B”中进行任何代码更改?然后,该示例结果集将用于生成报告。 (B 的罐子附在“S”上)

我想知道我们是否可以使用 Mockito、JOOQ、testContainers 等任何测试框架来控制结果集中的内容,因为这不是单元测试场景或集成测试。这仅用于负载测试目的,将采取相关措施以防止其进入生产。

请告诉我你的看法。

我们可以使用带有范围编译的mockito来进行模拟,但我不确定是否建议在这种情况下使用这个或任何测试框架。

java spring-boot mocking jooq spring-boot-testcontainers
1个回答
0
投票

我无法对 Mockito 发表评论,因为我不知道该 API。关于您要求的其他库:

jOOQ:

jOOQ 有

这两种方法都可以帮助您生成虚拟结果集以满足您的目的。您不需要在应用程序中使用 jOOQ 来使其工作,因为这两种方法都充当 JDBC API 实现。

测试容器:

这将提供比模拟更强大的测试方法,因为您将能够集成测试您的代码。它将更接近高效的性能特征,因为您可以在 docker 容器内使用真正的数据库产品,具有所有事务行为等。使用数据库的集成测试方法通常是好的,但显然测试会比测试慢得多如果使用模拟。

© www.soinside.com 2019 - 2024. All rights reserved.