2012-05-09 2 views
0

나는 다음과 같은 구조의 테스트 부분이있다 : 모든 작동 할 때이 잘 작동하지만, 내가받은 응답이 올바른지 확인하는 주장을 추가했습니다샘플러 오류시 JMeter 상관기 + 인터리브 컨트롤러 재설정?

Test Part 
-Correlator 
--Debug Sampler 
--Interleave Controller 
---Page 1 
---Page 2 
----Response Assertion 
---Page 3 (etc) 
--Regular Expression Extractor 
--Post Debug Sampler 

. 스레드 그룹은 샘플러 실패시 다음 루프를 시작하도록 설정됩니다. 2 페이지 아래의 응답 어설 션이 실패하면 다음 루프가 시작되지만 인터리브 컨트롤러에 도달하면 바로 3 페이지로 건너 뛰고 문제가 발생합니다.

샘플러 오류시 인터리브 컨트롤러 상태를 재설정하는 방법이 있습니까?

감사

Willisterman

답변

0

이 예상되는 동작; 인터리브 컨트롤러는 이와 같이 작동하도록 설계되었습니다. 어설 션에서 얻은 결과가 중요하지 않아도 다음 루프의 목록에서 다음 샘플러로 이동합니다. 이 같은

Loop1을 페이지 실행할 1
LOOP2 페이지 2
루프 3은 페이지 3
Loop4 페이지 1
Loop5 페이지 2
Loop6가 실행 페이지를 실행할 실행할 3
Loop7를 실행 실행할 Page 1
... 등을 실행합니다.

인터리브 컨트롤러의 위치를 ​​재설정 할 수있는 확실한 방법은 없습니다. 대신 JMeter (If, While, For Each 등)에는 많은 수의 로직 컨트롤러가 있으며 카운 터와 beanshell 논리도 있으므로 대부분의 작업이 가능합니다.

+0

인터리브 컨트롤러를 사용하는 유일한 이유는 모든 페이지 요청 후에 정규식 추출기를 실행하는 것입니다. 이것은 내가 테스트하고있는 .net 시스템이기 때문에 viewstate를 얻을 수 있습니다. 조금 이상한 행동 인 것처럼 보이지만 각 페이지 아래에 정규식 추출기를 배치하여 대체 할 수 있습니다 ... 멋지게 보이지 않거나 유지 관리가 쉽지 않을 것입니다 ... – Willisterman

+0

소리가 필요하지 않은 것처럼 보입니다. 인터리브 컨트롤러를 사용하십시오. 나는 간단하게 정규 표현식을 각 요청의 자식으로 두겠다. 이것은 더 간단하고 예측 가능하다. 난 일반적으로 viewstates 이런 식으로 작동하거나 오히려, 나는 나중에 다시 게시해야 viewstate 줄 요청에 대해서만 자식으로 정규식을 넣습니다. –

+0

나는 더 간단한 레이아웃으로 되돌아갔습니다. 그것이 내가 예쁜 레이아웃을 갖기 위해 얻은 것입니다. 디버그 샘플러가 각 요청을 자동으로 감싸도록하는 것은 매우 유용했습니다. – Willisterman