이 글은 성능테스트를 로드런너를 하는 분이 이해를 하실 수 있는 내용이므로,
관련없는 분들은 바로 패쓰 하시기 바랍니다. ^^;
성능 테스트를 수행할때 반드시 해야하는 작업이 있다.
바로 오류 체크 로직을 넣는 작업이다.
(가장 노가다 성이 강하고, 짜증나는 작업중 하나다. ^^)
이 작업을 왜 해야 하냐면...
성능테스트를 할때 서버에 부하를 주면 서버에서 오류를 내 뱉을 수가 있다. 보통의 성능 테스트 툴에서는 리턴 코드(HTTP Return code)가 200이면 정상적으로 처리했다고 간주하기 때문에, 오류 메시지를 보여주는 화면을 개발해 놓았다면 실제 오류가 발생한다고 하더라도 정상적으로 조회되었다고 간주해 버린다.
예를 들어 구글에서 "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"라고 조회를 하면,
반드시 Blog2Book 이라는 단어가 검색 결과에 있어야만 한다.
그런데 만약 구글에서 가끔 보여주는 Oppppps 라는 메시지가 넘어온다고 하더라도,
해당 페이지의 헤더에 리턴코드가 200 으로 넘어온다면, 시스템은 헛돌게 되고 성능이 좋은 것으로 잘못 판단할 수 있다.
그래서 다음과 같은 오류 체크 로직을 넣어야만 한다.
(확인하고자 하는 단어가 Blog2Book 일경우
Bl로 시작하고, ok로 끝나는 단어를 검색해서 og2Bo라는 단어가 그 사이에 있는지 확인하는 경우의 예이다)
lr_start_transaction("Search Java Performance");
...
//검증을 원하는 요청 앞에 다음의 코드를 추가해야 한다. web_reg_save_param("ErrorCheck",
"LB=Bl",
"RB=ok",
"NotFound=WARNING",
"Search=Body",
"IgnoreRedirections=Yes",
LAST);
web_submit_data("XXXX",
...
...
//그리고 요청이 끝난 이후에 다음과 같이 체크를 한다. if (strcmp(lr_eval_string("{ErrorCheck}"), "og2Bo")==0)
lr_end_transaction("Search Java Performance", LR_PASS);
else {
lr_end_transaction("Search Java Performance", LR_FAIL);
}
이렇게 로직을 해 놓으면 에러가 몇건이나 발생하는지 확인할 수 있다.
만약 확인하고자 하는 부분이 Transaction의 중간에 있다면, 다음과 같이 오류 메시지를 정의하면 될 것이다.
if (strcmp(lr_eval_string("{ErrorCheck}"), "og2Bo")!=0)
lr_error_message("Search Java Performance Error");
성능 테스트에 대한 더 자세한 내용은 Blog2Book 테스트 책에서~~~ ^^;
추가로 lr_get_transaction_duration("트랜젝션이름") 함수를 사용하면 해당 트랜잭션의 응답속도를 얻을 수 있으며, 이 값이 허용치 이상일 경우 ERROR로 처리할 수도 있다.