2014-11-06 5 views
1

실행 체인을 구현했으며 각 실행은 서버에 HTTP 요청을 보내고 응답 상태가 2XX인지 확인합니다. 이전 실행이 성공적 일 때 체인의 다음 실행이 트리거되어야하는 동기 모델을 구현해야합니다. 즉 응답 상태는 2xx입니다. 다음은 실행 체인의 스냅 샷입니다. 개틀링 비동기 IO 모델을 가지고 있기 때문에Gatling synchronous HTTP 요청/응답 체인

feed(postcodeFeeder). 
    exec(Seq(LocateStock.locateStockExecution, ReserveStock.reserveStockExecution, CancelOrder.cancelStockExecution, 
    ReserveStock.reserveStockExecution, ConfirmOrder.confirmStockExecution, CancelOrder.cancelStockExecution) 

, 무슨 현재 관찰하고하는 요청이 사용자들에 의해 비동기 방식으로 서버로 전송 된 HTTP하고 실행 사이의 실제 의존성은 하나에 대하여도 없다 사용자.

또한 체인의 실행이 검사로 인해 실패한 경우 배우/사용자를 알고 싶습니다. 체인에서 다음 실행을 진행하지 않습니까?

답변

1

단일 사용자

아니, 당신은 잘못에 대하여 실행 사이의 실제 의존성이 없다. "자원"을 사용하는 경우를 제외하고 요청은 주어진 사용자에 대해 순차적입니다. 오류가 발생하면 해당 사용자의 흐름을 중지하려면 exitblockonfail을 사용할 수 있습니다.

+0

실행의 각 단계에서 체크가있는 주어진 실행 체인에서 체인에서 다음 명령을 보내기 전에 gatling이 응답을 기다리지 않습니까? 그래서 코드 예제에서 confirmStockExecution은 reserveStockExection의 응답을 기다립니다. reserveStockExecution은 검사로 인해 실패 할 수 있으며 응답을 받기 전에 confirmStockExecution이 실행되기를 원하지 않습니까? 내가 달성하기 위해 원하는 것을 기본적으로 – BalajiM

+0

는 다음 요청을 보내기 전에 응답을 기다리는 방법에 대한 아이디어 @slandelle CancelStockExecution – BalajiM

+0

진행 (reserveStockExecution이 성공) 경우 같은 ConfirmStockExecution (confirmStockExecution이 성공) 경우 진행입니다 사슬에서? – BalajiM

1

개틀링은 체인에서 다음 발사 전에 이전 요청의 실패 응답을 고려하지 않습니다. 다음 블록을 실행하려면 블록 전체를 exitBlockOnFail {}로 덮어야합니다.