LoadRunner에서 web_reg_save_param을 사용한 상관관계 예시
⚡ 스마트 요약
LoadRunner의 상관관계 분석은 세션 ID와 같은 동적 서버 값을 캡처하여 이후 요청에 다시 반영함으로써, 기록된 VuGen 스크립트가 오래된 데이터로 인해 실패하는 대신 성공적으로 재생되도록 합니다.
상관관계란 무엇입니까?
상관관계는 이름에서 알 수 있듯이 두 변수 또는 개체 간의 관계를 정의하는 메커니즘입니다. 사전에서는 상관관계를 "두 개 이상의 변수 간의 통계적 관계로서, 한 변수의 값에 체계적인 변화가 있을 때 다른 변수에도 체계적인 변화가 나타나는 것"이라고 정의합니다.
브랜드 노트: 이 도구는 HP 제품으로 출시되었습니다. Micro Focus LoadRunner, 현재 OpenText 전문 성능 엔지니어링아래의 모든 상관 함수는 변경되지 않았으며, 공급업체는 스크립트 생성기의 이름을 명시합니다. VuGen.
상관관계가 필요한 이유는 무엇입니까?
다음 시나리오를 통해 상관관계를 이해해 봅시다.
스크립트를 녹음한다고 가정해 보세요. LoadRunner.
녹화 중 클라이언트-서버 통신은 다음과 같이 진행되며, 아래 다이어그램은 이를 요약한 것입니다.
- 레코드(Record) 과정에서 클라이언트는 서버에 세션 시작 요청을 보냅니다.
- 서버는 요청을 수신하고 새 세션 ID ABC를 할당합니다.
- 클라이언트는 세션 ID ABC를 스크립트에 저장합니다.
- 클라이언트가 ID가 ABC인 사용자로 세션을 시작하고 서버에 녹화를 허용해 달라는 요청을 보냅니다.
- 서버는 ID ABC를 인식하고 클라이언트가 스크립트를 기록하도록 허용합니다.
이제 다음 단계 이후에 나타나는 재생 중 클라이언트-서버 통신을 살펴보겠습니다.
- 재생 중에 클라이언트는 서버에 세션을 시작하라는 요청을 보냅니다.
- 서버는 요청을 수신하고 새 세션 ID XYZ를 할당합니다.
- 클라이언트가 이전에 기록된 세션 ID ABC로 세션을 시작하고 서버에 기록 허용 요청을 보냅니다.
- 서버는 할당된 ID XYZ를 예상하고 세션이 실패하므로 ID ABC를 식별할 수 없습니다.
실행 시간에 전송되는 동적 값을 캡처하고 파싱하여 서버로 반환할 수 있는 솔루션이 필요합니다. 아래 다이어그램은 이러한 솔루션을 사용했을 때의 클라이언트-서버 통신 방식을 보여줍니다.
- 재생 중에 클라이언트는 서버에 세션을 시작하라는 요청을 보냅니다.
- 서버는 요청을 수신하고 새 세션 ID ZZZ를 할당합니다.
- 클라이언트는 요청에서 이 새 세션 ID ZZZ를 구문 분석합니다.
- 클라이언트가 ID ZZZ로 세션을 시작하라는 요청을 보냅니다.
- 서버는 ID ZZZ를 인식하고 클라이언트가 스크립트를 재생할 수 있도록 허용합니다.
이것은 단지 상관 관계.
아래 짧은 영상은 녹화 및 재생 시 발생하는 동일한 문제를 해결하는 과정을 보여줍니다.
여기에서 확인하세요 비디오에 접근할 수 없는 경우
VuGen의 경우 상관관계는 응답과 이전 요청 간의 결합 관계를 의미합니다.
서버로부터 이전에 수신한 응답(예: 세션 ID 또는 서버에서 가져온 날짜 및 시간)을 기반으로 요청이 이루어지는 경우가 여러 가지 있습니다. 이러한 값은 애플리케이션을 실행하거나 스크립트를 기록할 때마다 다릅니다. 따라서 스크립트 실행이 서버 반환 값에 의존하는 경우, 서버 응답을 "포착"하여 서버가 예상하는 요청에 첨부할 수 있는 메커니즘을 찾아야 합니다. LoadRunner에서는 이를 일반적으로 "상관관계(Correlation)"라고 합니다.
간단히 말해서 Correlation을 사용한 솔루션은 다음과 같습니다.
- 단계에서 출력 값 캡처
- 위에서 캡처한 값을 사용하여 모든 후속 단계에 대한 입력으로 사용
VuGen/LoadRunner에서는 상관관계를 두 가지 범주로 분류합니다.
- 자동 상관관계
- 수동 상관관계
자동 상관관계
LoadRunner는 자동으로 상관 관계를 쉽게 수행할 수 있는 메커니즘을 제공합니다.
VuGen은 서버 응답의 다양한 값을 내부적으로 비교하기 위해 녹화된 스크립트를 최소 두 번 실행해야 합니다.
자동 상관 관계는 3가지 범주로 분류될 수 있습니다.
- 상관관계 자동 감지
- 규칙 기반 상관관계
- 모든 진술의 상관관계
| 규칙 이름 | 언제 사용 하는가? |
| 상관관계 자동 감지 | LoadRunner에서 지원하는 애플리케이션 서버의 동적 데이터를 감지하고 상관관계를 분석합니다. |
| 규칙 기반 | 컨텍스트가 알려진 지원되지 않는 애플리케이션 서버로 작업할 때 사용됩니다. |
| 모두 상관 | 모든 동적 데이터를 블라인드 방식으로 상호 연결하는 데 도움이 됩니다. |
자동 상관관계는 단순해 보이지만 오류가 발생하기 쉬우며 작동하는 경우는 5% 미만입니다. 항상 수동 상관 관계를 사용하는 것이 좋습니다.
녹화 시 자동 상관 관계를 설정하려면 스크립트 녹화 후 녹화 시간 설정에서 아래 설정을 수행하세요.
아래 메뉴에서 [녹화] => [녹화 옵션]을 클릭하거나 Ctrl + F7을 누르세요.
아래 창이 열립니다:
상관 관계 => 구성을 클릭하면 아래 창이 열립니다.
여기서는 해당 애플리케이션에서 사용되는 모든 애플리케이션(ASPNET) 등에 대해 선택됨으로 표시해야 합니다. 오른쪽에서는 _VIEWSTATE와 같이 상관 관계에 대한 가능한 후보를 검색하는 규칙을 볼 수 있습니다. 새 규칙 버튼을 클릭하여 더 많은 애플리케이션이나 사용자 정의 규칙을 추가할 수도 있습니다.
RULES(규칙)를 클릭해도 다음과 같이 표시됩니다.
자동 상관관계 기능을 사용하려면 '규칙 검색' 옵션이 선택되어 있어야 합니다. '발견된 값 자동 상관관계'를 클릭하면 상관관계 후보가 발견되더라도 VuGen에서 선택 옵션을 제시하지 않고 바로 상관관계를 생성합니다.
우리는 나중에 상관관계에 사용되는 API를 이해할 것입니다. 그러나 텍스트 비교 대신 HTML 비교를 사용하는 것이 좋습니다.
규칙을 선택한 후 확인(OK) 버튼을 클릭해 창을 닫습니다.
여기에 표시된 툴바 버튼을 클릭하세요. 메뉴에서 해당 옵션을 선택하면 VuGen이 새 구성으로 스크립트를 다시 생성합니다(녹화 과정 없이). VuGen은 상관 관계 처리에 필요한 코드를 자동으로 추가합니다. 이 예제는 수동 상관 관계 섹션에서 더 자세히 살펴보겠습니다.
수동으로 상관 관계를 수행하거나 자동 상관 관계를 사용하는 경우 코드 조각에는 정확히 동일한 구문과 기능이 포함됩니다.
스크립트를 자동 연관시키는 단계:
- 스크립트 녹음
- 재생 스크립트
- 상관관계가 있는 값을 식별합니다.
- 값을 선택하고 자동 상관 버튼을 클릭하세요.
- 다시 실행하여 스크립트를 확인하십시오. 성공적인 실행은 성공적인 상관 관계를 의미합니다.
Tip:
- 상관관계는 다양한 값으로 스크립트를 실행하는 데 도움이 됩니다.
- 상관 관계는 또한 스크립트의 크기를 줄입니다.
수동 상관관계
수동 상관 관계는 끊임없이 변화하는 값을 처리하기 위해 스크립트에 직접 코드를 작성하는 것입니다. 아래 단계로 나눌 수 있습니다.
- 캡처할 가치 결정
- 캡처할 값의 오른쪽 및 왼쪽 텍스트 경계 찾기(WEB)
- 사용해야 하는 텍스트 경계 항목 찾기
- 캡처할 값이 있는 페이지를 요청하는 코드 조각 위에 web_reg_save_param 함수를 스크립트에 추가합니다.
- 매개변수 이름, 왼쪽 경계, 오른쪽 경계 및 발생 항목을 함수에 추가합니다.
- 동적 값이 발생할 때마다 스크립트에서 매개변수화
- 올바른 실행 확인
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
Code 참고 사항 : 두 발췌문 모두 게시된 그대로 나타납니다. 서수를 살펴보세요. 오드=l RelFrameId=l 소문자 L을 사용하세요. VuGen은 숫자 1을 예상합니다.
VUser 비교를 통해 수동 상관 관계를 수행할 수 있습니다. VUser 비교 상관 관계 방법의 단계는 다음과 같이 나눌 수 있습니다.
- 상관 관계가 필요한 동적 값 식별
- Dynamic 값을 포함하는 서버 응답을 찾으십시오.
- 매개변수에서 동적 값 캡처
- 발생하는 모든 동적 값을 매개변수로 바꿉니다.
- 변경 사항 확인
web_reg_save_param 함수 이해하기
VuGen은 후보군 간의 상관관계를 분석하기 위한 다양한 기능 또는 API를 제공합니다. 여기에는 다음이 포함됩니다.
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
버전 참고: 현재 VuGen 릴리스는 다음과 같은 문제를 다룹니다. web_reg_save_param_ex 원래 기능의 후계자로서, web_reg_save_param_regexp 경계 자체가 변경될 때의 선택과 같습니다. 원래 예시는 여전히 실행됩니다.
여기서는 간단한 소개만 제공하지만, 함수와 매개변수에 대한 자세한 이해를 위해서는 VuGen을 열고 함수를 입력하거나(또는 Steps Toolbox를 사용) 함수 위에 커서를 놓고 F1 키를 누르세요. 그러면 함수에 익숙해질 수 있을 것입니다. VuGen 도움말 그리고 습관으로 만드세요. 업계에서 일하다 보면 그런 상황을 많이 겪게 될 겁니다.
이제 기능의 세부 정보를 살펴보겠습니다.
web_reg_save_param(매개변수 이름, 왼쪽 경계, 오른쪽 경계)
속성 목록
아래 표는 함수가 허용하는 모든 속성, 필수 여부 및 제어 기능을 정리한 것입니다.
| 속성 | 필수 사항입니까? | 그것이하는 일 |
| 개 심자 | Optional | HTML_TO_URL HTML로 인코딩된 데이터를 변환합니다. URLHTML로 인코딩된 데이터 형식입니다. HTML_TO_TEXT 함수는 HTML로 인코딩된 데이터를 일반 텍스트 형식으로 변환합니다. |
| 리디렉션 무시 | 선택 사항이며 기본값은 "리디렉션 무시=아니요"입니다. | '예'로 설정하고 서버 응답이 리디렉션 정보(HTTP 상태 코드 300-303, 307)인 경우, 해당 응답은 검색되지 않습니다. GET 요청은 리디렉션된 위치로 이동하고, 거기서 받은 응답에 대해 검색이 실행됩니다. |
| LB | 필수 | 매개변수 또는 동적 데이터의 왼쪽 경계입니다. LB 값을 지정하지 않으면 데이터의 시작 부분부터 모든 문자가 경계로 사용됩니다. 경계 매개변수는 대소문자를 구분합니다. 검색 텍스트를 더욱 세밀하게 사용자 지정하려면 하나 이상의 텍스트 플래그를 사용하십시오. |
| 찾을 수 없음 | 선택 사항이며 기본값은 "오류"입니다. | 경계를 찾지 못하여 빈 문자열이 생성되는 경우를 처리합니다. "찾을 수 없음=오류"는 오류를 발생시킵니다. "찾을 수 없음=경고"(이전 버전에서는 "찾을 수 없음=빈 문자열")는 매개변수 개수를 0으로 설정하고 계속 진행합니다. 이는 스크립트 실행을 중단하지 않고 문자열을 찾았는지 확인하려는 경우에 적합합니다. "오류 발생 시 계속" 옵션을 활성화하면 "오류"가 발생하더라도 스크립트는 계속 진행되지만, 확장 로그에 오류가 기록됩니다. |
| ORD | 선택 사항이며 기본값은 1입니다. | 일치하는 항목의 순서 위치 또는 인스턴스를 나타냅니다. "모두"를 지정하면 매개변수 값이 배열에 저장됩니다. 하위 호환성을 위해 ORD 대신 Instance를 사용할 수 있지만, 더 이상 권장되지 않습니다. |
| RB | 필수 | 매개변수 또는 동적 데이터의 오른쪽 경계입니다. RB 값을 지정하지 않으면 데이터 끝까지의 모든 문자가 경계로 사용됩니다. 경계 매개변수는 대소문자를 구분합니다. 검색 텍스트를 더욱 세밀하게 사용자 지정하려면 하나 이상의 텍스트 플래그를 사용하십시오. |
| RelFrameID | Optional | 요청된 HTML 페이지의 계층 수준 URL가능한 값은 ALL 또는 숫자입니다. RelFrameID는 GUI 레벨 스크립트에서 지원되지 않습니다. |
| 세이브렌 | 선택 사항이며 기본값은 -1입니다. | 찾은 값의 부분 문자열 중 지정된 오프셋부터의 길이를 매개변수에 저장합니다. 기본값은 문자열의 끝에 저장하는 것입니다. |
| 오프셋 저장 | 선택 사항이며 기본값은 0입니다. | 찾은 값의 부분 문자열에 대한 오프셋 값을 매개변수에 저장합니다. 오프셋 값은 음수가 아니어야 합니다. |
| 검색 | 선택 사항이며 기본값은 ALL입니다. | 검색 범위 - 구분된 데이터를 검색할 위치입니다. 가능한 값은 Headers(헤더만 검색), Body(헤더를 제외한 본문 데이터만 검색), No resource(모든 헤더와 리소스를 제외한 HTML 본문만 검색), 또는 ALL(본문, 헤더 및 리소스 모두 검색)입니다. |
스크립트가 제대로 재생되면 추가하세요. 매개변수화, 트랜잭션 및 런타임 설정다음에서 실행하세요. 제어 장치그리고 결과를 읽어보세요 분석 더 넓은 범위의 일부로서 성능 시험 부하 테스트.







