API 테스트 튜토리얼: API 테스트 자동화란 무엇입니까?
API 테스팅이란 무엇입니까?
API 테스팅 는 애플리케이션 프로그래밍 인터페이스(API)를 검증하는 소프트웨어 테스트 유형입니다. API 테스트의 목적은 프로그래밍 인터페이스의 기능, 안정성, 성능 및 보안을 확인하는 것입니다. API 테스트에서는 표준 사용자 입력(키보드)과 출력을 사용하는 대신 소프트웨어를 사용하여 API에 호출을 보내고 출력을 가져오고 시스템의 응답을 기록합니다. API 테스트는 GUI 테스트와 매우 다르며 애플리케이션의 모양과 느낌에 집중하지 않습니다. 주로 소프트웨어 아키텍처의 비즈니스 로직 계층에 집중합니다.
배경의 경우, API (응용 프로그래밍 인터페이스) 두 개의 개별 소프트웨어 시스템 간의 통신 및 데이터 교환을 가능하게 하는 컴퓨팅 인터페이스입니다. API를 실행하는 소프트웨어 시스템에는 다른 소프트웨어 시스템이 수행할 수 있는 여러 기능/서브루틴이 포함되어 있습니다. API는 두 소프트웨어 시스템 간에 수행할 수 있는 요청, 요청 방법, 사용할 수 있는 데이터 형식 등을 정의합니다.
API 테스트 자동화 환경 구축
API 자동화 테스트에는 API를 통해 상호 작용할 수 있는 애플리케이션이 필요합니다. API를 테스트하려면 다음을 수행해야 합니다.
- 테스트 도구를 사용하여 API 구동
- API를 테스트하기 위한 코드를 직접 작성하세요.
몇 가지 참고할 사항
- API 테스트는 GUI를 사용할 수 없다는 점에서 다른 소프트웨어 테스트 유형과 다르지만, 필수 매개변수 세트로 API를 호출하는 초기 환경을 설정한 후 최종적으로 테스트 결과를 검사해야 합니다.
- 따라서 API 자동화 테스트를 위한 테스트 환경을 설정하는 것은 다소 복잡해 보입니다.
- 데이터베이스와 서버는 애플리케이션 요구 사항에 따라 구성되어야 합니다.
- 설치가 완료되면 API 함수를 호출하여 해당 API가 작동하는지 확인해야 합니다.
API의 출력 유형
API의 출력은 다음과 같습니다.
- 모든 유형의 데이터
- 상태(예: 합격 또는 실패)
- 다른 API 함수를 호출합니다.
이 API 테스트 튜토리얼에서 위의 각 유형에 대한 예를 살펴보겠습니다.
모든 유형의 데이터
예: 두 개의 정수를 더하는 API 함수가 있습니다.
Long add(int a, int b)
숫자는 입력 매개변수로 주어져야 합니다. 출력은 두 정수의 합이어야 합니다. 이 출력은 예상 결과로 검증되어야 합니다.
다음과 같이 전화를 걸어야 합니다.
add (1234, 5656)
숫자가 정수 제한을 초과하는 경우 예외를 처리해야 합니다.
상태(예: 합격 또는 실패)
아래 API 기능을 고려하십시오 –
- 잠그다()
- 터놓다()
- 삭제()
True(성공한 경우) 또는 false(오류인 경우)와 같은 값을 출력으로 반환합니다.
더 정확한 테스트 케이스 즉, 모든 스크립트에서 함수를 호출한 후 나중에 데이터베이스나 애플리케이션 GUI에서 변경 사항을 확인할 수 있습니다.
다른 API/이벤트 호출
이 경우 API 함수 중 하나를 호출하면 다른 함수가 호출됩니다.
예를 들어 – 첫 번째 API 함수는 테이블에서 지정된 레코드를 삭제하는 데 사용될 수 있으며 이 함수는 차례로 데이터베이스를 새로 고치기 위해 다른 함수를 호출합니다.
API 테스트를 위한 테스트 사례:
API 테스트의 테스트 케이스는 다음을 기반으로 합니다.
- 입력 조건에 따른 반환 값: 입력을 정의하고 결과를 인증할 수 있으므로 테스트하기가 상대적으로 쉽습니다.
- 아무것도 반환하지 않습니다: 반환 값이 없는 경우 확인해야 할 시스템에서의 API 동작
- 다른 API/이벤트/인터럽트를 트리거합니다. API의 출력이 일부 이벤트나 인터럽트를 트리거하는 경우 해당 이벤트와 인터럽트 리스너를 추적해야 합니다.
- 데이터 구조 업데이트: 데이터 구조 업데이트는 시스템에 어떤 결과나 영향을 미치며, 이는 인증되어야 합니다.
- 특정 리소스를 수정합니다. API 호출이 일부 리소스를 수정하는 경우 해당 리소스에 액세스하여 유효성을 검사해야 합니다.
API 테스트 접근 방식
API 테스트 접근 방식 빌드가 준비된 후 API 테스트를 수행하기 위해 QA 팀이 수행하는 사전 정의된 전략 또는 방법입니다. 이 테스트에는 소스 코드가 포함되지 않습니다. API 테스트 접근 방식은 기능, 테스트 기술, 입력 매개 변수 및 테스트 사례 실행을 더 잘 이해하는 데 도움이 됩니다.
다음 사항은 사용자가 API 테스트 방식을 수행하는 데 도움이 됩니다.
- API 프로그램의 기능을 이해하고 프로그램 범위를 명확하게 정의합니다.
- 동등 클래스, 경계값 분석, 오류 추측 등의 테스트 기술을 적용하고 API에 대한 테스트 케이스 작성
- API에 대한 입력 매개변수를 적절하게 계획하고 정의해야 합니다.
- 테스트 케이스를 실행하고 예상 결과와 실제 결과를 비교합니다.
API 테스트와 단위 테스트의 차이점
단위 테스트 | API 테스트 |
---|---|
개발자가 수행합니다. | 테스터가 이를 수행합니다. |
별도의 기능이 테스트되었습니다. | 엔드투엔드 기능이 테스트되었습니다. |
개발자는 소스 코드에 액세스할 수 있습니다. | 테스터는 소스 코드에 액세스할 수 없습니다. |
UI 테스트도 포함됩니다. | API 기능만 테스트됩니다. |
기본 기능만 테스트됩니다. | 모든 기능적 문제가 테스트되었습니다. |
범위가 제한됨 | 범위가 넓어짐 |
보통 체크인 전에 실행됨 | 빌드가 생성된 후 테스트 실행 |
API 테스트 방법
API 자동화 테스트는 일반적인 SDLC 프로세스 외에 최소한 다음 테스트 방법을 포함해야 합니다.
- 발견 테스트: 테스트 그룹은 API에 의해 노출된 특정 리소스가 적절하게 나열, 생성 및 삭제될 수 있는지 확인하는 것과 같이 API에 문서화된 일련의 호출을 수동으로 실행해야 합니다.
- 사용성 테스트 : 이 테스트에서는 API가 기능적이고 사용자 친화적인지 확인합니다. 그리고 API가 다른 플랫폼과도 잘 통합됩니까?
- 보안 테스트: 이 테스트에는 필요한 인증 유형과 민감한 데이터가 HTTP 또는 둘 다를 통해 암호화되는지 여부가 포함됩니다.
- 자동 테스트 : API 테스트는 정기적으로 API를 실행하는 데 사용할 수 있는 스크립트 세트 또는 도구를 생성하는 것으로 마무리되어야 합니다.
- 선적 서류 비치: 테스트 팀은 문서가 적절하고 API와 상호 작용하는 데 충분한 정보를 제공하는지 확인해야 합니다. 문서는 최종 결과물의 일부여야 합니다.
최고의 API 테스트 사례:
- API 테스트 케이스는 테스트 카테고리별로 그룹화되어야 합니다.
- 각 테스트의 상단에 호출되는 API의 선언을 포함해야합니다.
- 매개변수 선택은 테스트 케이스 자체에서 명시적으로 언급되어야 합니다.
- 테스터가 쉽게 테스트할 수 있도록 API 함수 호출의 우선순위를 지정하세요.
- 각 테스트 케이스는 가능한 한 독립적이어야 하고 종속성으로부터 독립적이어야 합니다.
- 개발 과정에서 "테스트 체이닝"을 피하세요
- 삭제, 닫기 창 등과 같은 일회성 호출 기능을 처리하는 동안 특별한 주의를 기울여야 합니다.
- 통화 순서를 지정하고 잘 계획해야 합니다.
- 완전한 테스트 적용 범위를 보장하려면 API의 가능한 모든 입력 조합에 대한 API 테스트 사례를 생성하세요.
API 테스트에서 감지하는 버그 유형
- 오류 조건을 정상적으로 처리하지 못함
- 사용하지 않은 플래그
- 누락되거나 중복된 기능
- 신뢰성 문제. 연결 및 응답을 받기가 어렵습니다. API.
- 보안 문제
- 멀티스레딩 문제
- 성능 문제. API 응답 시간이 매우 높습니다.
- 발신자에게 부적절한 오류/경고
- 유효한 인수 값의 잘못된 처리
- 응답 데이터가 올바르게 구성되지 않았습니다(JSON 또는 XML)
API 테스트 자동화를 수행하는 방법
1) ReadyAPI
ReadyAPI RESTful, SOAP, GraphQL 및 기타 웹 서비스의 기능, 보안 및 로드 테스트를 위한 선도적인 도구입니다. 하나의 직관적인 플랫폼에서 ReadyAPI 테스트, ReadyAPI 성능 및 ReadyAPI 가상화라는 세 가지 강력한 도구를 얻을 수 있습니다. 이러한 도구를 사용하면 기능, 보안 및 성능/로드 테스트를 수행할 수 있습니다. 강력한 가상화 도구를 사용하여 API 및 웹 서비스를 모의할 수도 있습니다. 또한, 귀하는 쉽게 통합할 수 있습니다. CI/CD 파이프라인 빌드할 때마다.
주요 특징
- ReadyAPI는 어떤 환경에도 통합될 수 있습니다.
- 수백 개의 엔드포인트에 대해 대량 어설션을 빠르게 생성할 수 있는 스마트 어설션 기능이 있습니다.
- Git, Docker, Jenkins에 대한 기본 지원, Azure등
- 자동화된 테스트를 위한 명령줄을 지원합니다.
- 기능 테스트 및 작업 대기열의 병렬 실행을 지원합니다.
- Promo테스트 코드 재사용
- 테스트 및 개발 중에 종속성을 제거합니다.
14일 무료 평가판(신용카드 불필요)
다음 튜토리얼에서는 API 테스트를 자동화하는 방법에 대한 자세한 안내를 제공합니다.
게다가 API 테스트를 위한 다른 도구도 있습니다. 확인해보세요 LINK
API 테스트의 과제
API 테스트의 과제는 다음과 같습니다.
- 웹 API 테스트의 주요 과제는 다음과 같습니다. 매개변수 조합, 매개변수 선택 및 호출 순서 지정
- 사용 가능한 GUI가 없습니다. 애플리케이션을 테스트하기 위해 입력 값을 제공하기가 어렵습니다.
- 다른 시스템에서 출력을 검증하고 검증하는 것은 테스터에게는 약간 어렵습니다.
- 매개변수 선택 및 분류는 테스터에게 알려야 합니다.
- 예외 처리 기능 테스트가 필요하다
- 테스터에게는 코딩 지식이 필요합니다
결론
API는 비즈니스 로직 계층을 나타내는 클래스/함수/프로시저 세트로 구성됩니다. API가 제대로 테스트되지 않으면 API 애플리케이션뿐만 아니라 호출하는 애플리케이션에서도 문제가 발생할 수 있습니다. 소프트웨어 공학에서 없어서는 안될 테스트입니다.