Web_Reg_Save_Param 예를 사용한 LoadRunner의 상관 관계

상관관계란 무엇입니까?

상관관계는 이름에서 알 수 있듯이 두 변수 또는 엔터티 간의 관계를 정의하는 메커니즘입니다. 사전에서는 이를 "다른 변수의 체계적인 변화가 한 변수 값의 체계적인 변화를 수반하는 두 개 이상의 변수 간의 통계적 관계"로 정의합니다.

상관관계가 필요한 이유는 무엇입니까?

다음 시나리오를 통해 상관 관계를 이해해 보겠습니다.

LoadRunner를 사용하여 스크립트를 기록한다고 가정해 보세요.

클라이언트-서버 통신

  1. 기록하는 동안 클라이언트는 서버에 세션을 시작하라는 요청을 보냅니다.
  2. 서버는 요청을 수신하고 새 세션 ID ABC를 할당합니다.
  3. 클라이언트는 세션 ID ABC를 스크립트에 저장합니다.
  4. 클라이언트는 ID ABC로 세션을 시작하고 기록을 허용하도록 서버에 요청을 보냅니다.
  5. 서버는 ID ABC를 인식하고 클라이언트가 스크립트를 기록하도록 허용합니다.

녹음 중 상관관계

  1. 이제 재생 중 클라이언트-서버 통신을 살펴보겠습니다.
  2. 재생 중에 클라이언트는 서버에 세션을 시작하라는 요청을 보냅니다.
  3. 서버는 요청을 수신하고 새 세션 ID XYZ를 할당합니다.
  4. 클라이언트는 이전에 기록된 세션 ID ABC로 세션을 시작하고 기록을 허용하도록 서버에 요청을 보냅니다.
  5. 서버는 할당된 ID XYZ를 예상하고 세션이 실패하므로 ID ABC를 식별할 수 없습니다.

재생 중 상관 관계

런타임에 전송된 동적 값을 캡처하여 구문 분석하고 이 값을 서버에 다시 반환하는 솔루션이 필요합니다. 이 솔루션을 사용한 클라이언트-서버 통신은 다음과 같습니다.

  1. 재생 중에 클라이언트는 서버에 세션을 시작하라는 요청을 보냅니다.
  2. 서버는 요청을 수신하고 새 세션 ID ZZZ를 할당합니다.
  3. 클라이언트는 요청에서 이 새 세션 ID ZZZ를 구문 분석합니다.
  4. 클라이언트가 ID ZZZ로 세션을 시작하라는 요청을 보냅니다.
  5. 서버는 ID ZZZ를 인식하고 클라이언트가 스크립트를 재생할 수 있도록 허용합니다.

우리에게는 상관관계가 필요하다

이것은 단지 상관 관계.

LINK 비디오에 접근할 수 없는 경우

VUGen의 경우 상관 관계는 응답과 이전 요청 간의 바인딩 관계입니다.

요청이 서버에서 가져온 세션 ID, 서버 날짜/시간 등 서버로부터 이전에 수신된 응답을 기반으로 하는 다양한 상황이 있습니다. 이 값은 애플리케이션을 실행하거나 스크립트를 기록할 때마다 다릅니다. 분명히 스크립트 실행이 서버에서 반환된 값에 따라 달라지는 경우 이는 서버 응답을 "잡아" 서버가 기대하는 요청에 연결할 수 있는 메커니즘을 찾아야 함을 의미합니다. 이를 일반적으로 LoadRunner에서는 상관 관계라고 합니다.

간단히 말해서 Correlation을 사용한 솔루션은 다음과 같습니다.

  1. 단계에서 출력 값 캡처
  2. 위에서 캡처한 값을 사용하여 모든 후속 단계에 대한 입력으로 사용

상관관계는 VUGen/LoadRunner에서 두 가지 범주로 분류됩니다.

  • 자동 상관관계
  • 수동 상관관계

자동 상관관계

LoadRunner는 자동으로 상관 관계를 쉽게 수행할 수 있는 메커니즘을 제공합니다.

VUGen에서는 서버 응답의 다양한 값을 내부적으로 비교할 수 있도록 기록된 스크립트를 최소한 두 번 실행해야 합니다.

자동 상관 관계는 3가지 범주로 분류될 수 있습니다.

  • 상관관계 자동 감지
  • 규칙 기반 상관관계
  • 모든 진술의 상관관계
규칙 이름 언제 사용 하는가?
상관관계 자동 감지 HP LoadRunner가 지원하는 응용 프로그램 서버에 대한 동적 데이터를 감지하고 상호 연관시킵니다.
규칙 기반 컨텍스트가 알려진 지원되지 않는 애플리케이션 서버로 작업할 때 사용됩니다.
모두 상관 모든 동적 데이터를 블라인드 방식으로 상호 연결하는 데 도움이 됩니다.

자동 상관관계는 단순해 보이지만 오류가 발생하기 쉬우며 작동하는 경우는 5% 미만입니다. 항상 수동 상관 관계를 사용하는 것이 좋습니다.

녹화 시 자동 상관 관계를 설정하려면 스크립트 녹화 후 녹화 시간 설정에서 아래 설정을 수행하세요.

녹음 =>녹음 옵션을 클릭합니다(또는 Ctrl +F7을 클릭).

자동 상관관계

아래 창이 열립니다:

자동 상관관계

상관 관계 => 구성을 클릭하면 아래 창이 열립니다.

자동 상관관계

여기서는 해당 애플리케이션에서 사용되는 모든 애플리케이션(ASPNET) 등에 대해 선택됨으로 표시해야 합니다. 오른쪽에서는 _VIEWSTATE와 같이 상관 관계에 대한 가능한 후보를 검색하는 규칙을 볼 수 있습니다. 새 규칙 버튼을 클릭하여 더 많은 애플리케이션이나 사용자 정의 규칙을 추가할 수도 있습니다.

RULES(규칙)를 클릭해도 다음과 같이 표시됩니다.

자동 상관관계

자동 상관관계가 작동하려면 규칙 검색이 선택됨으로 표시되어 있는지 확인해야 합니다. 발견된 값 자동 상관을 클릭하면 VUGen은 상관 후보가 발견된 후 선택 항목을 묻는 메시지를 표시하지 않고 대신 상관만 수행합니다.

우리는 나중에 상관관계에 사용되는 API를 이해할 것입니다. 그러나 텍스트 비교 대신 HTML 비교를 사용하는 것이 좋습니다.

규칙을 선택한 후 확인(OK) 버튼을 클릭해 창을 닫습니다.

를 클릭하십시오 자동 상관관계메뉴를 선택하면 VUGen이 새로운 구성으로 스크립트를 재생성합니다(녹화할 필요 없음). VUGen은 상관관계를 처리하는 데 필요한 코드 조각을 자동으로 추가합니다. 수동 상관관계에서 샘플을 더 자세히 살펴보겠습니다.

수동으로 상관 관계를 수행하거나 자동 상관 관계를 사용하는 경우 코드 조각에는 정확히 동일한 구문과 기능이 포함됩니다.

스크립트를 자동 연관시키는 단계:

  1. 스크립트 녹음
  2. 재생 스크립트
  3. 상관관계가 있는 값을 식별합니다.
  4. 값을 선택하고 자동 상관 버튼을 클릭하세요.
  5. 다시 실행하여 스크립트를 확인하십시오. 성공적인 실행은 성공적인 상관 관계를 의미합니다.

Tip

  • 상관관계는 다양한 값으로 스크립트를 실행하는 데 도움이 됩니다.
  • 상관 관계는 또한 스크립트의 크기를 줄입니다.

수동 상관관계

수동 상관 관계는 끊임없이 변화하는 값을 처리하기 위해 스크립트에 직접 코드를 작성하는 것입니다. 아래 단계로 나눌 수 있습니다.

  1. 캡처할 가치 결정
  2. 캡처할 값의 오른쪽 및 왼쪽 텍스트 경계 찾기(WEB)
  3. 사용해야 하는 텍스트 경계 항목 찾기
  4. 캡처할 값이 있는 페이지를 요청하는 코드 조각 위에 web_reg_save_param 함수를 스크립트에 추가합니다.
  5. 매개변수 이름, 왼쪽 경계, 오른쪽 경계 및 발생 항목을 함수에 추가합니다.
  6. 동적 값이 발생할 때마다 스크립트에서 매개변수화
  7. 올바른 실행 확인
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);

VUser 비교를 통해 수동 상관 관계를 수행할 수 있습니다. VUser 비교 상관 관계 방법의 단계는 다음과 같이 나눌 수 있습니다.

  1. 상관 관계가 필요한 동적 값 식별
  2. 동적 값이 포함된 서버 찾기 응답
  3. 매개변수에서 동적 값 캡처
  4. 발생하는 모든 동적 값을 매개변수로 바꿉니다.
  5. 변경 사항 확인

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을 열고 함수를 작성(또는 Steps Toolbox 사용)하고 함수에 커서를 놓고 F1을 클릭하세요. VUGen 도움말에 익숙해지고 습관을 들이세요. 업계에서 일하다 보면 이 문제를 많이 다루어야 할 겁니다.

이제 기능의 세부 정보를 살펴보겠습니다.

web_reg_save_param(매개변수 이름, 왼쪽 경계, 오른쪽 경계)

속성 목록

변환 : 가능한 값은 다음과 같습니다.

HTML_TO_URL: HTML로 인코딩된 데이터를 URL로 인코딩된 데이터 형식으로 변환합니다.

HTML_TO_TEXT: HTML로 인코딩된 데이터를 일반 텍스트 형식으로 변환합니다. 이 속성은 선택사항입니다.

리디렉션 무시: Ignore Redirections=Yes로 지정하고 서버 응답이 리디렉션 정보(HTTP 상태 코드 300-303, 307)인 경우 해당 응답을 검색하지 않습니다. 대신 리디렉션 응답을 받은 후 리디렉션된 위치로 GET 요청을 보내고 해당 위치의 응답에 대해 검색이 수행됩니다.

이 속성은 선택사항입니다. 기본값은 "리디렉션 무시=아니요"입니다.

LB : 매개변수 또는 동적 데이터의 왼쪽 경계입니다. LB 값을 지정하지 않으면 데이터 시작 부분의 모든 문자를 경계로 사용합니다. 경계 매개변수는 대소문자를 구분합니다. 검색 텍스트를 추가로 사용자 정의하려면 하나 이상의 텍스트 플래그를 사용하십시오. 이 속성은 필수입니다. 경계 인수 섹션을 참조하세요.

찾을 수 없음: 경계가 발견되지 않아 빈 문자열이 생성되는 경우 처리 옵션입니다.

기본값인 "찾을 수 없음=오류"는 경계를 찾을 수 없을 때 오류가 발생하도록 합니다.

"찾을 수 없음=경고"(이전 버전에서는 "찾을 수 없음=비어 있음") 오류가 발생하지 않습니다. 경계를 찾을 수 없으면 매개변수 개수를 0으로 설정하고 스크립트 실행을 계속합니다. "경고" 옵션은 문자열이 발견되었는지 확인하고 싶지만 스크립트가 실패하는 것을 원하지 않는 경우에 이상적입니다.

주의 사항: 스크립트에 대해 오류 시 계속이 활성화된 경우 NOTFOUND가 "오류"로 설정된 경우에도 경계를 찾을 수 없으면 스크립트가 계속되지만 확장 로그 파일에 오류 메시지가 기록됩니다.

이 속성도 선택 사항입니다.

ORD: 일치 항목의 순서 위치 또는 인스턴스를 나타냅니다. 기본 인스턴스는 1입니다. "All"을 지정하면 매개변수 값이 배열에 저장됩니다. 이 속성은 선택사항입니다.

참고: ORD 대신 인스턴스 사용은 이전 버전과의 호환성을 위해 지원되지만 더 이상 사용되지 않습니다.

RB: 매개변수 또는 동적 데이터의 오른쪽 경계입니다. RB 값을 지정하지 않으면 데이터 끝까지의 모든 문자를 경계로 사용합니다. 경계 매개변수는 대소문자를 구분합니다. 검색 텍스트를 추가로 사용자 정의하려면 하나 이상의 텍스트 플래그를 사용하십시오. 이 속성은 필수입니다. 경계 인수 섹션을 참조하세요.

RelFrameID: 요청된 URL과 관련된 HTML 페이지의 계층 구조 수준입니다. 가능한 값은 ALL 또는 숫자입니다. 자세한 설명을 보려면 RelFrameID 속성을 클릭하세요. 이 속성은 선택사항입니다.

참고 : RelFrameID는 GUI 수준 스크립트에서 지원되지 않습니다.

세이브렌: 매개변수에 저장하기 위해 지정된 오프셋부터 찾은 값의 하위 문자열 길이입니다. 이 속성은 선택사항입니다. 기본값은 -1이며 문자열의 끝에 저장함을 나타냅니다.

오프셋 저장: 매개변수에 저장할 발견된 값의 하위 문자열 오프셋입니다. 오프셋 값은 음수가 아니어야 합니다. 기본값은 0입니다. 이 속성은 선택 사항입니다.

수색: 검색 범위 - 구분된 데이터를 검색할 위치입니다. 가능한 값은 헤더(헤더만 검색), 본문(헤더가 아닌 본문 데이터만 검색), 리소스 없음(모든 헤더와 리소스를 제외하고 HTML 본문만 검색) 또는 공통 (검색 본문, 헤더 및 리소스). 기본값은 모두입니다. 이 속성은 선택사항이지만 일반적으로 선호됩니다.