관리 메뉴

ITGeine

Postman API Test - Jenkins 연동 본문

테스트 자동화/Postman

Postman API Test - Jenkins 연동

Nick9 2019. 10. 29. 17:56

목표

Postman에서 Test script를 작성한 뒤, Jenkins를 연동하여 주기적으로 Run을 시키고 결과를 export할 수 있도록 함



Postman API

postman에서 제공하는 API를 사용하여 생성한 collections, environments 에 대한 uid를 얻을 수 있다.

아래는 collection에 대한 GET API 를 호출했을 때 결과이다.


id, name, owner, uid 가 리턴되는데 jenkins 연동에 쓰이는 데 필요한 값은 uid이다.



 


Build execute shell

아래와 같이 호출할 경우 json 파일 업로드 없이 postman 에 저장된 collcection, environment 값을 가져와 run 하게 된다.

 

newman run https://api.getpostman.com/collections/{{collections_uid}}?apikey={{workspace_apiKey}} -e https://api.getpostman.com/environments/{{environment_uid}}?apikey={{workspace_apiKey}} --reporters cli,junit,htmlextra --reporter-junit-export "newman/{{test_result_name}}.xml"



기타 빌드 환경


 



[빌드 후 조치] 항목에 shell 에서 입력한 {{test_result_name}}.xml 을 지정한다.


연동 후 빌드 결과

빌드를 하면 위와 같이 Fail 결과가 나오게 된다.

- pm.test 로 지정한 테스트 이름이 된다.


pm.test('errorCode must be 0', function(){

    pm.expect(jsonData).to.have.property('errorCode', 0);

    pm.expect(jsonData).to.have.property('errorMessage', 'SUCCESS');

});


위 Test 항목이 실패했다면 'errorCode must be 0' 이 뜨고, 클릭하여 상세로 볼 경우 postman에서 지정한 API 이름이 뜬다. (API_xxx_001)
어떤 항목이 실패했는지 확인하는데 스텝이 있어서 테스트 이름을 확인하고자 하는걸로 명시하거나, TC 기반인 경우 TC로 하는 것이 가독성에는 좋을 것 같다. (귀찮겠지만..)


그런데 Jenkins에서 Fail 나는 항목들이 실제로 호출했을때는 Pass로 잘 떨어진다.
이 부분은 좀더 확인해봐야겠다.

 


'테스트 자동화 > Postman' 카테고리의 다른 글

Javascript 현재 시간 구하기  (0) 2019.10.30