API Test/POSTMAN2020. 8. 23. 08:00

Postman 에 대한이 과정에 오신 것을 환영합니다 . 저는 Postman의 깊은 곳으로 여러분을 데려다 줄이 여정을 향한 여러분의 운전 기사가 될 것입니다.

 

Postman에 대해 들어 본 적이 없거나 API라고 말한 적이 없더라도 Postman을 이해할 수 있도록 완벽하게 설계되었습니다. Postman은 API 테스트 도구이므로 API가 무엇인지 알아야합니다. 따라서이 자습서에서는 다음과 같은 API에 대한 다양한 주제를 살펴 봅니다.

 

  • API 란?
  • API 테스트
  • API 테스트에서 소프트웨어 테스터의 역할
  • API 테스트 및 단위 테스트.
  • 시험을 다루는 영역

첫 번째부터 시작하여 이제 API에 대한 학습으로 여정을 시작합니다.

 

API 란 무엇입니까?

API는 Application Programming Interface를 나타냅니다 . 기술적인 용어로 말하면 API는 다른 소프트웨어와 상호 작용할 수 있도록 응용 프로그램, 운영 체제, 라이브러리 등이 프로그래머에게 제공하는 일련의 절차, 기능 및 기타 액세스 지점입니다. 이해하셨나요?  API에 대해 자세히 살펴 보겠습니다.

 

예를 들어, 당신이 웨이터가 없는 식당에 갔다고 가정 해 봅시다. 웨이터가 없기 때문에 테이블 위에 놓인 메뉴를 보고 요리사에게 요청하여 음식를 준비합니다. 그러나 항상 그렇게 되지는 않습니다. 해당 음식 주문이 불가능하면 어떻게합니까? 다시 자리로 가서 다른 결정을 내려야합니다. 식당에는 많은 손님이 있는데 요리사가 주문을 받게 되므로 요리사의 음식준비 과정이 느려질 것입니다. 또한 우리가 다국어 세상에 살고 있다는 사실을 어떻게 잊을 수 있습니까? 외국인 요리사의 언어를 이해하지 못하면 어떻게합니까?  그래서 웨이터가 필요합니다. 웨이터는 인터넷 세계에서 API로 볼 수 있습니다. 웨이터가 와서 당신의 요청을 받아 요리사에게 건네고 응답으로 음식을 가져옵니다. 이 웨이터는 이중 언어를 구사하며 귀하의 (외국인 요리사와 귀하) 언어를 유창하게 구사합니다. 음식를 주문할수 없으면 어떻게합니까? 글쎄요, 웨이터는 당신이 잘못된 요청을했다고 미리 알고 있기 때문에, 그는 당신에게 음식을 주문할 수 없다는 것을 테이블에서 당신에게 말할 것입니다. 얼마나 많은 시간과 에너지가 절약됩니까? 이것이 바로 API가 하는 일입니다.

 

이미지를 사용하여 위의 비유를 시각적으로 묘사하면 API 세계에서 사용자로 작업하고 있음을 알 수 있습니다. 웨이터가 중개자 인 API로 작동하고 적절한 서버로 요청을받는 동안 요청을 합니다. 이 서버는 귀하의 요청을 처리하고 귀하에게 응답 할 것입니다. 위에서 말했듯이 서버 또는 애플리케이션은 주방에있는 요리사입니다. 그는 귀하의 요청을 처리하고 귀하가 원하는 음식을 요리 한 후 응답으로 귀하에게 다시 제시 할 것입니다. 방법과 매개 변수에 대해서는 나중에 자세히 설명하지만 여기서는 비유에서 취향과 취향에 따라 만드는 특별한 요청으로 생각할 수 있습니다. 예를 들어, 메뉴에서 무언가를 주문하고 더 매워야 한다고 명시적으로 설명합니다. 이것은 요리사가 당신의 요구에 따라 요리하는 데 도움이 될 것입니다.

 

API는 장치에서 요청을 가져오고 서버에서 응답을 가져옵니다 . 오늘날 API는 어디에나 있습니다. 우리는 API를 통해 많은 것을 달성했으며 셀 수 없습니다. 컴퓨터 과학이나 IT 산업에 종사하는 경우 API에서 벗어날 수 없습니다. API는 특정 요청에 따라 특정 응답을 가져 오는 데 도움이 됩니다. 예를 들어 항공편을 예약하는 동안 출발지, 목적지 및 출발 날짜 및 기타 변수에 따른 특정 항공편 결과가 필요합니다. 이를 위해 다른 항공사를 방문하여 다른 가격을 확인해야 할 수도 있습니다. 그러나 API를 통해 이것은 그렇게 어렵지 않습니다. 서로 다른 항공사의 서로 다른 API를 통해 항공권 비교사이트 (스카이스캐너 / 카약 / 구글플라이트)처럼 한 곳에서 특정 쿼리에 대한 각 항공사의 응답을 얻을 수 있습니다. 아마도 이제는 오늘날 API가 얼마나 광범위하게 사용되는지에 대한 아이디어를 얻었을 것입니다. 우리 모두는 API를 통해 연결됩니다. 온라인으로 제공되는 모든 서비스는 대부분 API를 통해 이루어집니다. 말했듯이 API는 어디에나 있습니다.

 

API 테스트

이제 API가 무엇이며 API가 현대적으로 상호 연결되고 전 세계적으로 분산 된 애플리케이션 및 서비스에 중요한 이유를 확인 했으므로 API 테스트가 중요한 이유를 이해하는 것이 중요합니다.

 

API 테스트는보다 안정적인 코드를 생성합니다. 그러나 역사적으로 테스트는 GUI 수준에서 수행되었습니다. 개발자가 작업을 마치면 QA 엔지니어에게 전달합니다. 엔지니어들은 제한된 시간을 가지고 있었기 때문에 최고 수준 인 GUI에서 코드를 테스트했습니다. 이것은 프런트 엔드 및 백 엔드 개발을 모두 포함합니다.

이것은 수동 테스트와 자동화 테스트 시작에 효과적이지만 민첩하고 지속적인 테스트 시대에는 적합하지 않습니다. GUI 테스트는 너무 취약하고 GUI 자동화 스크립트는 쉽고 시간이 많이 걸립니다. 그러나 더 중요한 것은 애플리케이션이 개발 중일 때 팀이 전체 시스템이 업데이트되고 GUI가 준비 될 때까지 기다릴 수 없다는 것입니다.

애자일 시대에 테스트는 가능한 한 빨리 API 수준에서 더 낮은 수준에서 이루어져야합니다. 개발자가 직접 할 수도 있습니다. API는 애플리케이션의 GUI가 아직 준비되지 않은 경우에도 테스트 할 수 있습니다. API 테스트 외에도 " API 계약API contracts " 때문에 개발이 완료되기 전에 생성 할 수도 있습니다.

 

API 또는 소프트웨어 / 애플리케이션에 있는 모든 API를 완벽하게 테스트해야합니다. 이것은 소프트웨어 테스터의 일이며 엄청난 책임을지고 있습니다. 완벽하게 작동하는 API는 완벽한 작동 애플리케이션으로 이어집니다. API를 테스트하면 향후 특정 시점에 발생할 수있는 애플리케이션의 많은 문제가 해결됩니다. API 테스팅에 사용할 수있는 많은 소프트웨어가 있으며 그러한 소프트웨어 중 하나가 Postman 입니다.

 

API 테스트를위한 소프트웨어 테스터의 역할 및 책임

API 테스터로서 다양한 웹 서비스, REST , SOAP  Micro Services에 대한 훌륭한 아키텍처 지식이 있어야 합니다 .

  1. GET, POST, DELETE 등과 같은 모든 웹 메소드를 사용할 수 있어야합니다.
  2. 응답, 응답 시간, 오류 코드 확인
  3. Json 파서를 사용하여 XML 및 Json 본문의 유효성을 검사 할 수 있습니다.
  4. OAuth 및 OAuth2 인증 메커니즘을 사용해야합니다.
  5. 웹 서비스에 대한로드 및 보안 테스트
  6. API 문서를 읽고 이해할 수 있습니다.
  7. 많은 수의 테스트 케이스와 시나리오를 도출 할 수 있습니다.
  8. API 및 DB 데이터 요소의 유효성을 검사하기 위해 SQL 쿼리에 적합해야합니다.
  9. 자신이 선택한 도구의 마스터가 되십시오. SOAP UI 및 Postman은 자동화 도구가 아닙니다. Rest Assured, Rest Sharp, Node 모듈은 API 테스트를위한 오픈 소스 라이브러리입니다.

 

 

 

API 테스트 및 단위 테스트

API 테스트와 단위 테스트는 일부 테스터에 의해 동일한 것으로 간주되지만 실제로는 다릅니다. 단위 테스트는 개발자 또는 테스트 엔지니어가 수행하며 클래스별로 또는 단일 구성 요소 수준에서 수행됩니다. 동기는 모듈이 필요한 기능을 제공하는지 확인하는 것입니다. 개발 팀은 단위 테스트 활동을 모니터링하고 필요할 때마다 필요한 사항을 변경합니다. 주요 강조점은 각 장치 또는 모듈이 독립적으로 완벽하게 작동하는지 여부입니다. 즉, 강력한 모듈 설계를 보장하려면 종속성을 최소화해야합니다.

반면에 API 테스트 는 기본적으로  테스트  중인 시스템의 최종 출력과 관련된 블랙 박스 테스트 입니다. API 테스트는 빌드가 준비된 후에 만 ​​실행되며 최종 사용자가 상호 작용할 사용자 인터페이스이므로 시스템 전체를 나타냅니다.

API 테스트는 주로 시스템 아키텍처의 비즈니스 로직 계층을 테스트하는 것을 목표로합니다. API 테스트는 주로 QA 팀에서 처리하므로 특정 목적을 위해 특정 빌드를 기반으로 API를 실행해야합니다.

API 테스트는 또한 단위를 시스템의 일부로 테스트하는 반면 단위 테스트는 일반적으로 나머지 시스템과 상대적으로 분리 된 상태에서 단위를 테스트합니다 . 따라서 API 테스트는 엔드 투 엔드 테스트이기도합니다. 이것은 우리가 API 테스트에서 전체 소프트웨어를 테스트 할 때 해당 소프트웨어를 만드는 모듈도 분명히 테스트된다는 것을 의미합니다. 그러나 단위 테스트를 수행 할 때는 해당 모듈의 기능에만 초점을 맞추고 나머지 모듈 / 소프트웨어와 완전히 분리 된 작동을 확인합니다.

 

시험을 다루는 영역

도구를 통해 API를 테스트 할 때 일반적으로 많은 오류가 발생합니다. 이러한 오류는 API에만 관련된 것이 아니라 소프트웨어 오류마다 서버 오류에 따라 다를 수 있습니다. 이것은 소프트웨어 테스터의 작업을 생각보다 더 중요하고 넓게 만듭니다. 소프트웨어는 단계적으로 빌드되고 제공되므로 테스트도 마찬가지입니다. 소프트웨어가 개발 단계에 있으면 그에 따라 테스트와 사례가 빌드됩니다. 이를 통해 개발자는 서버 또는 네트워크 등의 오류를 확인할 수 있습니다. 테스트 사례를 발전시키고 업그레이드하는 생산 단계와 같은 다른 소프트웨어 단계에서도 마찬가지입니다. 테스트를 다루는 영역은 가능한 한 넓어야 합니다. 소프트웨어가 프리미엄 품질로 구축되고 피드백 팀이 최소한의 티켓을받을 수 있도록 오류의 모든 작은 가능성을 커버해야합니다.

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터