20. 함수와 변수 ¶
JMeter 함수는 샘플러의 필드나 테스트 트리의 다른 요소를 채울 수 있는 특수 값입니다. 함수 호출은 다음과 같습니다.
${__functionName(var1,var2,var3)}
여기서 "__functionName"은 함수의 이름과 일치합니다.
${__time(YMD)}
와 같이 함수에 전송된 매개변수를 괄호로 묶습니다
. 실제 매개변수는 함수마다 다릅니다. 매개변수가 필요하지 않은 함수는 괄호를 생략할 수 있습니다(예 : ${__threadNum} ) .
함수 매개변수에 쉼표가 있으면 " \ "로 이스케이프 처리해야 합니다. 그렇지 않으면 JMeter가 이를 매개변수 구분 기호로 처리합니다. 예를 들어:
${__time(EEE\, d MMM yyyy)}쉼표가 이스케이프 처리되지 않은 경우 - 예: ${__javaScript(Math.max(2,5))} - 다음과 같은 오류가 발생합니다.
오류 - jmeter.functions.JavaScript: Javascript 처리 오류: [Math.max(2] org.mozilla.javascript.EvaluatorException: 누락된 인수 목록(<cmd>#1)이는 문자열 " Math.max(2,5) "가 __javascript 함수에 대한 두 개의 매개변수로 처리되기 때문입니다.
Math.max(2 및 5)
기타 오류 메시지가 발생할 수 있습니다.
변수는 다음과 같이 참조됩니다.
${변수}
정의되지 않은 함수나 변수가 참조되면 JMeter는 오류를 보고/기록하지 않습니다. 참조는 변경되지 않고 반환됩니다. 예를 들어 UNDEF 가 변수로 정의되지 않은 경우 ${UNDEF}의 값은 $ { UNDEF} 입니다. 변수, 함수(및 속성)는 모두 대소문자를 구분합니다. JMeter는 사용하기 전에 변수 이름에서 공백을 잘라냅니다. 예를 들어 ${__Random(1,63, LOTTERY )} 는 ' LOTTERY ' 대신 ' LOTTERY ' 변수를 사용합니다 .
느슨하게 유형으로 그룹화된 함수 목록입니다.
기능 유형 | 이름 | 논평 | 부터 |
---|---|---|---|
정보 | 스레드 번호 | 스레드 번호 가져오기 | 1.X |
정보 | 스레드 그룹 이름 | 스레드 그룹 이름 가져오기 | 4.1 |
정보 | 샘플러 이름 | 샘플러 이름(레이블) 가져오기 | 2.5 |
정보 | 기계IP | 로컬 컴퓨터 IP 주소 얻기 | 2.6 |
정보 | 기계 이름 | 로컬 머신 이름 얻기 | 1.X |
정보 | 시각 | 다양한 형식으로 현재 시간 반환 | 2.2 |
정보 | 시간 이동 | 지정된 초/분/시/일을 추가하여 다양한 형식의 날짜를 반환합니다. | 3.3 |
정보 | 통나무 | 메시지를 기록(또는 표시)하고 값을 반환합니다. | 2.2 |
정보 | 로그인 | 메시지 기록(또는 표시)(빈 반환 값) | 2.2 |
입력 | 문자열에서 파일 | 파일에서 한 줄 읽기 | 1.9 |
입력 | 파일로 문자열 | 전체 파일 읽기 | 2.4 |
입력 | CSV읽기 | CSV로 구분된 파일에서 읽기 | 1.9 |
입력 | XPath | XPath 표현식을 사용하여 파일에서 읽기 | 2.0.3 |
입력 | StringToFile | 파일에 문자열 쓰기 | 5.2 |
계산 | 카운터 | 증가하는 숫자를 생성 | 1.X |
서식 | 날짜시간변환 | 날짜 또는 시간을 소스에서 대상 형식으로 변환 | 4.0 |
계산 | 요람 | 다이제스트 생성(SHA-1, SHA-256, MD5...) | 4.0 |
계산 | 정수 | 정수 추가 | 1.8.1 |
계산 | 롱섬 | 긴 숫자 추가 | 2.3.2 |
계산 | 무작위의 | 난수를 생성 | 1.9 |
계산 | 임의 날짜 | 특정 날짜 범위 내에서 임의의 날짜 생성 | 3.3 |
계산 | RandomFromMultipleVars | | 로 구분된 변수 집합의 값에서 요소를 추출합니다. | 3.1 |
계산 | 랜덤 문자열 | 임의의 문자열 생성 | 2.6 |
계산 | UUID | 임의의 유형 4 UUID 생성 | 2.9 |
스크립팅 | 그루비 | Apache Groovy 스크립트 실행 | 3.1 |
스크립팅 | 빈쉘 | BeanShell 스크립트 실행 | 1.X |
스크립팅 | 자바스크립트 | JavaScript(Nashorn) 처리 | 1.9 |
스크립팅 | jexl2 | Commons Jexl2 표현식 평가 | jexl2(2.1.1) |
스크립팅 | jexl3 | Commons Jexl3 표현식 평가 | jexl3 (3.0) |
속성 | isPropDefined | 속성이 있는지 테스트 | 4.0 |
속성 | 재산 | 속성을 읽다 | 2.0 |
속성 | 피 | 속성 읽기(약식 방법) | 2.0 |
속성 | setProperty | JMeter 속성 설정 | 2.1 |
변수 | 나뉘다 | 문자열을 변수로 분할 | 2.0.2 |
변수 | 평가 | 변수 표현식 평가 | 2.3.1 |
변수 | 평가변수 | 변수에 저장된 표현식 평가 | 2.3.1 |
속성 | isVarDefined | 변수가 있는지 테스트 | 4.0 |
변수 | V | 변수 이름 평가 | 2.3RC3 |
끈 | 숯 | 숫자 목록에서 유니코드 문자 값 생성 | 2.3.3 |
끈 | 변경 케이스 | 다른 모드에 따라 대소문자 변경 | 4.0 |
끈 | 탈출 HTML | HTML 인코딩을 사용하여 문자열 인코딩 | 2.3.3 |
끈 | 탈출OroRegexpChars | ORO 정규식에서 사용하는 인용 메타 문자 | 2.9 |
끈 | 탈출Xml | XML 인코딩을 사용하여 문자열 인코딩 | 3.2 |
끈 | 정규식 함수 | 정규식을 사용하여 이전 응답 구문 분석 | 1.X |
끈 | 탈출 | Java 이스케이프를 포함하는 문자열 처리(예: \n & \t) | 2.3.3 |
끈 | 이스케이프 HTML | HTML 인코딩 문자열 디코딩 | 2.3.3 |
끈 | URL디코드 | application/x-www-form-urlencoded 문자열 디코딩 | 2.10 |
끈 | urlencode | 문자열을 application/x-www-form-urlencoded 문자열로 인코딩 | 2.10 |
끈 | 테스트 계획 이름 | 현재 테스트 계획의 이름 반환 | 2.6 |
20.1 함수가 할 수 있는 일 ¶
함수에는 사용자 정의 정적 값(또는 변수)과 내장 함수의 두 가지 종류가 있습니다.
사용자 정의 정적 값을 사용하면 테스트 트리가 컴파일되고 실행을 위해 제출될 때 정적 값으로 대체될 변수를 정의할 수 있습니다. 이 교체는 테스트 실행이 시작될 때 한 번 발생합니다. 이것은 모든 HTTP 요청의 DOMAIN 필드를 대체하는 데 사용할 수 있습니다. 예를 들어 동일한 테스트로 다른 서버를 대상으로 테스트를 변경하는 것이 간단합니다.
변수는 현재 중첩될 수 없습니다. 즉 , ${Var${N}} 이(가) 작동하지 않습니다. ${__V( Var ${N})} __V (변수) 함수를 사용하여 이를 수행할 수 있습니다 . ${__BeanShell(vars.get("Var${N}")} 을 사용할 수도 있습니다 .
이러한 유형의 교체는 기능 없이 가능하지만 덜 편리하고 직관적이지 않았습니다. 샘플러의 빈 값을 채울 기본 구성 요소를 사용자가 생성해야 했습니다. 변수를 사용하면 빈 값을 채우는 것이 아니라 주어진 값의 일부만 바꿀 수 있습니다.
내장 함수를 사용하면 사용자는 이전 응답 데이터, 함수가 속한 스레드, 시간 및 기타 여러 소스를 기반으로 런타임에 새 값을 계산할 수 있습니다. 이 값은 테스트 과정 동안 모든 요청에 대해 새로 생성됩니다.
20.2 함수와 변수는 어디에 사용할 수 있습니까? ¶
함수와 변수는 테스트 구성 요소의 모든 필드에 작성할 수 있습니다(TestPlan 제외 - 아래 참조). 일부 필드는 숫자를 예상하기 때문에 임의의 문자열을 허용하지 않으므로 함수를 허용하지 않습니다. 그러나 대부분의 필드는 기능을 허용합니다.
테스트 계획에서 사용되는 기능에는 몇 가지 제한 사항이 있습니다. 함수가 처리될 때 JMeter 스레드 변수가 완전히 설정되지 않았으므로 매개변수로 전달된 변수 이름이 설정되지 않고 변수 참조가 작동하지 않으므로 split() 및 regex() 및 변수 평가 함수가 ' 일. threadNum() 함수 는 작동하지 않습니다(테스트 계획 수준에서 의미가 없음). 다음 기능은 테스트 계획에서 정상적으로 작동해야 합니다.
- 정수
- 롱섬
- 기계 이름
- 빈쉘
- 그루비
- 자바스크립트
- jexl2/jexl3
- 무작위의
- 시각
- 속성 함수
- 로그 함수
구성 요소는 별도의 스레드에서 처리됩니다. 따라서 __threadNum 과 같은 함수 는 사용자 정의 변수와 같은 요소에서 제대로 작동하지 않습니다. 또한 UDV 요소에 정의된 변수는 요소가 처리될 때까지 사용할 수 없습니다.
name='${VAR}'인 테이블에서 항목 선택~ 아니다
name=${VAR}인 테이블에서 항목 선택( VAR 자체에 따옴표가 포함되지 않은 경우)
20.3 변수와 함수를 참조하는 방법 ¶
테스트 요소에서 변수 참조는 변수 이름을 ' ${ ' 및 ' } '로 묶음으로써 수행됩니다.
함수는 같은 방식으로 참조되지만 관례에 따라 함수 이름은 사용자 값 이름 * 과의 충돌을 피하기 위해 " __ "로 시작합니다 . 일부 함수는 구성하기 위해 인수를 사용하며 이는 쉼표로 구분된 괄호 안에 있습니다. 함수에 인수가 없으면 괄호를 생략할 수 있습니다.
쉼표를 포함하는 인수 값은 필요에 따라 이스케이프해야 합니다. 매개변수 값에 쉼표를 포함해야 하는 경우 ' \, '와 같이 이스케이프하십시오. 이것은 예를 들어 자바스크립트, Beanshell, Jexl, groovy와 같은 스크립팅 기능에 적용되며, 여기서 스크립트 메소드 호출에 필요할 수 있는 쉼표를 이스케이프 처리해야 합니다.
${__BeanShell(vars.put("이름"\,"값"))}
또는 테스트 계획과 같이 스크립트를 변수로 정의할 수 있습니다.
스크립트 vars.put("이름","값")그러면 다음과 같이 스크립트를 참조할 수 있습니다.
${__BeanShell(${SCRIPT})}변수가 해당 값으로 대체되기 전에 함수 호출이 구문 분석되기 때문에 SCRIPT 변수 에서 쉼표를 이스케이프할 필요가 없습니다 . 이것은 Javascript, Jexl 및 BeanShell 스크립트를 테스트하는 데 사용할 수 있으므로 JSR223 또는 BeanShell 샘플러와 함께 잘 작동합니다.
함수는 변수 및 기타 함수를 참조할 수 있습니다. 예를 들어 ${__XPath(${__P(xpath.file),${XPATH})} 는 " xpath.file " 속성 을 파일 이름으로 사용하고 변수 XPATH 의 내용을 다음과 같이 사용합니다. 검색할 표현입니다.
JMeter는 다양한 내장 함수에 대한 함수 호출을 구성하는 데 도움이 되는 도구를 제공합니다. 그런 다음 복사하여 붙여넣을 수 있습니다. 함수가 다른 함수에 대한 매개변수가 될 수 있고 리터럴로 의도한 값만 이스케이프해야 하므로 값을 자동으로 이스케이프하지 않습니다.
변수 또는 함수의 값은 __logn() 함수 를 사용하여 보고할 수 있습니다 . __logn () 함수 참조는 변수가 정의된 후 테스트 계획의 어느 곳에서나 사용할 수 있습니다. 또는 Java 요청 샘플러를 사용하여 변수 참조가 포함된 샘플을 생성할 수 있습니다. 출력은 적절한 리스너에 표시됩니다. 트리 뷰 리스너에서 변수 등의 값을 표시하는 데 사용할 수 있는 디버그 샘플러 가 있습니다.
20.4 함수 도우미 대화 상자 ¶
함수 도우미 대화 상자는 JMeter의 도구 메뉴에서 사용할 수 있습니다.
함수 도우미를 사용하여 풀다운에서 함수를 선택하고 해당 인수에 값을 할당할 수 있습니다. 표의 왼쪽 열은 인수에 대한 간략한 설명을 제공하고 오른쪽 열은 해당 인수의 값을 쓰는 곳입니다. 다른 함수는 다른 인수를 취합니다.
이 작업을 완료하고 "생성" 버튼을 클릭하면 원하는 위치에 복사하여 테스트 계획에 붙여넣을 수 있는 적절한 문자열이 생성됩니다.
20.5 함수 ¶
__정규식 함수 ¶
Regex 함수는 사용자가 제공한 정규식을 사용하여 이전 응답(또는 변수 값)을 구문 분석하는 데 사용됩니다. 이 함수는 변수 값이 채워진 템플릿 문자열을 반환합니다.
__regexFunction 은 나중에 사용할 수 있도록 값을 저장할 수도 있습니다. 여섯 번째 매개변수에는 참조 이름을 지정할 수 있습니다. 이 함수가 실행된 후 사용자 정의 값에 대한 구문을 사용하여 나중에 동일한 값을 검색할 수 있습니다. 예를 들어 " refName "을 여섯 번째 매개변수로 입력하면 다음을 사용할 수 있습니다.
- ${refName} 은(는) 이 함수에 의해 구문 분석된 두 번째 매개변수("대체 문자열에 대한 템플릿")의 계산된 결과를 참조합니다.
- ${refName_g0} - 이 함수로 구문 분석된 전체 일치를 참조합니다.
- ${refName_g1} 이 함수에 의해 구문 분석된 첫 번째 그룹을 참조합니다.
- ${refName_g#} 는 이 함수에 의해 구문 분석된 n 번째 그룹을 참조합니다.
- ${refName_matchNr} 은 이 함수에서 찾은 그룹 수를 나타냅니다.
매개변수 ¶
- 정수 - 해당 일치를 사용하도록 JMeter에 지시합니다. 처음 발견된 일치 항목의 경우 ' 1 ', 두 번째 일치 항목의 경우 ' 2 ' 등
- RAND - 무작위로 일치하는 항목을 선택하도록 JMeter에 지시합니다.
- ALL - JMeter에게 모든 일치 항목을 사용하고 각각에 대한 템플릿 문자열을 만든 다음 모두 함께 추가하도록 지시합니다. 이 옵션은 거의 사용되지 않습니다.
- 0과 1 사이의 부동 소수점 수 - 가장 가까운 정수로 반올림된 (number_of_matches_found * float_number) 공식을 사용하여 X 번째 일치 항목을 찾도록 JMeter에 지시합니다.
저장된 값은 ${refName} (대체 템플릿 문자열) 및 ${refName_g#} 입니다. 여기서 " # "은 정규식의 그룹 번호입니다(" 0 "은 전체 일치를 참조하는 데 사용할 수 있음).
__카운터 ¶
카운터는 호출될 때마다 1부터 시작하여 매번 +1씩 증가하는 새 번호를 생성합니다. 카운터는 시뮬레이션된 각 사용자의 값을 별도로 유지하거나 모든 사용자에 대해 동일한 카운터를 사용하도록 구성할 수 있습니다. 각 사용자의 값이 별도로 증가하면 테스트 계획을 통해 반복 횟수를 계산하는 것과 같습니다. 전역 카운터는 해당 요청이 실행된 횟수를 계산하는 것과 같습니다.
카운터는 정수 변수를 사용하여 카운트를 유지하므로 최대값은 2,147,483,647입니다.
카운터 함수 인스턴스는 완전히 독립적입니다. 전역 카운터 - " FALSE " -는 각 카운터 인스턴스에 의해 별도로 유지 관리됩니다.
동일한 반복에서 여러 __counter 함수 호출은 값을 더 이상 증가시키지 않습니다.
각 샘플에 대해 증가하는 카운트를 원하면 사용자 매개변수 와 같은 전처리기의 기능을 사용하십시오 .
매개변수 ¶
저장된 값은 ${refName} 형식 입니다. 이렇게 하면 하나의 카운터를 유지하고 여러 위치에서 해당 값을 참조할 수 있습니다.
__threadNum ¶
스레드 번호 함수는 단순히 현재 실행 중인 스레드의 번호를 반환합니다. 이 숫자는 해당 ThreadGroup과 관련하여 로컬에서만 고유합니다. 즉, 이 기능의 관점에서 한 스레드 그룹의 스레드 #1은 다른 스레드 그룹의 스레드 #1과 구별할 수 없습니다.
ctx.getThreadNum()
이 함수에 대한 인수가 없습니다.
사용 예:
${__threadNum}1과 포함하는 스레드 그룹에 구성된 실행 중인 스레드의 최대 수 사이의 숫자를 반환합니다.
__스레드 그룹 이름 ¶
스레드 그룹 이름 함수는 단순히 실행 중인 스레드 그룹의 이름을 반환합니다.
이 함수에 대한 인수가 없습니다.
사용 예:
${__threadGroupName}
__intSum ¶
intSum 함수는 둘 이상의 정수 값의 합을 계산하는 데 사용할 수 있습니다.
매개변수 ¶
예:
${__intSum(2,5,MYVAR)}7(2+5)을 반환하고 결과를 MYVAR 변수에 저장합니다. 따라서 ${MYVAR} 는 7과 같습니다.
${__intSum(2,5,7)}14(2+5+7)를 반환하고 결과를 MYVAR 변수에 저장합니다.
${__intSum(1,2,5,${MYVAR})}MYVAR 값이 8과 같으면 16을 반환합니다. 1+2+5+${MYVAR})
__longSum ¶
longSum 함수는 둘 이상의 긴 값의 합을 계산하는 데 사용할 수 있습니다. 값이 -2147483648 ~ 2147483647 사이에 있지 않을 것임을 알 때마다 __intSum 대신 이 함수를 사용하십시오.
매개변수 ¶
예:
${__longSum(2,5,MYVAR)}7(2+5)을 반환하고 결과를 MYVAR 변수에 저장합니다. 따라서 ${MYVAR} 는 7과 같습니다.
${__longSum(2,5,7)}14(2+5+7)를 반환하고 결과를 MYVAR 변수에 저장합니다.
${__longSum(1,2,5,${MYVAR})}MYVAR 값이 8과 같으면 16을 반환합니다. 1+2+5+${MYVAR})
__StringFromFile ¶
StringFromFile 함수는 텍스트 파일에서 문자열을 읽는 데 사용할 수 있습니다. 이것은 많은 변수 데이터가 필요한 테스트를 실행하는 데 유용합니다. 예를 들어 뱅킹 애플리케이션을 테스트할 때 100개 또는 1000개의 다른 계좌 번호가 필요할 수 있습니다.
사용하기 더 쉬울 수 있는 CSV 데이터 세트 구성 테스트 요소 도 참조하세요 . 그러나 현재 여러 입력 파일을 지원하지 않습니다.
호출될 때마다 파일에서 다음 줄을 읽습니다. 모든 스레드는 동일한 인스턴스를 공유하므로 다른 스레드는 다른 행을 갖게 됩니다. 파일의 끝에 도달하면 최대 루프 수에 도달하지 않는 한 처음부터 다시 읽기 시작합니다. 테스트 스크립트에 함수에 대한 여러 참조가 있는 경우 파일 이름이 같더라도 각각은 파일을 독립적으로 엽니다. [값을 다른 곳에서 다시 사용하려면 각 함수 호출에 대해 다른 변수 이름을 사용하십시오.]
파일을 열거나 읽는 중에 오류가 발생하면 함수는 " **ERR** " 문자열을 반환합니다.
매개변수 ¶
파일 이름 매개변수는 파일이 열리거나 다시 열릴 때 확인됩니다.
참조 이름 매개변수(제공된 경우)는 함수가 실행될 때마다 확인됩니다.
시퀀스 번호 사용:
선택적 시퀀스 번호를 사용할 때 경로 이름은 java.text.DecimalFormat 의 형식 문자열로 사용됩니다 . 현재 시퀀스 번호가 유일한 매개변수로 전달됩니다. 선택적 시작 번호를 지정하지 않으면 경로 이름이 있는 그대로 사용됩니다. 유용한 서식 순서는 다음과 같습니다.
- #
- 선행 0이나 공백 없이 숫자를 삽입하십시오.
- 000
- 필요한 경우 선행 0과 함께 세 자리로 압축된 숫자를 삽입합니다.
- 핀#'.'데이트
- 선행 0 없이 숫자를 생성하고 점을 문자 그대로
pin1.dat , …, pin9.dat , pin10.dat , …, pin9999.dat 처럼 취급합니다. - pin000'.'데이트
- 점을 유지하면서 선행 0을 생성합니다. 숫자가 이 형식이 제안하는 세 자리보다 더 많은 숫자를 갖기 시작하면 시퀀스는 pin001.dat
, … pin099.dat , …, pin999.dat , … - 핀'.'데이트#
- 점을 유지하면서 선행 0 없이 숫자를 추가하고
pin.dat1 , …, pin.dat9 , …, pin.dat999 를 생성합니다.
서식 문자보다 더 많은 숫자가 필요한 경우 필요에 따라 숫자가 확장됩니다.
서식 지정 문자가 해석되지 않도록 하려면 작은따옴표로 묶습니다. " . "는 형식 지정 문자이며 작은따옴표로 묶어야 합니다
( #. 및 000. 소수점도 " . "인 로케일에서 예상대로 작동함)
. 다른 로케일(예: fr )에서는 소수점 " , " - 이는 " #. "이 " nnn, "가 됨을 의미합니다. 자세한 내용은 DecimalFormat
문서를 참조 하십시오.
경로 이름에 특수 형식 지정 문자가 포함되어 있지 않으면 현재 시퀀스 번호가 이름에 추가되고, 그렇지 않으면 형식 지정 지침에 따라 번호가 삽입됩니다.
시작 시퀀스 번호가 생략되고 끝 시퀀스 번호가 지정되면 시퀀스 번호는 루프 카운트로 해석되며 파일은 최대 " end " 횟수만큼 사용됩니다. 이 경우 파일 이름은 형식이 지정되지 않습니다.
${__StringFromFile(PIN#'.'DAT,,1,2)} - PIN1.DAT , PIN2.DAT 읽기
${__StringFromFile(PIN.DAT,,,,2)} - PIN.DAT 를 두 번 읽습니다.
" . " 위 의 PIN.DAT 에서인용 하지 않습니다 . 이 경우 시작 번호를 생략하므로 파일 이름을 그대로 사용합니다.
__머신 이름 ¶
machineName 함수는 로컬 호스트 이름을 반환합니다. 이것은 Java 메소드 InetAddress.getLocalHost() 를 사용하고 이를 getHostName() 에 전달합니다.
예:
${__머신 이름()}머신의 호스트 이름을 반환합니다.
${__머신 이름}머신의 호스트 이름을 반환합니다.
__머신IP ¶
machineIP 함수는 로컬 IP 주소를 반환합니다. 이것은 Java 메소드 InetAddress.getLocalHost() 를 사용하여 getHostAddress() 에 전달합니다.
예:
${__머신IP()}머신의 IP 주소를 반환합니다.
${__머신IP}머신의 IP 주소를 반환합니다.
__자바스크립트 ¶
javaScript 함수는 JavaScript(Java가 아님!) 코드를 실행하고 해당 값을 반환합니다.
JMeter Javascript 기능은 독립형 JavaScript 인터프리터를 호출합니다. Javascript는 스크립팅 언어로 사용되므로 계산 등을 할 수 있습니다.
Rhino 엔진의 경우 Mozilla Rhino 개요 를 참조하세요.
스크립트에서 다음 변수를 사용할 수 있습니다.
- log - 함수에 대한 로거
- ctx - JMeterContext 객체
- vars - JMeterVariables 객체
- threadName - 현재 스레드 이름을 포함하는 문자열
- sampler - 현재 Sampler 객체(있는 경우)
- sampleResult - 이전 SampleResult 객체(있는 경우)
- props - JMeterProperties(클래스 java.util.Properties ) 객체
Rhinoscript에서는 Packages 개체를 통해 정적 메서드에 액세스할 수 있습니다. 스크립팅 Java 문서를 참조하십시오 . 예를 들어 다음과 같이 JMeterContextService 정적 메소드에 액세스할 수 있습니다. Java.type("org.apache.jmeter.threads.JMeterContextService").getTotalThreads()
매개변수 ¶
- new Date() - 현재 날짜와 시간을 반환
- Math.floor(Math.random()*(${maxRandom}+1)) - 0 과 변수 maxRandom 사이의 난수
- ${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)) - 변수 minRandom 과 maxRandom 사이의 난수
- "${VAR}"=="abcd"
${__javaScript('${sp}'.slice(7\,99999))}7 뒤의 쉼표 는 이스케이프됩니다.
예:
${__javaScript(새 날짜())}2016년 1월 9일 토요일 16:22:15 GMT+0100(CET) 반환
${__javaScript(new Date(),MYDATE)}Sat Jan 09 2016 16:22:15 GMT+0100 (CET) 을 반환 하고 변수 MYDATE 에 저장합니다.
${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}maxRandom 변수를 사용하고 0과 maxRandom 사이의 임의 값을 반환하고 MYRESULT에 저장합니다.
${__javaScript(${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)),MYRESULT)}maxRandom 및 minRandom 변수 를 사용 하고 maxRandom 과 minRandom 사이의 임의 값을 반환하고 변수 MYRESULT 아래에 저장합니다 .
${__javaScript("${VAR}"=="abcd",MYRESULT)}VAR 변수의 값을 abcd 와 비교하고 true 또는 false 를 반환 하고 결과를 MYRESULT에 저장합니다.
__랜덤 ¶
random 함수는 주어진 최소값과 최대값 사이에 있는 난수를 반환합니다.
예:
${__Random(0,10)}0에서 10 사이의 임의의 숫자를 반환합니다.
${__Random(0,10, MYVAR)}0과 10 사이의 임의의 숫자를 반환하고 MYVAR 에 저장합니다 . ${MYVAR} 에는 임의의 숫자가 포함됩니다.
__임의날짜 ¶
RandomDate 함수는 지정된 시작 날짜와 종료 날짜 값 사이에 있는 임의의 날짜를 반환합니다.
매개변수 ¶
예:
${__RandomDate(,,2050-07-08,,)}지금 과 2050-07-08 사이의 임의의 날짜를 반환합니다 . 예: 2039-06-21
${__RandomDate(dd MM yyyy,,08 07 2050,,)}04 03 2034 와 같은 사용자 지정 형식으로 임의의 날짜를 반환합니다.
__RandomString ¶
RandomString 함수는 사용할 문자의 문자를 사용하여 길이의 임의의 문자열을 반환합니다.
매개변수 ¶
예:
${__RandomString(5)}읽을 수 있거나 읽을 수 없는 임의의 5자 문자열을 반환합니다.
${__RandomString(10,abcdefg)}cdbgdbeebd 또는 adbfeggfad 와 같이 abcdefg 세트 에서 선택한 10개의 임의 문자열을 반환합니다 .
${__RandomString(6,a12zeczclk, MYVAR)}a12zeczclk 세트 에서 선택한 6개의 임의 문자열을 반환 하고 결과를 MYVAR 에 저장합니다. MYVAR 에는 2z22ak 또는 z11kce 와 같은 문자열이 포함됩니다 .
__RandomFromMultipleVars ¶
RandomFromMultipleVars 함수는 소스 변수 에서 제공하는 변수 값을 기반으로 임의의 값을 반환합니다 .
변수는 다음 추출기에 의해 생성될 수 있으므로 단순하거나 다중값일 수 있습니다. 다중 값 변수는 Match Numbers 에 -1 을 설정할 때 추출되는 변수 입니다. 이로 인해 varName_matchNr 이라는 일치 번호 변수가 생성 되고 각 값에 대해 n = 1, 2, 3 등인 변수 varName_n 이 생성됩니다.매개변수 ¶
예:
${__RandomFromMultipleVars(val)}다중 값인지 여부를 고려하여 변수 val의 내용을 기반으로 임의의 문자열을 반환합니다.
${__RandomFromMultipleVars(val1|val2)}다중 값인지 여부를 고려하여 변수 val1 및 val2의 내용을 기반으로 임의의 문자열을 반환합니다.
${__RandomFromMultipleVars(val1|val2, MYVAR)}다중 값인지 여부를 고려하여 변수 val1 및 val2의 내용을 기반으로 임의의 문자열을 반환하고 결과를 MYVAR 에 저장합니다.
__UUID ¶
UUID 함수는 의사 임의 유형 4 UUID(Universally Unique IDentifier)를 반환합니다.
매개변수 ¶
예:
${__UUID()}다음 형식의 UUID를 반환합니다. c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd
__CSV읽기 ¶
CSVRead 함수는 CSV 파일에서 문자열을 반환합니다(cf StringFromFile ).
참고: JMeter는 여러 파일 이름을 지원합니다.
대부분의 경우 최신 CSV 데이터 세트 구성 요소 를 사용하는 것이 더 쉽습니다.
파일 이름이 처음 발견되면 파일이 열리고 내부 배열로 읽힙니다. 빈 줄이 감지되면 파일의 끝으로 처리됩니다. 이를 통해 후행 주석을 사용할 수 있습니다.
동일한 파일 이름에 대한 모든 후속 참조는 동일한 내부 배열을 사용합니다. NB 파일 이름 대소문자는 함수에 중요합니다. OS가 상관하지 않더라도 CSVRead(abc.txt,0) 및 CSVRead(aBc.txt,0) 는 다른 내부 배열을 참조합니다.
*ALIAS 기능을 사용하면 동일한 파일을 두 번 이상 열 수 있으며 더 짧은 파일 이름도 사용할 수 있습니다.
각 스레드에는 파일 배열의 현재 행에 대한 자체 내부 포인터가 있습니다. 스레드가 파일을 처음 참조할 때 배열의 다음 빈 행이 할당되므로 각 스레드는 다른 모든 스레드와 다른 행에 액세스합니다. [배열에 있는 행보다 스레드가 더 많지 않은 경우.]
매개변수 ¶
예를 들어 다음과 같이 일부 변수를 설정할 수 있습니다.
- COL1a ${__CSVRead(random.txt,0)}
- COL2a ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
- COL1b ${__CSVRead(random.txt,0)}
- COL2b ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
__속성 ¶
속성 함수는 JMeter 속성 값을 반환합니다. 속성 값을 찾을 수 없고 기본값이 제공되지 않은 경우 속성 이름을 반환합니다. 기본값을 제공할 때 함수 이름을 제공할 필요가 없습니다. 매개변수는 null로 설정될 수 있으며 무시됩니다.
예를 들어:
- ${__property(user.dir)} - user.dir 의 반환 값
- ${__property(user.dir,UDIR)} - user.dir 의 값을 반환 하고 UDIR 에 저장
- ${__property(abcd,ABCD,atod)} - 속성 abcd (또는 정의되지 않은 경우 " atod ")의 값을 반환하고 ABCD 에 저장
- ${__property(abcd,,atod)} - 속성 abcd (또는 정의되지 않은 경우 " atod ")의 값을 반환하지만 저장하지 않습니다.
매개변수 ¶
__P ¶
이것은 명령줄에 정의된 속성과 함께 사용하기 위한 단순화된 속성 함수입니다. __property 함수 와 달리 변수에 값을 저장하는 옵션이 없으며, 기본값이 제공되지 않으면 1로 가정합니다. 루프, 스레드 수, 램프 업 등
예를 들어:속성 값을 정의합니다.
jmeter -Jgroup1.threads=7 -Jhostname1=www.realhost.edu값을 가져옵니다.
${__P(group1.threads)} - group1.threads 의 값을 반환합니다.
${__P(group1.loops)} - group1.loops 의 값을 반환합니다.
${__P(hostname,www.dummy.org) } - 정의되지 않은 경우 속성 hostname 또는 www.dummy.org
의 반환 값 위의 예에서 첫 번째 함수 호출은 7 을 반환 하고 두 번째 함수 호출은 1 을 반환 하고 마지막 함수는 www.dummy.org 를 반환합니다 (해당 속성이 정의되지 않은 경우) . 다른 곳!)
__로그 ¶
log 함수는 메시지를 기록하고 입력 문자열을 반환합니다.
매개변수 ¶
OUT 및 ERR 로그 수준 이름은 출력을 각각 System.out 및 System.err 로 보내는 데 사용 됩니다. 이 경우 출력은 항상 인쇄되며 현재 로그 설정에 의존하지 않습니다.
- ${__log(메시지)}
- " ... thread Name : Message " 로 로그 파일에 기록됨
- ${__log(메시지,출력)}
- 콘솔 창에 작성
- ${__log(${VAR},,,VAR=)}
- " ... thread Name VAR=value " 로 로그 파일에 기록됨
__로그 ¶
logn 함수는 메시지를 기록하고 빈 문자열을 반환합니다.
매개변수 ¶
OUT 및 ERR 로그 수준 이름은 출력을 각각 System.out 및 System.err 로 보내는 데 사용 됩니다. 이 경우 출력은 항상 인쇄되며 현재 로그 설정에 의존하지 않습니다.
- ${__logn(VAR1=${VAR1},OUT)}
- 콘솔 창에 변수 값 쓰기
__빈쉘 ¶
BeanShell 함수는 전달된 스크립트를 평가하고 결과를 반환합니다.
BeanShell 사용에 대한 자세한 내용은 BeanShell 웹 사이트 http://www.beanshell.org/ 를 참조하십시오.
함수의 단일 인스턴스는 여러 스레드에서 호출될 수 있습니다. 그러나 함수 execute() 메서드는 동기화됩니다.
" beanshell.function.init " 속성 이 정의되면 소스 파일의 이름으로 인터프리터에 전달됩니다. 이것은 공통 메소드 및 변수를 정의하는 데 사용할 수 있습니다. bin 디렉토리에 샘플 초기화 파일이 있습니다: BeanShellFunction.bshrc .
스크립트가 실행되기 전에 다음 변수가 설정됩니다.
- log - BeanShell 함수에 대한 로거 (*)
- ctx - JMeterContext 객체
- vars - JMeterVariables 객체
- props - JMeterProperties(클래스 java.util.Properties ) 객체
- threadName - threadName(문자열)
- Sampler - 현재 Sampler (있는 경우)
- SampleResult - 현재의 SampleResult (있는 경우)
매개변수 ¶
예시:
- ${__BeanShell(123*456)}
- 56088을 반환
- ${__BeanShell(source("function.bsh"))}
- function.bsh 에서 스크립트를 처리합니다.
__그루비 ¶
__groovy 함수는 전달된 Apache Groovy 스크립트를 평가 하고 결과 를 반환합니다.
속성 " groovy.utilities "가 정의되면 ScriptEngine에 의해 로드됩니다. 이것은 공통 메소드 및 변수를 정의하는 데 사용할 수 있습니다. bin 디렉토리 에 샘플 초기화 파일이 있습니다 : utility.groovy .
스크립트가 실행되기 전에 다음 변수가 설정됩니다.
- log - 그루비 함수에 대한 로거 (*)
- ctx - JMeterContext 객체
- vars - JMeterVariables 객체
- props - JMeterProperties(클래스 java.util.Properties ) 객체
- threadName - threadName(문자열)
- sampler - 현재의 Sampler (있는 경우)
- prev - 이전의 SampleResult , 존재하는 경우
- 아웃 - 시스템 아웃
(*)는 초기화 파일(있는 경우)이 처리되기 전에 설정됨을 의미합니다. 다른 변수는 호출마다 다릅니다.
예를 들어 다음 을 수행하지 마십시오.
${__groovy("${myVar}".substring(0\,2))}
myVar 변수가 트랜잭션마다 변경되고 스크립트가 매번 변경되므로 위의 Groovy를 캐시할 수 없다고 상상해 보십시오.
대신 다음을 수행하여 캐시할 수 있습니다.
${__groovy(vars.get("myVar").substring(0\,2))}
매개변수 ¶
예시:
-
${__그루비(123*456)}
- 56088을 반환
-
${__groovy(vars.get("myVar").substring(0\,2))}
- var의 값이 JMeter 이면 String.substring(0,2) 을 실행할 때 JM 을 반환 합니다. 는 \ 로 이스케이프 처리되었습니다 .
__분할 ¶
split 함수는 전달된 문자열을 구분 기호에 따라 분할하고 원래 문자열을 반환합니다. 구분 기호가 인접하면 " ? "가 값으로 반환됩니다. 분할 문자열은 ${VAR_1} , ${VAR_2} 등의 변수에 반환됩니다. 변수 개수는 ${VAR_n} 에 반환됩니다 . 후행 구분 기호는 누락된 변수로 처리되고 " ? "가 반환됩니다. 또한 ForEach 컨트롤러에서 더 잘 작동할 수 있도록 __split 은 이전 분할에서 설정한 경우 첫 번째 사용하지 않는 변수를 삭제합니다.
예: 테스트 계획에서 VAR =" a||c|"를 정의하십시오 .
${__split(${VAR},VAR,|)}
이것은 VAR 의 내용을 반환할 것입니다 . 즉 " a||c| "이고 다음 변수를 설정합니다.
VAR_n = 4
VAR_1 = a
VAR_2 = ?
VAR_3 = c
VAR_4 = ?
VAR_5 = 널
매개변수 ¶
__X경로 ¶
XPath 함수는 XML 파일을 읽고 XPath와 일치시킵니다. 함수가 호출될 때마다 다음 일치 항목이 반환됩니다. 파일의 끝에서 시작 부분으로 줄 바꿈됩니다. 일치하는 노드가 없으면 함수는 빈 문자열을 반환하고 경고 메시지가 JMeter 로그 파일에 기록됩니다.
${__XPath(/경로/to/build.xml, //대상/@이름)}이것은 build.xml 의 모든 대상과 일치 하고 다음 이름 속성의 내용을 반환합니다.
__set속성 ¶
setProperty 함수는 JMeter 속성의 값을 설정합니다. 함수의 기본 반환 값은 빈 문자열이므로 함수 호출은 함수가 유효한 모든 곳에서 사용할 수 있습니다.
선택적 세 번째 매개변수를 " true "로 설정하면 원래 값을 반환할 수 있습니다.
속성은 JMeter에 전역적이므로 스레드와 스레드 그룹 간에 통신하는 데 사용할 수 있습니다.
__시간 ¶
time 함수는 현재 시간을 다양한 형식으로 반환합니다.
매개변수 ¶
형식 문자열이 생략되면 함수는 epoch 이후의 현재 시간을 밀리초 단위로 반환합니다. 형식이 " /ddd "(여기서 ddd 는 10진수) 와 일치 하는 경우 함수는 현재 시간(밀리초)을 ddd 값으로 나눈 값을 반환합니다 . 예를 들어 " /1000 "은 에포크 이후의 현재 시간(초)을 반환합니다. 그렇지 않으면 현재 시간이 SimpleDateFormat으로 전달됩니다. 다음과 같은 약칭 별칭이 제공됩니다.
- YMD = yyyyMMdd
- 흠흠 흠흠 흠흠
- YMDHMS = yyyyMMdd-HHmmss
- USER1 = JMeter 속성 time.USER1 에 있는 모든 것
- USER2 = JMeter 속성 time.USER2 에 있는 모든 것
기본값은 적절한 JMeter 속성을 설정하여 변경할 수 있습니다(예: time.YMD=yyMMdd).
${__time(dd/MM/yyyy,)}2018년 1월 21일에 실행된 경우 2018년 1월 21일 을 반환 합니다.
${__time(YMD,)}2018년 1월 21일에 실행된 경우 20180121 을 반환 합니다.
${__time()}시간을 밀리 단위로 반환합니다. 1516540541624
__jexl2 ¶
jexl 함수는 Commons JEXL 표현식 을 평가한 결과를 반환합니다 . JEXL 표현식에 대한 자세한 내용은 아래 링크를 참조하십시오.
__jexl2 함수는 Commons JEXL 2를 사용합니다 .
스크립트에서 다음 변수를 사용할 수 있습니다.
- log - 함수에 대한 로거
- ctx - JMeterContext 객체
- vars - JMeterVariables 객체
- props - JMeterProperties(클래스 java.util.Properties ) 객체
- threadName - 현재 스레드 이름을 포함하는 문자열
- sampler - 현재 Sampler 객체(있는 경우)
- sampleResult - 이전 SampleResult 객체(있는 경우)
- OUT - System.out - 예: OUT.println("메시지")
Jexl은 또한 클래스를 생성하고 이에 대한 메소드를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
Systemclass=log.class.forName("java.lang.System"); now=Systemclass.currentTimeMillis();웹 사이트의 Jexl 문서에서는 " div "가 정수 나누기를 수행한다고 잘못 제안하고 있습니다. 실제로 " div "와 " / "는 모두 정상적인 나눗셈을 수행합니다. 다음과 같은 효과를 얻을 수 있습니다.
나는 = 5 / 2; i.int값(); // 또는 i.longValue() 사용
__jexl3 ¶
jexl 함수는 Commons JEXL 표현식 을 평가한 결과를 반환합니다 . JEXL 표현식에 대한 자세한 내용은 아래 링크를 참조하십시오.
__jexl3 함수는 Commons JEXL 3을 사용합니다 .
스크립트에서 다음 변수를 사용할 수 있습니다.
- log - 함수에 대한 로거
- ctx - JMeterContext 객체
- vars - JMeterVariables 객체
- props - JMeterProperties(클래스 java.util.Properties ) 객체
- threadName - 현재 스레드 이름을 포함하는 문자열
- sampler - 현재 Sampler 객체(있는 경우)
- sampleResult - 이전 SampleResult 객체(있는 경우)
- OUT - System.out - 예: OUT.println("메시지")
Jexl은 또한 클래스를 생성하고 이에 대한 메소드를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
Systemclass=log.class.forName("java.lang.System"); now=Systemclass.currentTimeMillis();웹 사이트의 Jexl 문서에서는 " div "가 정수 나누기를 수행한다고 잘못 제안하고 있습니다. 실제로 " div "와 " / "는 모두 정상적인 나눗셈을 수행합니다. 다음과 같은 효과를 얻을 수 있습니다.
나는 = 5 / 2; i.int값(); // 또는 i.longValue() 사용
__V ¶
V(변수) 함수는 변수 이름 식을 평가한 결과를 반환합니다. 이것은 중첩 변수 참조(현재 지원되지 않음)를 평가하는 데 사용할 수 있습니다.
예를 들어, 변수 A1 , A2 및 N = 1 이 있는 경우 :
- ${A1} - 정상 작동
- ${A${N}} - 작동하지 않음(중첩 변수 참조)
- ${__V(A${N})} - 정상적으로 작동합니다. A${N} 은 A1 이 되고 __V 함수는 A1 값을 반환합니다.
매개변수 ¶
__평가변수 ¶
evalVar 함수는 변수에 저장된 표현식을 평가한 결과를 반환합니다.
이를 통해 파일에서 문자열을 읽고 그 안의 모든 변수 참조를 처리할 수 있습니다. 예를 들어 " query " 변수에 " select ${column} from ${table} "이 포함되어 있고 " column " 및 " table "에 " name " 및 " customers " 가 포함되어 있으면 ${__evalVar(query)} 는 다음과 같이 평가됩니다. " 고객의 이름 선택 ".
__평가 ¶
eval 함수는 문자열 식을 평가한 결과를 반환합니다.
이를 통해 변수에 저장된 문자열에서 변수 및 함수 참조를 보간할 수 있습니다. 예를 들어, 다음 변수가 주어졌을 때:
- 이름 = 스미스
- 열 = 나이
- 테이블 = 생일
- SQL = ${table}에서 ${column} 선택(name='${name}')
이것은 예를 들어 SQL 문과 값이 모두 데이터 파일에 정의되어 있는 경우 CSV 데이터 세트와 함께 사용할 수 있습니다.
__문자 ¶
char 함수는 숫자 목록을 유니코드 문자로 평가한 결과를 반환합니다. 아래의 __unescape() 도 참조 하세요.
이를 통해 필드에 임의의 문자 값을 추가할 수 있습니다.
매개변수 ¶
예:
${__char(13,10)} = ${__char(0xD,0xA)} = ${__char(015,012)} = CRLF
${__char(165)} = ¥ (엔)
__이스케이프 ¶
unescape 함수는 Java 이스케이프된 문자열을 평가한 결과를 반환합니다. 위의 __char() 도 참조하십시오 .
이를 통해 GUI를 통해 정의하기 어려운(또는 불가능한) 필드에 문자를 추가할 수 있습니다.
예:
${__unescape(\r\n)} = CRLF
${__unescape(1\t2)} = 1 [탭] 2
__unescapeHtml ¶
HTML 엔티티를 포함하는 문자열을 이스케이프에 해당하는 실제 유니코드 문자를 포함하는 문자열로 이스케이프 해제하는 함수입니다. HTML 4.0 엔터티를 지원합니다.
예를 들어, 문자열
${__unescapeHtml(<Français>)}<Français> 를 반환 합니다.
엔터티를 인식할 수 없으면 그대로 남겨두고 결과 문자열에 그대로 삽입됩니다. 예 를 들어 ${__unescapeHtml(>&zzzz;x)} 는 >&zzzz;x 를 반환 합니다.
Commons Lang의 StringEscapeUtils#unescapeHtml(String)을 사용합니다 .
__escapeHTML ¶
HTML 엔터티를 사용하여 문자열의 문자를 이스케이프하는 함수입니다. HTML 4.0 엔터티를 지원합니다.
예를 들어,
${__escapeHtml("빵" & "버터")}반환: "빵" & "버터" .
Commons Lang의 StringEscapeUtils#escapeHtml(String) 을 사용합니다 .
__url디코드 ¶
application/x-www-form-urlencoded 문자열 을 디코딩하는 기능 입니다. 참고: 인코딩 체계로 UTF-8을 사용하십시오.
예를 들어, 문자열
${__urldecode(단어+%22학교%22+is+%22%C3%A9cole%22+in+프랑스어)}반환 단어 "학교"는 프랑스어로 "école"입니다 .
Java 클래스 URLDecoder 를 사용합니다 .
__urlencode ¶
문자열을 application/x-www-form-urlencoded 문자열 로 인코딩하는 함수 입니다.
예를 들어, 문자열
${__urlencode(단어 "school"은 프랑스어로 "école"입니다)}Word+% 22school %22+is+%22%C3%A9cole%22+in+french 를 반환 합니다.
Java 클래스 URLEncoder 를 사용합니다 .
__FileToString ¶
FileToString 함수를 사용하여 전체 파일을 읽을 수 있습니다. 호출될 때마다 전체 파일을 읽습니다.
파일을 열거나 읽는 중에 오류가 발생하면 함수는 " **ERR** " 문자열을 반환합니다.
매개변수 ¶
파일 이름, 인코딩 및 참조 이름 매개변수는 함수가 실행될 때마다 확인됩니다.
__샘플러 이름 ¶
samplerName 함수는 현재 샘플러의 이름(즉, 레이블)을 반환합니다.
연결된 샘플러가 없는 테스트 요소에서는 함수가 작동하지 않습니다. 예를 들어 테스트 계획. 구성 요소에는 연결된 샘플러도 없습니다. 그러나 일부 구성 요소는 HTTP 헤더 관리자 및 Http 쿠키 관리자와 같은 샘플러에서 직접 참조하며 이 경우 기능은 Http 샘플러의 컨텍스트에서 해결됩니다. 전처리기, 후처리기 및 어설션에는 항상 연결된 샘플러가 있습니다.
예시:
${__샘플러 이름()}
__TestPlanName ¶
TestPlanName 함수는 현재 테스트 계획의 이름을 반환합니다(계획 포함에서 호출 테스트 계획의 이름을 알기 위해 사용할 수 있음).
예시:
${__TestPlanName}테스트 계획의 파일 이름을 반환합니다. 예를 들어 계획이 Demo.jmx라는 파일에 있는 경우 " Demo.jmx
__escapeOroRegexpChars ¶
ORO Regexp 메타 문자를 이스케이프하는 함수로, Java Regexp 엔진 의 \Q \E 와 동일합니다.
예를 들어,
${__escapeOroRegexpChars([^"].+?,)}반환: \[\^\"\]\.\+\? .
ORO의 Perl5Compiler#quotemeta(String)를 사용합니다.
매개변수 ¶
__escapeXml ¶
XML 1.0 엔터티를 사용하여 문자열의 문자를 이스케이프하는 함수입니다.
예를 들어,
${__escapeXml("빵" & '버터')}반환: "빵" & '버터' .
Commons Lang의 StringEscapeUtils#escapeXml10(String) 을 사용합니다 .
__타임시프트 ¶
timeShift 함수는 지정된 초, 분, 시간, 일 또는 월이 추가된 지정된 형식의 날짜를 반환합니다.
매개변수 ¶
- PT20.345S 는 20.345초로 구문 분석합니다.
- PT15M 은 15분으로 구문 분석합니다.
- PT10H 는 10시간으로 분석
- P2D 는 2일로 구문 분석합니다.
- -P6H3M 은 -6시간 -3분으로 구문 분석합니다.
예:
${__timeShift(dd/MM/yyyy,21/01/2018,P2D,,)}2018년 1월 23일 반환
${__timeShift(dd MMMM yyyy,21 février 2018,P2D,fr_FR,)}23 février 2018을 반환합니다 .
__다이제스트 ¶
다이제스트 함수는 선택적 솔트, 대문자 및 변수 이름을 사용하여 특정 해시 알고리즘에서 암호화된 값을 반환합니다.
매개변수 ¶
- MD2
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
예:
${__digest(MD5,Errare humanum est,,,)}반환 c49f00b92667a35c63708933384dad52
${__digest(SHA-256,Felix qui potuit rerum cognoscere causas,mysalt,,)}반환 a3bc6900fe2b2fc5fa8a601a4a84e27a079bf2c581d485009bc5c00516729ac7
__dateTimeConvert ¶
__dateTimeConvert 함수는 소스 형식의 날짜를 선택적으로 변수 이름에 결과를 저장하는 대상 형식으로 변환합니다 .
매개변수 ¶
예시:
${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}2018년 1월 21일 반환
신기원 시간 값: 1526574881000,
${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}UTC 시간(-Duser.timezone=GMT)으로 17/05/2018 16:34 를 반환합니다 .
__isPropDefined ¶
__isPropDefined 함수는 속성이 있으면 true를 반환하고 속성이 없으면 false를 반환합니다 .
예시:
${__isPropDefined(START.HMS)}true 를 반환 합니다
__isVarDefined ¶
__isVarDefined 함수 는 변수가 있으면 true를 반환하고 변수가 없으면 false를 반환합니다.
예시:
${__isVarDefined(JMeterThread.last_sample_ok)}true 를 반환 합니다
__체인지 케이스 ¶
대소문자 변경 함수는 특정 모드에 따라 대소문자가 변경된 문자열 값을 반환합니다. 결과는 선택적으로 JMeter 변수에 저장할 수 있습니다.
매개변수 ¶
- AB-CD EF의 UPPER 결과
- ab-cd ed로 LOWER 결과
- Ab-CD eF로 결과를 대문자 로 표시
예:
${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil, UPPER,)}AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL을 반환합니다 .
${__changeCase(LABOR OMNIA VINCIT IMPROBUS,LOWER,)}노동 을 반환 합니다 omnia vincit improbus
${__changeCase(옴니버스 viis romam pervenitur,CAPITALIZE,)}Omnibus viis roma pervenitur 를 반환 합니다.
__StringToFile ¶
__StringToFile 함수를 사용하여 파일에 문자열을 쓸 수 있습니다 . 호출될 때마다 파일 추가 또는 덮어쓰기에 문자열을 씁니다.
함수의 기본 반환 값은 빈 문자열입니다.
매개변수 ¶
콘텐츠에 줄 바꿈을 삽입해야 하는 경우 문자열에 \n 을 사용하세요.
20.6 미리 정의된 변수 ¶
대부분의 변수는 함수를 호출하거나 사용자 정의 변수와 같은 테스트 요소에 의해 설정됩니다. 이 경우 사용자는 사용되는 변수 이름을 완전히 제어할 수 있습니다. 그러나 일부 변수는 JMeter에 의해 내부적으로 정의됩니다. 아래에 나열되어 있습니다.
- COOKIE_cookiename - 쿠키 값을 포함합니다( HTTP 쿠키 관리자 참조 ).
- JMeterThread.last_sample_ok - 마지막 샘플이 OK인지 여부 - true / false . 참고: 이것은 PostProcessors 및 Assertion이 실행된 후에 업데이트됩니다.
- START 변수(다음 섹션 참조)
20.6 미리 정의된 속성 ¶
JMeter 속성 집합은 JMeter가 시작될 때 정의된 시스템 속성에서 초기화됩니다. 추가 JMeter 속성은 jmeter.properties , user.properties 또는 명령줄에 정의됩니다.
일부 내장 속성은 JMeter에 의해 정의됩니다. 아래에 나열되어 있습니다. 편의를 위해 START 속성도 같은 이름을 가진 변수에 복사됩니다.
- START.MS - JMeter 시작 시간(밀리초)
- START.YMD - JMeter 시작 시간( yyyyMMdd )
- START.HMS - JMeter 시작 시간( HHmmss )
- TESTSTART.MS - 테스트 시작 시간(밀리초)
START 변수 /속성은 테스트 시작 시간이 아니라 JMeter 시작 시간을 나타냅니다. 주로 파일 이름 등에 사용하기 위한 것입니다.