2014-04-29 5 views
0

요청을 보내려고하고 바이트 [] 본문 응답을받습니다. 이 byte [] 응답을 기반으로 (protobuf를 사용하여) 값을 추출하고이 값을 다른 resquest에서 재사용하려고합니다.Gatling2 : 응답 본문을 바이트 배열로 가져 오기

몇 시간 검색 후, 나는 바이트 배열로 HTTP 응답 본체를 추출 할 수있는 가능성을 찾을 수 없습니다 : 또는

val httpConfig = http 
    .baseURL("http://www.whatever.com") 

    val request = exec(http("FirstRequest") 
    .post("/message") 
    .body(new ByteArrayBody((session: Session) => getFirstRequest(session))) 
     .check(status.is(200), ???getByteResponse???)) 

    val response = exec(http("SecondRequest") 
    .post("/message") 
    .body(new ByteArrayBody((session: Session) => getSecondRequest(session))) 
    .check(status.is(200), ???getByteResponse???)) 

    val scn = scenario("Request").exec(request,response) 

    setUp(scn.inject(atOnce(1 user))) 
    .protocols(httpConfig) 

그것은 또한 내가 getFirstRequest에 값을 설정할 수 있다면 괜찮을 내가 할 수있는 것 getSecondRequest에서 재사용 :

private def getFirstRequest(session: Session): Array[Byte] = { 

    ... setting a session attribute ... (long) 

    ... some protobuf stuff returning a byte array ... 

    } 

    private def getSecondRequest(session: Session): Array[Byte] = { 
     var value= session("value").as[Long] 

    ... some protobuf stuff using value from session and then returning byte array... 
    } 

답변

1

을 나는 당신이 이런 식으로 뭔가를 시도 할 수 있다고 생각 :

.check(status.is(200), bodyBytes.saveAs("responseBody")) 
,

가상 사용자의 세션에서 응답 본문을 저장합니다.