성능 테스트 기법 (6) ToEncoding Function
Updated:
성능 테스트 수행을 위해 Script를 작성하다 보면, 다수의 한글 입력필드가 포함되어 있는 입력 화면을 만나게 될 때가 있습니다. 저장 업무를 수행하는 Transaction에 대해 Recording을 수행한 후 Script 결과를 살펴보면, 한글 부분이 깨진 채로 Script 가 저장되어 재사용이 어려운 경우가 가끔씩 발생합니다. 이번 글에서는, 이런 경우에는 어떻게 처리해주면 좋을지, 그 현상과 방법에 대해 간단히 살펴보도록 하겠습니다.
1. 입력화면의 Script 작성 및 입력값 확인
1) 고객정보 입력 화면의 Script 확인
아래의 화면 예시와 같이, 다양한 항목의 정보들을 입력한 후 저장 버튼을 클릭하는 Transaction이 있을 때, 입력 필드들 중에는 숫자나 영문으로 된 것들도 있지만, 이름, 주소, 상호명 등과 같이 한글로 되어있는 입력값들도 함께 구성되어 있는 경우가 많습니다.
해당 화면에서 업무 절차에 따라 Silk Performer로 Recording 한 후 Script를 살펴보면, 숫자로 된 값 등은 정상적으로 Script에 반영되었으나, 고객 이름이나 주소 등과 같이 한글로 된 부분들은 알수없는 문자로 깨져서 Script에 저장되어 있는 것을 보실 수 있습니다.
한편, Script에 입력값이 정상적으로 작성 되었다면, 아래의 예시와 같이 입력값 앞뒤로 역슬래쉬( \ )와 큰따옴표( “ )로 구분되어 있어야 합니다.
\"zpcd\":\"10904002\"
하지만, 위의 사례에서와 같이 한글이 깨진 채로 저장된 Script의 오른쪽 끝 부분을 살펴보면, 해당 부분이 아예 사라진 상태임을 확인할 수 있습니다.
2) 정상 입력값 확인하기
해당 기능을 구현한 개발자의 지원을 받아 깨진 입력값들을 확인하고, 실제 저장되는 값들은 전체 필드 중 어떤 것들인지 바로 확인할 수 있다면 가장 좋겠지만, 성능테스트가 수행되는 시점은 개발 및 통합 테스트로 개발자분들이 가장 바쁜 시기이기도 해서, 원활한 지원을 받기 어려운 경우도 많습니다.
다행인 것은, 크롬의 개발자모드 화면에서 Script 작성 대상의 저장 기능을 수행해보면, 한글 저장 부분에 해당하는 전문 내용을 직접 확인해볼 수 있도록 지원해 준다는 점입니다.
예시 기능에서는 크롬 브라우저 왼쪽 리스트에서 우리가 확인하고자 하는 기능인 XXXCustInfo를 선택한 후, Header값 하단의 Request Payload에서 ‘View Source’를 클릭해보면 해당 전문의 정상적인 값들을 확인하실 수 있습니다.
2. ToEncoding Function 활용하기
상용 성능 테스트 자동화 도구의 좋은 점은, Online Help 기능을 상세하게 제공하고 있다는 점입니다. Silkperformer Help로 들어가서 한글깨짐현상과 관련된 ToEncoding Function 기능과 예시를 찾아보면 다음과 같습니다.
ToEncoding Function
Action
Converts the given ANSI string into the string of the codepage that has been selected by the SetEncoding function.
Syntax
ToEncoding( in ParamName : string ): string;
Example
dcltrans
transaction TMain
var
sResult : string;
begin
SetEncoding("UTF-8");
WebPageUrl("http://testsite.company.com.cn");
WebParseHtmlBound(sResult, STRING_COMPLETE, "Home", "Street");
WebPageLink(ToEncoding("画像"), "画像 - Company 検索");
writeln(FromEncoding(sResult));
writeln("http://testsite.company.com.cn has the codepage" + GetEncoding() + " set");
end TMain;
3. ToEncoding 기능을 Script 한글 변환에 사용하기
Silk Performer의 Script에서 작성된 전문과 크롬 개발자 모드에서 확인된 전문을 나란히 놓고 비교해 보면, 후자의 경우, 큰따옴표(“)로 구분되었다는 점을 제외하면 동일한 내용과 구조입니다.
{"custNm":"조마루감자탕삼송점","userCust...}
깨진 글자들을 한글로 바꾸어주기 위해서는 수정할 부분들을 각각 ToEncoding 기능을 이용해 변환작업을 수행해 주면 됩니다. 앞서 말씀드린 대로, Script에 저장시 한글이 깨지면서 끝나는 부분에 역슬래시와 큰따옴표가 같이 사라진 상태이기 때문에, 해당 부분을 감안하여 아래와 같이 Script에 수정하여 작성해 줍니다.
{\"custNm\":\""+ToEncoding("조마루감자탕삼송점")+"\","userCust...}
4. 반영된 Script 수행으로 결과 확인해 보기
Script 보완이 완료되었다면, 실행해서 그 결과를 바로 확인해 보실 수 있습니다. 저장 Transaction의 Script는 조회 업무에 비해 작업이 번거롭긴 하지만, 실제 Script를 돌려보면 대상 시스템의 사용자 화면에 정상적으로 등록되고 있는지, 반복 수행시 누적되어 계속 등록되고 있는지 바로 확인이 가능하다는 장점이 있습니다.
단일 사용자에 의한 정상적인 등록이 확인 되었다면, 이후 작업은 동일 사용자나 동일 데이터 저장으로 인해 DB Lock이 걸리지 않도록, 다수 사용자 ID 및 저장 대상 테스트 데이터를 PJT에 요청하여 충분히 확보한 후 Script에 파라미터 처리해 줌으로써, 저장 업무에 대한 Script 준비가 마치게 됩니다.
이상으로, 저장 업무의 부하를 주어야 하는 상황에서 한글깨짐으로 인해 정상적인 저장 Transaction이 수행되지 않을 때 해결 방법에 대해 살펴 보았습니다. 감사합니다.
[끝]