2011-11-28 3 views
0

성능 테스트를 준비하고 새로운 테스트 케이스를 작성하고 있습니다. 그래서 난 그냥 서버에서 실행 한 테스트 케이스를 테스트하고 난 단지 액세스 및 난 그냥 가지고 할 수 org.hibernate.StaleObjectStateException : 행이 업데이트 된 또는 다른 트랜잭션 I 테스트 할Grails 성능 테스트 오류 : org.hibernate.StaleObjectStateException : 행이 다른 트랜잭션에 의해 업데이트되거나 삭제되었습니다.

응용 프로그램에 의해 삭제는이다 백엔드. 보기가없고 세션도없고 REST와 비슷합니다. [모든 요청에는 작업을 수행하는 데 필요한 모든 것이 포함되어 있습니다.] 단일 사용자에 대해 단일 API를 계속해서 테스트하고있었습니다. 요청이 오면 서비스는 작동하고 응답은 다시 전송되며 응답을 분석하고 동일한 사용자에 대해 동일한 API에 다른 요청을 보냅니다.

앞서 언급 한 것처럼 개체는 세션에 저장되지 않습니다. 요청이 올 때마다 User.get (params의 id)를 수행하고 있습니다.

현재이 응용 프로그램은 Postgres 8.4.4에서 실행 중입니다. 서버는 매우 강력하며 현재는 전혀 부하가 없습니다.

[서버가 원격] 앱의 응답을 받고 분석 한 다음 트랜잭션을 저장하기 전에 다시 요청을 보낼 수있는 것처럼 보입니다. 이것은 아주 이상합니다.

내가 여기에없는 것이 있습니까? 그것에 대해 어떻게해야합니까?

답변

1

결국 우리는 테스트 도구 인 SoapUI로 인한 것임을 알아 냈습니다. 이 빌어 먹을 물건은 하나씩 2 개의 요청을 보낼 수 있습니다. 문서화 된 버그로, 포럼에 대한 많은 이야기가 있습니다. 우리는 soapui를 버리고 자신에게 작은 테스트 도구를 썼다. 이제 그것은 매력처럼 작동합니다.