웹 서비스 테스트 튜토리얼: 테스트 방법? 예를 들어 배우기
웹서비스란 무엇입니까?
웹 서비스는 두 개의 애플리케이션/머신이 기본 아키텍처나 기술과 상관없이 데이터를 교환하는 통신 메커니즘 또는 매체입니다.
웹 서비스 테스트란 무엇입니까?
웹 서비스 테스트 웹 서비스의 유효성을 검사하는 소프트웨어 테스트 유형입니다. 웹 서비스 테스트의 목적은 API(응용 프로그램 인터페이스)의 기능, 신뢰성, 성능 및 보안을 확인하는 것입니다. 웹 서비스 테스트는 어떤 경우에는 단위 테스트와 유사합니다. 웹 서비스를 수동으로 테스트하거나 자체 자동화 코드를 생성하거나 다음과 같은 기성 자동화 도구를 사용할 수 있습니다. Postman.
웹서비스가 필요한 이유는 무엇입니까?
일반적으로 소프트웨어 애플리케이션은 인간이 사용하도록 개발되는데, 사람이 소프트웨어 서비스에 요청을 보내면 소프트웨어 서비스는 사람이 읽을 수 있는 형식으로 응답을 반환합니다.
현대 기술 시대에는 소프트웨어 애플리케이션을 구축하려는 경우 처음부터 모든 것을 구축할 필요가 없습니다. 애플리케이션에 연결할 수 있고 애플리케이션에서 해당 서비스 제공을 시작할 수 있는 이미 만들어진 서비스가 많이 있습니다.
예를 들어, 애플리케이션에서 데이터를 수집, 처리 및 렌더링할 필요가 없는 일기 예보 정보를 표시하려고 합니다. 이러한 종류의 데이터를 처리하고 게시하는 데 이미 확고한 기반을 갖춘 사람들로부터 서비스를 구입할 수 있습니다.
웹 서비스를 사용하면 이러한 종류의 구현을 수행할 수 있습니다.
예를 들어 다음 웹 서비스를 고려해 보세요.
http://www.webservicex.net/stockquote.asmx?op=GetQuote
이는 회사의 공유 가치를 제공합니다.
Google의 주가를 찾아봅시다(기호: GOOG )
응답 XML은 주가를 제공합니다.
이 WebService는 SOAP 또는 HTTP 프로토콜을 사용하여 소프트웨어 애플리케이션에서 호출할 수 있습니다.
웹 서비스 프로토콜
웹 서비스는 다양한 방법으로 구현할 수 있지만, 다음 두 가지가 가장 인기 있는 구현 방식입니다.
- SOAP(단순 개체 액세스 프로토콜)
- REST(Representational State Transfer 아키텍처)
SOAP
SOAP는 웹 서비스 요청 및 응답을 보내고 받기 위해 W3C 표준에서 정의한 표준 프로토콜입니다.
SOAP은 요청을 보내고 받는 XML 형식 따라서 데이터는 플랫폼 독립적인 데이터입니다. SOAP 메시지는 SOAP 봉투 내에서 제공자 애플리케이션과 수신 애플리케이션 간에 교환됩니다.
SOAP는 단순 http 전송 프로토콜을 사용하므로 메시지가 방화벽에 의해 차단되지 않습니다.
REST
REST는 REpresentational State Transfer의 약자로, 일반적으로 HTTP를 통해 실행되는 아키텍처입니다. REST 스타일은 클라이언트와 서비스 간의 상호 작용을 강조하며, 이는 제한된 수의 작업을 통해 향상됩니다. REST는 SOAP(Simple Object Access Protocol)의 대안이며, 요청에 XML을 사용하는 대신 REST는 어떤 경우에는 간단한 URL을 사용합니다. SOAP와 달리 RESTFUL 애플리케이션은 HTTP 내장 헤더를 사용하여 메타 정보를 전달합니다.
사용자가 API에 액세스할 수 있는지 여부를 결정하기 위해 REST에서 사용하는 다양한 코드가 있습니다. 코드 200 또는 201은 응답 본문과의 성공적인 상호 작용을 나타내고 400은 잘못된 요청을 나타내거나 요청 URI가 시스템의 API와 일치하지 않음을 나타냅니다. 모든 API 요청 매개변수와 메소드 매개변수는 다음 중 하나를 통해 전송될 수 있습니다. POST or 바로 변수.
Rest API는 WebServices API 테스트를 위해 XML 및 JSON 형식을 모두 지원합니다. 일반적으로 다음과 같은 경우에 선호됩니다. 모바일 웹 앱을 사용하면 앱이 더 빠르고 원활하게 작동합니다.
wsdl
WSDL(웹 서비스 Description Language)는 웹 서비스에서 제공하는 서비스를 설명하는 데 사용되는 XML 기반 언어입니다.
WSDL은 특정 웹 서비스가 제공하는 모든 작업을 XML 형식으로 설명합니다. 또한 서비스를 호출하는 방법, 즉 제공해야 하는 입력 값과 각 서비스 유형에 대해 생성할 응답의 형식이 무엇인지 정의합니다.
웹 서비스를 테스트하는 방법은 무엇입니까?
웹 서비스를 테스트하려면 다음을 수행하십시오.
- 수동으로 테스트
- 나만의 자동화 코드 만들기
- SoapUI와 같은 기성 자동화 도구를 사용하세요.
웹 서비스 자동화 테스트에는 다음 단계가 포함됩니다.
- WSDL 파일 이해
- 특정 웹 서비스가 제공하는 작업을 결정합니다.
- 보내야 하는 XML 요청 형식을 결정합니다.
- 응답 XML 형식 결정
- 도구를 사용하거나 코드를 작성하여 요청을 보내고 응답을 확인합니다.
통화 변환 기능을 제공하는 웹 서비스를 테스트한다고 가정해 보겠습니다. 다른 국가 통화 간의 현재 변환율입니다. 이 서비스는 애플리케이션에서 한 통화의 값을 다른 통화로 변환하는 데 사용할 수 있습니다.
이제 위의 단계를 살펴보겠습니다.
1~4단계: WSDL 이해 및 작업 및 XML 형식 결정
환율 Convertor WSDL 파일을 볼 수 있습니다 @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
) 통화에 대한 정보를 제공합니다. Converto지원하게 될 웹 서비스 메소드, 전달해야 하는 매개변수, 매개변수 유형 등.
5단계: 도구를 사용하거나 코드를 작성하여 요청을 보내고 응답을 확인합니다.
SOAP 웹 서비스를 테스트하는 데 사용할 수 있는 WebService 테스트 도구가 많이 있습니다. SoapUI는 인기 있는 것 중 하나입니다. API 도구 이는 SOAP 웹 서비스를 테스트하는 데 도움이 될 것입니다. 실제로 http를 통해 XML 요청을 웹 서비스 제공자 애플리케이션에 보낼 수 있고 예상 결과에 대해 응답 XML을 구문 분석하고 검증할 수 있는 모든 프로그래밍 언어를 사용할 수 있습니다. 이 웹 서비스 테스트 튜토리얼에서는 WebService를 테스트합니다.
- 사용 Java
- SoapUI 사용
PART 1) Apache Axis2 API를 사용한 웹 서비스 테스트 (Java).
일반적으로 웹 서비스는 요청을 받아 XML 형식으로 응답을 보냅니다.
Apache Axis2 API 프로젝트는 Java 서버 측(서비스 제공자)과 클라이언트 측(서비스 소비자) 모두를 위한 웹 서비스를 생성하는 데 사용되는 구현 API입니다.
Axis2는 SOAP 메시지를 보낼 수 있고 SOAP 메시지를 수신 및 처리할 수 있습니다. 우리는 작게 쓸 수 있습니다 Java API를 사용하여 웹 서비스를 만드는 프로그램입니다. Axis2는 다음에서 WSDL을 생성합니다. Java 웹 서비스에서 제공하는 서비스를 전달하는 데 사용되는 프로그램입니다. 동일한 Axis2를 사용하여 Java 웹 서비스 요청을 생성하고 요청을 서비스 끝점으로 보내고 응답을 처리하기 위해 클라이언트 프로그램으로 사용할 수 있는 WSDL 파일의 클래스(스텁)입니다.
- 기본적으로 우리는 간단한 Java 스텁 클래스를 인스턴스화하는 프로그램입니다.
- 스텁을 사용하여 필요한 모든 정보를 전달하여 요청 메서드를 호출합니다.
- 스텁 프로그램은 해당 요청을 XML 요청 형식으로 변환하고 요청을 읽고 요청을 처리하고 응답을 XML 형식으로 보내는 서비스 끝점으로 보냅니다.
- XML 응답은 다음으로 변환됩니다. Java 스텁별로 클래스를 생성하고 실제 프로그램으로 반환합니다.
위의 단계를 자세히 살펴보겠습니다.
a 단계) axis2 API @ 다운로드 https://axis.apache.org/axis2/Java/core/download.cgi & 환경변수 'AXIS2_HOME' 설정
b) 생성된 모든 아티팩트를 보관할 폴더를 만듭니다.
예 : C:\Axis\Projects\CurrencyConverter
c단계) 명령 프롬프트를 열고 아티팩트를 생성하려는 폴더 구조로 이동한 후 스텁을 생성하는 다음 명령을 실행합니다.
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.통화변환기 -d adb –s
d 단계) 명령이 성공적으로 실행되면 필요한 파일이 있는 폴더가 표시됩니다.
e단계) 이 웹 서비스 테스트 튜토리얼의 다음 단계에서는 생성된 스텁을 사용하여 실제 요청을 보낼 클라이언트 프로그램을 만들어야 합니다. 이클립스를 열고 새 Java 프로젝트를 선택하고 위에서 만든 폴더를 선택합니다.
f) 모든 axis2 관련 jar를 프로젝트 빌드 경로에 추가합니다. 이 경로는 axis2 소프트웨어 폴더의 lib 폴더에 있습니다.
(예: C:\Axis\axis2-1.6.2\lib)
g) 단계) 새로운 생성 Java 클래스(예: 클라이언트.Java) 및 스텁 개체를 인스턴스화합니다. 스텁 개체를 사용하면 특정 WebService에서 지원되는 모든 메서드를 호출할 수 있습니다.
Client.Java Program package org.apache.axis2.currencyconvertor; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency; public class Client { public static void main(Java.lang.String args[]) { try { //Create the stub object by passing the service end point url CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx"); //ConversionRate is the class which we have to use mention the from and to currency //ConversionRate object will be the parameter for the conversionRate operation ConversionRate conversionRate = new ConversionRate(); conversionRate.setFromCurrency(Currency.USD); conversionRate.setToCurrency(Currency.INR); //Create the ConversionRateResponse object, which is going to be used to catch the response //call the conversionRate service using the stub object ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate); //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult()); } catch (Exception e) { e.printStackTrace(); } } }
PART 2) SoapUI 웹 서비스를 사용하여 테스트하는 방법
SoapUI에서
- 파일 > 새 Soap 프로젝트로 이동하세요.
- 프로젝트 이름과 WSDL URI 위치를 입력하세요.
- 확인을 클릭하십시오.
- 첫 번째 요청을 확장하고 'Request1'을 두 번 클릭합니다. 그러면 XML 형식으로 SOAP 요청이 표시됩니다.
- 시작 통화 및 종료 통화를 입력하세요.
- 제출 버튼을 클릭하십시오
- 응답 XML은 오른쪽 창에 표시됩니다.
결론적으로 SoapUI와 같은 WebService 테스트 도구를 사용하면 웹 서비스 자동화 테스트 노력이 가속화됩니다. 따라서 SoapUi는 다음 자습서에서 학습의 초점이 될 것입니다.
제품 개요
- 소프트웨어 응용 프로그램은 WebService를 사용하여 서로 통신하고 데이터를 교환합니다.
- SOAP와 REST는 웹 서비스를 생성하는 데 널리 사용되는 두 가지 프로토콜입니다.
- SOAP는 XML 기반 데이터 교환을 지원합니다.
- REST는 WebServices API 테스트를 위해 XML, Json 또는 단순 URL의 데이터 교환을 지원합니다.
- WSDL은 웹 서비스에서 제공하는 서비스를 설명하는 데 사용되는 XML 기반 언어입니다. SOAP는 WSDL을 사용하여 정의됩니다.
-
WebService를 테스트하려면 다음을 수행하십시오.
- 자신만의 코드를 만들어 보세요. 예를 들어 Axis2 API를 사용하십시오. Java
- SoapUI와 같은 WebService 테스트 자동화 도구 사용
- SoapUI와 같은 자동화 도구는 웹 서비스 자동화 테스트 작업을 시작하고 Axis2 API를 사용하여 자체 코드를 생성하는 것에 비해 코딩 작업이 덜 필요합니다.
자주 묻는 질문
전단지에 포함된 링크에 대해 더 알아보기 웹 API 테스트
이 웹 서비스 테스트 튜토리얼은 Mr. Narender Reddy Nukala의 기여로 만들어졌습니다.