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 で負荷テストを行う方法について何か提案はありますか?