Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用事务但使用JUnit的负载测试_Java_Transactions_Junit4_Ejb 3.0_Contiperf - Fatal编程技术网

Java 使用事务但使用JUnit的负载测试

Java 使用事务但使用JUnit的负载测试,java,transactions,junit4,ejb-3.0,contiperf,Java,Transactions,Junit4,Ejb 3.0,Contiperf,我想在JUnit中加载测试。情况如下: 我想用它们的事务、EntityManager和内存数据库测试EJB3。 对于负载测试,我使用ContiPerf 2。 我在谷歌上搜索了一下,发现了不同的方法。在其中一些示例中,他们使用嵌入式EJBContainer,在另一个示例中,他们只是初始化EntityManager,然后从EntityTransaction启动事务 对于一个简单的单元测试,使用EntityManager和EntityTransaction就足够了,但是当我想进行负载测试时,我发现了几

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

问题不在测试中,而是您没有使用事务:请参阅