본문 바로가기

프로그래밍/Java

newman 테스트 자동화

728x90
반응형

API를 테스트 할 때 POSTMAN 을 많이 활용합니다.

 

API 배포 후 테스트 자동화를 위해 Spring Batch 로 command line 기반으로 collections 를 실행 가능한 Newman 을 사용해 보았습니다. 

 

요구사항은 아래와 같이 정의하였습니다.

  • 서버별 주기적인 서비스 Flow 테스트
  • 배포가 되면 바로 서비스 Flow 테스트
  • 도메인에 해당하는 모든 서버에 대해 테스트
    • Eureka에서 도메인별 서버 리스트 조회
  • 테스트 결과에 대한 리포트
    • reporter로 html 생성하여 이메일 발송
  • 테스트 스크립트 버전 관리

Newman 설치 방법은 아래와 같습니다. newmannewman-reporter 설치하였습니다.

yum install -y npm
# https://github.com/postmanlabs/newman 
npm install -g newman 
 
# https://github.com/DannyDainton/newman-reporter-htmlextra 
npm install -g newman-reporter-htmlextra 

Newman 기본 명령어는 아래와 같습니다.

$ newman run examples/sample-collection.json
 
# collection file 은 URL 형태로도 가능
$ newman run https://www.getpostman.com/collections/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65-JsLv 
 
# reporter 사용
$ newman run examples/sample-collection.json -r cli,json

cli 옵션을 통해 콘솔에 결과를 노출한 결과는 아래와 같습니다.

java 단에서는 Runtime.exec의 인자로 newman을 실행하였습니다.

newman run http://127.0.0.1:80/v1/job/newman/collection/STROLL-API-MAP \
-e http://127.0.0.1:80/v1/job/newman/env/DEV.postman_environment.json \
-d http://127.0.0.1:80/v1/job/newman/data/STROLL-API-MAP-DEV \
-r cli,htmlextra --reporter-htmlextra-export /data/stroll-batch-map/STROLL-API-MAP-DEV.html

 

DiscoverClient를 통해 Eureka에서 도메인에 해당하는 서버 리스트를 받아오고

/actuator/info를 통해 각 서버의 application Version이 변경했는지 주기적으로 체크하였습니다.

html report 파일을 파싱하여 오류가 발생한 경우 smtp를 통해 html report 파일을 담당자에게 발송하였습니다.

 

728x90
반응형