태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Automize your test case

오라클 2008.07.04 17:54
고객사의 성능 문제를 해결하는 과정이나 세미나를 준비하는 과정에는 많은 경우 테스트가 뒤따른다. 가능한 한 테스트를 통해 재현하려고 노력한다. 재현이 되면 해결책은 뒤따라 오는 경우가 많다.

Test Case를 만들고 이를 재현하는 과정에서 중요한 것 중의 하나는 자동화(Automization)를 하라는 것이다. 아래 간단한 예를 통해 Test를 자동화하는 것이 얼마나 쉽고 또 강력한지 공감해 보자.

아래 스크립트는 아래와 같은 일련의 내용을 자동화한 것이다.


특정 Query에 대해 10046 Trace를 수행하고 이 파일에 대해 tkprof를 수행해서 그 결과를 텍스트 파일로 본다.



Toad나 Orange같은 툴에 익숙한 사용자라면 위의 작업을 하나의 스크립트로 자동화하는 것이 가능할까? 하고 의문을 가질 수 있을 것이다. 하지만 다음과 같이 정말 간단하다.

-- test.sql
@trace_on 10046 12

select count(*) from t1;

@trace_off

@trace_file

@tkprof trc1.out

ed trc1.out

각 스크립트 소스를 보면 그 비밀을 알 수 있다.

-- trace_on.sql
alter session set events '&1 trace name context forever, level &2';

-- trace_off.sql
alter session set events '&1 trace name context off';

-- trace_file.sql
-- trace_file_name
column trace_file_name new_value trace_file

select
  d.value||'/'||p.value||'_ora_'||s.spid||'.trc'
  as trace_file_name
from
  (
  select value
  from v$parameter
  where name = 'instance_name'
  ) p,
  (
  select value
  from v$parameter
  where name = 'user_dump_dest'
  ) d,
  (
  select spid
  from v$process
  where addr = (
    select paddr
    from v$session
    where sid = (select sid from v$mystat where rownum = 1)
    )
  ) s
;

prompt &trace_file

-- tkprof
ho tkprof &trace_file &1


간단한 스크립트 명령 몇 개로 언뜻 복잡해 보이는 작업을 아주 손쉽게 자동화할 수 있다. 이런 자동화의 장점은 재활용성의 증가, 테스트 시간 단축, 수작업에 의한 실수 방지 등 매우 다양하다.

잊지 말자. 자동화!!!


신고

'오라클' 카테고리의 다른 글

Read Consistency In Function  (2) 2008.07.14
Why Creativity Matters?  (0) 2008.07.07
Automize your test case  (0) 2008.07.04
Optimizing Unoptimizable SQL  (3) 2008.07.01
Subquery is just like Join  (4) 2008.06.22
Trackback 0 : Comment 0

Write a comment

티스토리 툴바