성능테스트 시 RunCount는 잘되고 Duration에서는 오류

classic Classic list List threaded Threaded
2 messages Options
sj
Reply | Threaded
Open this post in threaded view
|

성능테스트 시 RunCount는 잘되고 Duration에서는 오류

sj
ngrinder-3.4.2 버전 & python script 사용중 입니다.

테스트에는 모두 동일한 script 를 사용했습니다.

Run Count 로 설정하면 잘 되는데,
Duration에서는 항상 "마지막 Request call에 received a stop message 로그" 보인 후 exception이 발생합니다.

=================================================로그....
...
...
http post request 정상 호출 중..
...
...
2019-03-04 17:37:28,329 INFO  Params : {"a":"1", "b":"2"}
2019-03-04 17:37:28,376 INFO  myhttpsurl.............-> 200 OK, 143 bytes
2019-03-04 17:37:28,376 INFO  SubscriptionId : 64282175
2019-03-04 17:37:28,376 INFO  Params : {"a":"1", "b":"2"}
2019-03-04 17:37:28,423 INFO  myhttpsurl.............-> 200 OK, 143 bytes
2019-03-04 17:37:28,423 INFO  SubscriptionId : 64282175
2019-03-04 17:37:28,423 INFO  Params : {"a":"1", "b":"2"}
2019-03-04 17:37:28,486 INFO  myhttpsurl.............-> 200 OK, 143 bytes
2019-03-04 17:37:28,486 INFO  SubscriptionId : 64282175
2019-03-04 17:37:28,486 INFO  Params : {"a":"1", "b":"2"}
2019-03-04 17:37:28,548 INFO  received a stop message
2019-03-04 17:37:28,579 INFO  myhttpsurl.............-> 200 OK, 143 bytes
2019-03-04 17:37:28,579 ERROR Aborting thread: net.grinder.engine.process.ShutdownException: Thread has been shut down
net.grinder.engine.process.ShutdownException: Thread has been shut down
        at net.grinder.engine.process.ThreadContextImplementation.pushDispatchContext(ThreadContextImplementation.java:229) ~[ngrinder-runtime-3.4.2.jar:na]
        at net.grinder.engine.process.TestData$RecorderHolder.start(TestData.java:196) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.TestData.start(TestData.java:126) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.dcr.RecorderLocator.enter(RecorderLocator.java:120) ~[grinder-core-3.9.1.jar:na]
        at org.python.core.PyFunction.__call__(PyFunction.java) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:220) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:211) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:206) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyObject.invoke(PyObject.java:3555) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyInstance.instance___call__(PyInstance.java:351) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyInstance.__call__(PyInstance.java:342) ~[jython-standalone-2.5.3.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:371) ~[jython-standalone-2.5.3.jar:na]
        at net.grinder.scriptengine.jython.JythonScriptEngine$JythonWorkerRunnable.run(JythonScriptEngine.java:250) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.GrinderThread.run(GrinderThread.java:118) ~[grinder-core-3.9.1.jar:na]
        at java.lang.Thread.run(Unknown Source) [na:1.8.0_201]

=================================================로그....


Duration을 1초로 설정해도 실패하긴 마찬가지 입니다.
몇번을 테스트해도 동일한 패턴인데요.
마지막 API Call 에 received a stop message 보이며 exception이 발생하고요.

또한 관리자페이지의 Report에 보면 "[WARNING] The test is finished but has no TPS" 라고 뜨면서 레포트가 나오지 않습니다.


(애초에 20콜 정도에 맞춰 아주 기본테스트만 진행 중이라, 타겟서버의 문제는 절대 아닙니다.)

참고로 오류가 발생했더라도, 해당 request들은 실제 서버에 모두 정상 호출되고 있습니다.
sj
Reply | Threaded
Open this post in threaded view
|

Re: 성능테스트 시 RunCount는 잘되고 Duration에서는 오류

sj
우선 Vuser나 Duration을 더 높게 잡고 테스트하니 성공했습니다.
다른 문의글에 주신 댓글을 보니 너무 작게 잡았을 때도 문제가 되는 것 같네요.
허용 기준은 모르겠지만 우선 조절해가며 테스트해야 할 것 같습니다..;