1

JUnit でテストをロードしたいと思います。シナリオは次のとおりです。トランザクション、EntityManager、およびメモリ データベースを使用して、EJB3 をテストしたいと考えています。負荷テストには ContiPerf 2 を使用しています。Google で検索したところ、さまざまなアプローチが見つかりました。組み込みの 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();
}

しかし、このテストでは、ロールバックのために負荷テストを実行する際に問題がありました (ロールバックの代わりに commit を使用した場合、問題は同じです)。

この後、トランザクションに問題があるのではないかと考え、組み込みの EJBContainer を使い始めましたが、依存関係と実行に多くの問題がありました。

JUnit で負荷テストを行う方法について何か提案はありますか?

4

0 に答える 0