"ONLY ONCE"컨트롤러는 생각대로 작동하지 않습니다.
PER THREAD는 "한 번만"실행됩니다. 따라서 100 개의 스레드가 있으면 100 번 실행됩니다.
당신이 시험에 한 번 실행하려면
는 다음을 수행 : 당신이 threadgroups A와 B 사이의 변수를 공유해야하는 경우
Test Plan (Set thread groups to "run consecutively"
- Cookie Manager
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- Thread Group B
- - - Rest of test
이 있습니다, 당신은 속성으로 그들을 설정해야합니다. 스레드 그룹간에 변수를 공유 할 수는 없지만 속성은이를 수행 할 수 있습니다. 이를 위해 속성 함수를 사용해야합니다.
함수 __setProperty는 값을 전역 변수로 자동 저장합니다. __setProperty를 시작하는 가장 깨끗한 방법은 THREAD A에 쿠키를 만드는 샘플러에 POST 프로세서 Beanshell 스크립트를 만드는 것입니다. THREAD B의 값을 검색하려면 __property 함수를 매개 변수의 VALUE로 추가합니다 쿠키 값이 필요합니다.
으로 Beanshell 스크립트는 다음과 같이 보일 것입니다 :
props.put("COOKIENAME","COOKIEVALUE"); //creates a property "COOKIENAME" with value "COOKIEVALUE"
print(props.get("COOKIENAME")); //prints the value out to the console
위의 코드는 항상 COOKIENAME에 대해 동일한 값, 아이디어를 적은 다음 것이다. 따라서 우리는 "쿠키"가 동적인지 확인해야합니다. POST-PROCESSOR 정규 표현식을 넣어 쿠키 값을 추출한 다음 beanshell 스크립트에 전달하는 것이 좋습니다.
그래서, 우리의 테스트 계획은 이제 다음과 같습니다
Test Plan (Set thread groups to "run consecutively"
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- - - - - Regex to grab cookie, store as "regexCookie"
- - - - - Beanshell to set property
- Thread Group B
- - - Rest of test
그리고 우리으로 Beanshell 스크립트는 이제 다음과 같습니다
props.put("COOKIENAME",vars.get("regexCookie")); //creates a property "COOKIENAME" with value from "regexCookie"
print(props.get("COOKIENAME")); //prints the value out to the console
링크
http://jmeter.apache.org/usermanual/functions.html#__property
http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PostProcessor
나는 다음 각 요청 만 것 첫 번째 요청을 완료 한 후 의미 하나 하나를 실행 루프 컨트롤러 내부의 "정상적인 HTTP 요청을"넣어 경우, 한 번에 모든 요청을 전송합니다 두 번째 것을 시작하십시오. 그래서 얼마나 많은 요청이 연결을 망칠지 찾을 수 없습니다. 그리고 내가 한 번만 의심의 여지가 한 번만 컨트롤러, 그리고 난 여전히 한 번만 컨트롤러의 기능을 이해할 수 없습니다. 내 테스트 케이스에서 그것은 스레드 그룹에서 언급 한 모든 스레드에 대해 실행되고 있습니다. 그것은 한 번만 테스트 케이스에 대해 실행해야합니다 권리?. 이 문의에 대한 도움을주십시오 – prashant