don't stop believing

API 자동화 테스트 예제 작성과 설명 1 (python) 본문

Testing Automation/Gauge

API 자동화 테스트 예제 작성과 설명 1 (python)

Tongchun 2018. 6. 7. 12:00

Python을 사용하는 기본 예제를 만들어 보겠습니다.

만들려는 예제는 API 테스트입니다.


다른 예제들이 보고 싶다면 아래 url에서 확인할 수 있습니다.

https://github.com/getgauge-examples


그리고 Gauge Python Document는 아래 url입니다.

http://gauge-python.readthedocs.io/en/latest/index.html


Gauge Document: https://docs.gauge.org/latest/index.html


아래 작성하는 API 테스트 기본 예제를 보신 후 다른 examples를 보시면 이해가 빠를듯 합니다.

자 이제 시작해 봅시다.

먼저 적당한 폴더를 만들고 gauge 프로젝트를 초기화해 줍니다.

저는 폴더를 macaron이라고 만들었습니다. 사내 인트라넷용 api 서버가 있는데 그쪽으로 연결해 api 테스트를 진행하겠습니다.

$ cd ~/Documents/Gauge/macaron/
$ gauge init python
Downloading python.zip
.
Copying Gauge template python to current directory ...
Successfully initialized the project. Run specifications with "gauge run specs/".

참고로 저는 Mac에서 작업합니다. Directory 경로 설명을 제외하고는 guage 명령은 Windows에서도 동일합니다.

finder로 gauge 기본 파일들이 생성되었는지 확인합니다.

이제 Visual Studio Code를 실행하고 해당 Directory를 열어줍니다. 


macaron 폴더에 gauge init python으로 프로젝트를 초기화 하면 위와같이 파일이 생성됩니다. 기본 sample 파일들입니다.

폴더 이름은 프로젝트명으로 됩니다. 그래서 대문자로 MACARON이라고 되어 있네요.


.vscode 폴더안의 json 파일은 gauge 파일이 아닌 Visual Studio Code의 설정 파일들입니다.


env 폴더는 gauge 환경 설정에 대한 파일이 있습니다.

default 폴더안에 default.properties와 python.properties는 gauge의 초기 설정값들이 저장되어 있습니다.


logs 폴더안의 lsp.log는 gauge가 실행하면서 찍히는 로드들이 저장됩니다.


specs 폴더안의 example.spec파일은 실제 테스트에 사용되는 시나리오가 정의되는 파일입니다.

spec 파일을 여러개 만들어 관리할 수 있습니다.


step_impl 폴더안에는 python파일들이 있습니다. __init__.py 파일은 python의 내부 package 등을 정의하는 directory 구조로 되어 있습니다.

step_impl.py 파일은 example 코드 입니다. example 코드는 영어 자음을 골라내는 함수들입니다.


나머지 .gitignore, manifest.json, requirements.txt는 설정에 대한 파일들입니다.


실제 gauge를 이용해 API 테스트 자동화를 작성할때 가장 많이 사용하는 내용은 시나리오가 정의되는 spec 파일과 step_impl 폴더안의 python 파일들입니다.


파일 구조와 내용을 확인했다면 바로 example 코드를 실행해 봅시다.

Visual Studio Code에서 바로 터미널 명령을 사용할 수 있습니다. gauge run spec 명령으로 gauge를 실행합니다.


파란색으로된 # Specification Heading은 example.spec 파일의 header 입니다.

노란색의 ## Vowel counts in single word와 ## Vowel counts in multiple word는 테스트 시나리오 입니다.

노란색 테스트 시나리오 옆에 녹색 체크 표시는 시나리오 안에서 호출되는 함수가 두개(씩) 있다는 뜻입니다.


위에서 보면 Python 버전이 2.7.10으로 되어 있습니다. gauge 실행은 Python2.x와 3.x 모두 지원하고 있습니다. 하지만 python 함수 작성에 Python3.6 버전을 사용할 것이기 때문에 gauge 실행에 사용되는 Python 버전을 3.6으로 변겨해 보겠습니다.


gauge 폴더에서 env/default/python.properties 파일에서 GAUGE_PYTHON_COMMAND 명령에 python3로 변경해 줍니다.


변경후 다시 gauge를 실행하면 python3.6.5로 변경되어 있는 것을 확인할 수 있습니다.


html-report로 확인해 줍니다.

gauge 실행 메시지에 html-report경로가 나와있습니다.

/Users/tongchunkim/Documents/Gauge/macaron/reports/html-report/index.html

해당 경로로 이동해 html파일을 실행해 봅니다.

html-report파일은 매번 gauge를 실행할때 마다 덮어써집니다. 만약 실행할때마다 report를 남기고 싶다면 설정에서 변경할 수 있습니다.

env/default/default.properties 파일에서 overwrite_reports를 false로 변경하면 gauge 실행시 마다 report를 남기게 됩니다.

다시 gauge를 실행하면 날짜+시간 폴더가 생성되고 하위에 html파일이 생성됩니다.



여기까지 하고 다음으로 넘어 갑니다.


Comments