JMeter JDBC 요청에서 HTTP 요청에서 응답을 사용하는 방법
-
21-12-2019 - |
문제
여기 내 상황이 있습니다 :
이 작업을 수행하고 싶습니다 :
HTTP 요청을 사용하여 HTTP 상태 코드가 404인지 여부를 확인하기 위해 HTTP 요청을 사용하여 히트를 눌러 히트 목록이 있습니다.
이 작업을 수행했습니다 :
- jdbc config 요소가 추가되고 구성되었습니다.
- jdbc 요청 샘플러를 추가하고 구성했습니다. 기본적으로 8 열이있는 테이블을 반환하는 SELECT 문입니다. 나는 '변수 이름'필드에 8 개의 쉼표로 구분 된 변수를 제공하므로 JDBC 요청의 결과를 이러한 변수 이름으로 식별 할 수 있습니다.
- 은 '서버 이름 또는 IP'필드에 해당 변수 $ {URL} 중 하나를 사용하는 HTTP 요청 샘플러를 만들었습니다.
- '파일에 응답을 파일에 저장 "청취자에게 JDBC 요청에 추가하십시오. 이것은 CSV가 아닌 '.plain'유형의 파일을 만듭니다. CSV는 CSV 데이터 세트 구성을 생성하여 CSV 파일을 활용할 수있었습니다. 따라서이 시도가 실패했습니다.
- 위의 파일 이름을 항상 'C : \ jmeTertest \ data.csv'를 사용하려고 시도했습니다. 그러나 'C : \ \ jmetertest \ data.csv1.plain'이라는 새 파일을 만드는 것이 끝납니다. 이 시도도 실패했습니다.
-
HTTP 요청의 서버 이름 필드에서 URL 열을 $ {URL_1}으로 참조하려고했습니다. 그것은 일했습니다. 그러나 문제는 결과 트리에서 모든 요청이 결과 집합의 첫 번째 행에서만 URL에 대해 가기 때문입니다. 위의 $ {URL_1}에 지정된 행 번호 '_1'때문임을 봅니다. 누군가가 '_1'을 매개 변수를 루프 할 수있는 변수로 (아마 '카운터'요소를 사용하여) 할 수있는 방법을 제안 할 수있는 경우에 사용할 수 있습니다. 참조 이름 '루프 카운터'로 카운터 구성 요소를 만들었습니다. 및 HTTP 요청의 서버 이름 필드에 이것을 사용했습니다.
$ {URL _ ( "$ {loopcounter}")}}}}}
JDBC 요청이 완벽하게 작동하고 행의 무리가있는 테이블을 반환하지만 HTTP 요청 샘플러가 JDBC 요청 결과에서 변수를 선택하지 않는다는 것입니다. HTTP 요청은 '결과 트리보기'에서 다음과 같습니다.
GET http://${url}/
.
이 솔루션을 시도했습니다 :
그러나 이제는 HTTP 요청이 Lamer :
GET http://${url_("${loopCounter}")}/
.
이것은 작동하지 않았습니다.
솔루션 3은 행 번호의 매개 변수화를 해결할 수있는 경우에만 더 많은 일을 할 수 있습니다. 나는 JMeter 플러그인 제안에도 열려 있습니다. 우리가 계속하려는 다른 것을 업데이트 할 것입니다.
p.s. 내 질문이 어쨌든 분명하지 않은지 알려주십시오.
해결책
컨트롤러의 변수가 JDBC 샘플러에서 얻은 URL 변수 인 foreach 컨트롤러 (상위)에서 HTTP 샘플러를 래핑하려고 시도 했습니까?
또한 foreach의 출력 변수가 HTTP 샘플러에서 사용되는 변수가됩니다.
그런 식으로 인덱스의 시작 부분에서 끝까지 각 변수를 반복하고 샘플러를 매번 샘플러를 실행합니다.
다른 팁
파일 'Listener에 대한 응답을 저장 "Checkbox"를 선택하십시오. "접미사 및 접두사를 추가하지 마십시오"를 선택하십시오.이 두 가지 옵션을 확인하면 정확한 로그 파일 이름을 얻을 수 있습니다.