NTAF?

NTAF?

image

NTAF(NHN Test Automation Framework)FitNesseSTAF의 장점을 결합하여 개발된 테스트 자동화 프레임워크이다. STAF의 분산환경 지원기능/재사용성/확장성과 FitNesse의 효율적인 테스트 케이스 디자인 및 레포팅 기능이 NTAF에서 지원된다.



NTAF Architecture

image

NTAF는 아래와 같은 구조로 이루어져 있다. FitNesse의 구조에 따로 NTAF Fixture를 정의하여 Fit Control이 가능하도록 지원한다.



NTAF의 Keyword

NTAFFitNesse에서 지적되어오던 획인적인(Sequencial)테스트의 흐름을 사용자가 다양한 키워드를 통해 컨트롤 할 수 있도록 하였다.



조건문 지원 키워드

IF/ELSEIF/ELSE
1
2
3
|start_if|{expr:$v$}|
      ...
|end_if|

조건문을 통해 해당 조건을 만족하였을 경우, 아래 테이블을 수행한다.


Loop 지원 키워드

Loop
1
2
3
|start_loop|{var: $v$}, {from: 1}, {to: 10}, {by: 1}, {while: $RC$ == 0}|
      ...
|end_loop|

while 키워드와 until 키워드를 이용하여 조건을 지정할 수 있다. 해당 조건(from, to)만큼 by 간격으로 반복 수행을 수행한다(optional).


Iterator
1
2
3
|start_iterate|{var: $v$}, {in: a,b,c}, {indexvar: $idx$}|
      ...
|end_iterate|

해당 집합의 수만큼(in) 반복 수행을 수행한다.


Break/Continue
1
2
3
|command_break|
	...
|command_continue|

반복문을 제어하는 역할을 담당, Break문을 만나면 종료를, Continue문을 만나면 해당 반복문의 처음으로 돌아간다.


Sequencial 수행 지원 키워드

Sequence
1
2
3
|start_sequence|
      ...
|end_sequence|

Sequence 키워드를 통해 해당 테이블은 순차적으로 하나씩 수행된다. 이 키워드는 병렬 키워드 안에서 순차 실행이 필요할 경우 유용하다.


Parallel 수행 지원 키워드

Parallel
1
2
3
|start_parallel|
      ...
|end_parallel|

각각의 테이블에 대해 별도의 Thread를 생성하여 병렬로 수행된다(순서는 보장되지 않음).


Parallel Iterate
1
2
3
|start_paralleliterate|{var: $v$}, {in: a,b,c}, {indexvar: $idx$}|
      ...
|end_paralleliterate|

Parallel 키워드와 Parallel Iterate 키워드를 결합한 키워드이다. in에 해당되는 만큼 반복을 수행하면서 각 테이블들이 별도의 Thread로 동작한다. (마찬가지로 순서는 보장되지 않음)


Time 수행 지원 키워드

Timer
1
2
3
|start_timer|{duration: 3h}|
...
|end_timer|

Timer키워드를 사용하여 지정된 시간(duration) 만큼의 시간동안 테스트를 진행할 수 있다. Timer키워드를 사용할 경우 반복 키워드(Loop, Iterator)등을 같이 사용하면 더욱 효과적인 테스트가 가능하다.


기타 키워드

Log
1
|command_log|Log test.|

테스트 수행도중에 Log를 걸어 System out log를 뽑아내준다. 테스트 수행 후 결과를 테스트 로그페이지에서 확인 할 수 있다.


Var
1
2
3
4
5
6
7
8
9
10
11
12
13
|command_var|$v$=0|

|command_var|$v$++|

|command_var|$v$--|

|command_var|$v$+1|

|command_var|$v$-1|

|command_var|$v$*1|

|command_var|$v$/1|

심볼릭($)으로 선언된 변수에 대해 연산을 수행할 수 있다. 변수의 값은 다음 세번째 셀에 표시되고 이 때, 변수는 숫자값을 가지고 있어야 한다.


StafCmdFixture

image

StafCmdFixtureFitNesse테이블을 이용하여 STAF의 명령어를 직접 호출할 때 유용하다. 기존의 STAF, STAX에서 시나리오 별 테스트 시 문제점과 복잡한 테스트케이스 구성을 FitNesse테이블로 간단하게 설계할 수 있다.

또한, 기존의 NTAF의 테스트 케이스와 같이 연계하여 분산환경하에서 다양한 테스트를 수행할 수 있다.