|
안녕하세요.
전 캐나다 캘거리에 Replicon 이라는 회사에서 Software Engineer로 일하고 있는 정우만입니다.
Performance/Load testing tool을 찾다가 우연이 nGrinder를 발견하고, 공식적으로 적용하려고 하고 있습니다.
그러던 적용하는데 몇가지 문제점이 있어서 이렇게 질문을 드리려합니다.
Groovy Maven Project로 스크립트를 작성해서 로컬로 테스트 끝내고 script를 Commit한 다음, Vuser를 증가시키면서 테스트를 해보았는데 생각보다 많은 에러가 발생해서 테스트 자체가 fail로 나오더라요.
그래서 Log file을 자세히 드려다보니깐 실행되는 테스트 순서가 thread마다 아니면 process마다 다 다르더군요.
전 Test1() Test2() Test3()를 순차적으로 로컬로 실행되는걸 보고 올려서 막상 실행보니 그렇지 않더군요.
테스트 각자가 전혀 연관이 없으면 괜찮은데, 저희 Service들은 여러가지 json payload을 request body에 넣어줘야해서 테스트가 실행되는 순서가 중요합니다.
JUnit 4.11에서는 Test 이름으로 정렬가능하던데 JUnit 4.8에서는 그런식으로 할 수 없더군요.
혹시 항상 정해진 순서대로 테스트를 실행시키려면 어떻게 해야하는지 알 수 있을까요?
그리고 agent를 vm에서 돌리고 있는데
테스트 끝날때쯤에 다음과 같은 에러로 인해서 에러율이 급격히 상승하더군요.
2014-10-03 19:16:20,597 ERROR Error: net.grinder.engine.process.ShutdownException: Thread has been shut down
2014-10-03 19:16:20,597 ERROR
java.lang.AssertionError:
at PutTimeEntryV2.PutWorkAndBreakTimeEntries(PutTimeEntryV2.groovy:178) ~[na:na]
at net.grinder.scriptengine.groovy.junit.GrinderRunner.run(GrinderRunner.java:170) ~[ngrinder-groovy-3.3.jar:na]
at net.grinder.scriptengine.groovy.GroovyScriptEngine$GroovyWorkerRunnable.run(GroovyScriptEngine.java:148) ~[ngrinder-groovy-3.3.jar:na]
at net.grinder.engine.process.GrinderThread.run(GrinderThread.java:118) ~[grinder-core-3.9.1.jar:na]
혹시 왜 이런 현상이 일어나는지 알고계시면 조언 좀 부탁드립니다.
감사합니다.
Note: 저는 C# Developer라서 Java에 관한 지식이 좀 부족합니다..ㅠㅠ
|