기록하는 습관

테스트 자동화 (1) - Newman 본문

개발/Test

테스트 자동화 (1) - Newman

로그뉴 2022. 7. 12. 13:27

##1. Newman 이란?

Newman은 포스트맨을 cmd/터미널에서 실행시킬 수 있는 러너.

포스트맨에 만들어 놓은 컬렉션과 환경 변수를 지정해서 실행하고 테스트할 수 있다.

일반적으로 서버는 윈도우보다는 Unix 계열 OS를 많이 사용하기 때문에 newman을 설치해서 배치성이나 api 자동화 테스트하는 데 사용을 많이 한다.

 

Newman 을 사용하면 좋은 점

  • 수동적이고 반복적으로 GUI를 조작해야하는 방식에서 벗어날 수 있다.
  • Terminal상에서 실행하였을 시 바로 Feedback을 확인할 수 있다.
  • 각종 CI/CD에 적용할 수 있다.

 

##2. 3가지 적용 방법

1) URL

Postman의 Web버전에서 Collection단위로 share하는 기능이 있다. 해당 기능을 이용하여 Public한 URL을 습득한 후, 터미널에서 아래와같이 실행해주면 된다.

  • $newman run {COLLECTION_URL}

2) JSON

Collection을 json형태로 export한 다음, json파일을 parameter로 넘겨 실행하는 방법

  • $newman run {filePath/COLLECTION.json}

 

3) API

API를 이용하여 실행하는 방법

  1. 일단 POSTMAN에서 API Key를 발급받습니다.
  2. 이후 해당 API Key를 가지고 Collection List를 조회합니다.
  3. 조회한 내용에서, 실행하고자하는 Collection의 uid 라는 element를 확인합니다.
  4. 실행하고자 하는 Collection의 environment와 그 variable들을 확인합니다.
  5. 위에서 얻은 정보들을 가지고 newman을 실행시킵니다.

Using Newman with the Postman API
1 Generate an API key
2 Fetch a list of your collections from: https://api.getpostman.com/collections?apikey=$apiKey
3 Get the collection link via it's uid: https://api.getpostman.com/collections/$uid?apikey=$apiKey
4 Obtain the environment URI from: https://api.getpostman.com/environments?apikey=$apiKey
5 Using the collection and environment URIs acquired in steps 3 and 4, run the collection as follows:

$ newman run "https://api.getpostman.com/collections/$uid?apikey=$apiKey" \
    --environment "https://api.getpostman.com/environments/$uid?apikey=$apiKey"

 

 

##3. 예시

실행 명령어

$ newman 컬렉션파일명.json -e 환경변수파일명.json # 환경변수를 사용한다면 -e 플래그와 함께 사용한다.

ex) $ newman run datacenter-internal.json -e datacenter_dev.postman_environment.json

 

주의사항

요청 중, form-data로 파일을 가지고 있는 요청이 있다면 .json 파일에 수동으로 파일 경로에 대한 정보를 기재해 주어야 한다.

 

참고사항

젠킨스 관련 에러 해결

  • npm: command not found
    1. 플러그인 설치: Jenkins 관리 → 플러그인 관리 → 설치된 플러그인 목록 → NodeJS 설치 되어 있는지 확인
      1. 안되어 있으면, 설치 진행
    2. Jenkins 관리 → Global Tool Configuration → NodeJS 17.x version으로 추가 설치 후 적용
      1. 해당 방법으로 성공.
  • newman: command not found

 

 

참고 링크

'개발 > Test' 카테고리의 다른 글

[Test] Redis 저장 (for vs. stream)  (0) 2022.07.13
[Test] Redis 조회 테스트  (0) 2022.07.13
Comments