-
Unit Test - 에서 jmock을 사용해 동시성 테스트 하기UNIT TEST 2019. 9. 1. 22:48반응형
무신사에서 현재 unit test는 spock와 unit test5를 사용해서 테스트를 진행하고 있다
두가지 중 어느것을 사용해도 무방하지만 나는 spock를 사용해서 테스트를 한다
각설하고 현재 무신사에서 php로 된 코드를 java로 마이그레이션을 하고 있는데
point관련 동시성 테스트를 진행해야 했다 물론 jmeter나 그 외 테스트 툴을 사용하려 했지만 그러한 테스트는
단발성 이기 때문에 진행하지 않고 코드로 남겨서 빌드 할 때 테스트를 진행할 수 있도록 하고 싶었다
그래서 동시성 관련 테스트 libarary을 알아보았는데 GroboUtils라는 테스트 library는 너무 오래 되기도 했고 우리 프로젝트에서
사용시 에러가 나는 문제가 있어서 사용하지 않고 다른것을 찾아보던 와중
https://beyondj2ee.wordpress.com/2012/12/11/junit으로-성능-테스트stress-test-모듈-만들기/
Junit으로 성능 테스트(Stress Test) 모듈 만들기
웹 어플리케이션을 성능 테스트 하기 위해서는 다양한 툴들이 존재 합니다. 현재 진행하고 있는 프로젝트에서는 “LoadRunner”를 사용하고 있습니다. 또한 아래의 사이트를 참고 하시면 “Opensource Stress Test Tool”를 확인 할수 있습니다. 물론 이러한 툴을 사용하면 편리하긴 하지만 좀 …
beyondj2ee.wordpress.com
jmock을 사용하기로 했다
사용법은 간단하다 아래와 같이 작성해주면 된다
//첫번째 파라미터는 action을 의미하고 2번째 파라미터는 쓰레드 개수를 의미함 Blitzer blitzer = new Blitzer(20, 4) @Unroll @Transactional @Rollback def "포인트 교환(동시성)을 테스트 한다" () { expect: blitzer.blitz({ //동시성 코드를 작성해주면 됨 }) where: exchangePoint || result test || test }
내부 구현 코드는 실제 코드이므로 삭제했다.
반응형