2011-09-23 3 views
1

현재 JMeter와 협력하여 출시 전에 시스템 테스트에 스트레스를 가하고 있습니다. 이를 통해 사용자가 제시 한 웹 페이지의 링크를 클릭하여 시뮬레이션해야합니다. 나는 XPath 포스트 프로세서로이 링크를 추출하기로 결정했다.JMeter의 XPath 쿼리

//div[@data-attrib="foo"]//a//@href 

그러나 나는 각 스레드 (사용자)에 대해 특정 아이를 추출해야합니다 :이 같은 형태는 A XPath 식을

:

여기 내 문제입니다. 나는 이런 일을하고 싶지 :

//div[@data-attrib="foo"]//a[position()=n]//@href 

(n은 현재의 인덱스 인)

내 질문 : 나는 수 있어요 있도록

이 쿼리 작업을 할 수있는 방법이 있나요을 각 스레드에 대해 표현식의 새 색인을 추출 하시겠습니까?

또한 앞서 언급 한 것처럼 JMeter를 사용하고 있습니다. JMeter는 결과 노드 각각에 대해 XPath 쿼리의 변수를 만듭니다. 그러나 이름을 "VarName_n"으로 지정하고 기존 배열로 저장하지 않습니다. 누구든지 변수 변수 중 하나를 동력 학적으로 선택할 수있는 방법을 알고 있습니까? 이것은 또한 내 문제를 해결할 것입니다. 동적 등 "VarName_1", VarName_2 "및 명명 된 변수를 참조하기 위해, 그래서

중첩 된 변수는 분명히 지원되지 않습니다,이 할 수 있습니다 : 사전 :

편집에

감사합니다 사용 :

"n은"정수입니다
${__BeanShell(vars.get("VarName_${n}"))} 

N == 1, 이것은 "VarName_1"라는 변수의 값을 얻을 것이다 그래서 만약

경우] ".. n "정수가 변경되면 ForEach 컨트롤러는이 목적을 위해 특별히 설계되었습니다. 첫 번째 질문에 대한

답변

1

- 사용 : $ n을이 특정 정수로 대체해야

(//div[@data-attrib="foo"]//a)[position()=$n]/@href 

.

여기서도 //div[@data-attrib="foo"]은 하나의 div 요소를 선택한다고 가정합니다.

XPath 의사 연산자 //은 일반적으로 매우 느린 평가 (전체 하위 트리가 검색 됨)와 다른 혼란스러운 문제 (위의 식에서 대괄호가 필요한 이유 임)에 유의하십시오.

// 문서의 구조가 알려져 있고 완전한 구체적인 경로를 지정할 수있는 경우을 사용하지 않는 것이 좋습니다.

두 번째 질문은 분명하지 않습니다. 예제를 제공해주십시오.

+0

감사합니다. 나는 최근에 JMeter를 사용하기 시작했으며, XPath 경험은 실제로 존재하지 않습니다.하지만 XPath 관련 부분을 정리해 주셔서 감사합니다. JMeter 특정 질문에 관해서는, 나는 해결책을 그 사이에 발견했다 - 나는 대답으로 또한 그것을 게시 할 것이다. – user940429