我想在 JUnit 中加载测试。场景如下:我想用它们的事务、EntityManager 和一个内存数据库来测试 EJB3。对于负载测试,我使用的是 ContiPerf 2。我用谷歌搜索了它,我看到了不同的方法。在某些情况下,他们使用嵌入式 EJBContainer,在另一些情况下,他们只是初始化 EntityManager 并从 EntityTransaction 开始事务。
对于简单的单元测试,使用 EntityManager 和 EntityTransaction 就足够了,但是当我想做负载测试时,我发现了几个问题,但最大的问题是概念性的。
我的第一种方法是:
@Test
@PerfTest(invocations = 1000, threads = 5)
@Required(max = 1000, average = 250)
public void testTransaction() {
et.begin();
MyEntity myEntity = new MyEntity();
service.performAction(myEntity);
thenMyEntityIsOk(myEntity);
et.rollback();
}
但是在这个测试中,由于回滚,我在进行负载测试时遇到了问题(如果我使用提交而不是回滚,问题是一样的)。
在此之后,我认为问题可能出在事务上,然后我开始使用嵌入式 EJBContainer,但我在依赖项和执行方面遇到了很多问题。
您对如何在 JUnit 中进行负载测试有什么建议吗?