2016-08-02 3 views
0

Gatling 세계에 익숙하지만 경험 많은 Loadrunner 사용자. 두 명의 시나리오를 실행하기 위해 샘플 시뮬레이션을 만들었습니다. 각각 10 명의 사용자가 있으며 10 분 동안 실행하려고합니다. 아래는 내 setUp 기능에있는 것입니다. 그러나 시뮬레이션을 실행할 때마다 136 초 동안 만 실행됩니다. holdFor는 효과가없는 것 같습니다.Gatling Throttle holdfor not working

setUp(
    scn.inject(rampUsers(10) over (10 seconds)), 
    scen.inject(rampUsers(10) over (10 seconds)) 
) 
.protocols(httpProtocol) 
.throttle(
    reachRps(2) in (10 seconds), 
    holdFor(10 minutes) 
) 

나는 Gatling 2.2.2 번들을 사용 중입니다.

출력 : Simulation computerdatabase.BasicSimulation completed in 136 seconds

+0

136 초는 그 10 + 10 사용자에 의해 트리거 모든 요청의 하나의 반복을 실행하는 데 걸리는 대략적인 시간입니다, 명확하게 명시 적으로 시간이 지남에 따라 램프를 제어, 당신은 또한이 같은 구성으로 놀러 수 . – CyberNinja

답변

4

스로틀 효과적으로 전송됩니다 얼마나 많은 요청을 상위 경계로 일하고, 병목 현상으로 작동합니다. 시나리오 + 인젝션 프로파일이 처음부터 원하는만큼 많은 요청을 생성 할 수 없다면, 생성 된 것들이 방해받지 않고 스로틀을 통과하기 만하면됩니다. 스로틀은 원하는 RPS와 일치하도록 부하를 증가시킬 수 없으며 단지 감소시킬 수 있습니다.

처음에는 원하는 2 RPS를 생성 할 수있는 충분한 사용자를 시나리오에 주입해야하며 시뮬레이션 진행 중에 더 많은 것을 계속 추가하여 스로틀이 당신이 찾고있는 것을해라.

scn.inject(constantUsersPerSec(1) during(10 minutes))), 
scen.inject(constantUsersPerSec(1) during (10 minutes))) 
: 당신이 찾고있는 것을

, 나는이 가까이에 단계 - 프로필 부하 당신에게 줄 수있는 생각이 같은 예를 들어 뭔가에 주입 프로파일을 변경하십시오 (필요에 따라 constantUsersPerSec 값을 조정)

예시 상기 시간 이상의 사용자를 주입해야하는 점을 설명하기 위해 단지 매우 신속하고 더러운 방법 이었지만 시나리오로 10 분에 걸쳐 총 600 사용자 주입을했을 확률로 10 사용자는 10 초마다 정확히 내가 원하는대로해야합니다. 처음에는 기본적인 산술 오류 및/또는 오해가 있습니다. 더 또 다른 접근 방식의 경우

scn.inject(
    rampUsers(10) over (1 minute), 
    constantUsersPerSecond(1) during (10 minutes) 
) 

:이 같은 예를 들어, 필요한 경우 더 명시 적으로 주입 단계를 체인에 의해 램프를 제어 할 수 있지만

또한 자연적으로, 진입로와 어느 정도 다운됩니다

scn.inject(
    splitUsers(600) into(rampUsers(10) over(10 seconds)) separatedBy(10 seconds) 
) 
+0

감사합니다. 나는 스로틀 링의 사용법을 오해했습니다. 귀하의 코드는 총 600 명의 사용자를 대상으로합니다 (2 시나리오의 경우 10 분 동안 초당 1 명의 사용자가 발생합니다). 이것은 내가 원하는 것이 아닙니다. 내 목표는 20 명의 사용자를 10 초에 걸쳐 테스트에로드 한 다음 10 분 동안 실행 한 다음 계속 실행하는 것입니다. – CyberNinja

+0

초기에 댓글을 답장으로 작성했지만 너무 길게 설정했습니다. 위의 답변을 대신 업데이트했습니다. –

+0

이 답변은이 질문을 대답으로 표시하는 개념을 이해하는 데 도움이되었습니다. – CyberNinja