1

我想在 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 中进行负载测试有什么建议吗?

4

0 回答 0