API Test/SoupUI2018. 11. 21. 07:00

WebService 란 무엇입니까?

  

웹 서비스는 두 가지 응용 프로그램 / 시스템이 밑줄 구조 및 기술과 상관없이 데이터를 교환하는 메커니즘 또는 통신 매체입니다.

WebService가 필요한 이유는 무엇입니까?

         

일반적으로 소프트웨어 응용 프로그램은 인간이 소비하도록 개발되어 사람이 소프트웨어 서비스에 요청을 보내면 사람이 읽을 수있는 형식으로 응답을 반환합니다.

현대 기술 시대에 소프트웨어 응용 프로그램을 만들려면 처음부터 모든 것을 구축 할 필요가 없습니다. 사용할 수있는 많은 미리 준비된 서비스가 있으며 애플리케이션에 연결할 수 있으며 애플리케이션에서 이러한 서비스를 제공 할 수 있습니다.

예를 들어, 응용 프로그램에서 데이터를 수집, 처리 및 렌더링 할 필요가없는 일기 예보 정보를 표시하려고합니다. 이러한 종류의 데이터를 처리하고 게시 할 때 이미 잘 정립 된 사람들로부터 서비스를 구입할 수 있습니다.

웹 서비스는 이러한 종류의 구현을 가능하게합니다.  

예를 들어, 다음 WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

그것은 회사에 대한 주식 가치를 제공합니다.

Google (Symbol : GOOG)의 주가를 알아 보겠습니다.

웹 서비스 테스트 : 초보자 용 자습서

응답 XML은 주가를 제공합니다.

웹 서비스 테스트 : 초보자 용 자습서

이 WebService는 SOAP 또는 HTTP 프로토콜을 사용하여 소프트웨어 응용 프로그램에서 호출 할 수 있습니다.  

웹 서비스는 여러 가지 방법으로 구현 될 수 있지만 다음 두 가지가 인기있는 구현 방법입니다.

  1. SOAP (Simple Object Access Protocol;단순 개체 액세스 프로토콜)
  2. REST (Representational State Transfer architecture)

 

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 빌드를 사용하여 메타 정보를 전달합니다.

REST는 사용자가 API에 액세스 할 수 있는지 여부를 판별하기 위해 다양한 코드를 사용합니다. 예를 들어 코드 200 또는 201은 응답 본문과의 성공적인 상호 작용을 나타내지 만 400은 잘못된 요청을 나타내거나 요청 URI는 시스템의 API와 일치하지 않습니다. 모든 API 요청 매개 변수와 메소드 매개 변수는 POST 또는 GET 변수 를 통해 전송 될 수 있습니다 .  

Rest API는 XML 및 JSON 형식을 모두 지원합니다. 일반적으로 모바일 및 웹 앱의 경우 앱 작업이 더 빨라지고 원활 해지기 때문에 선호 됩니다. 배울 점이 하나 더 있습니다.  

WSDL

WSDL (Web Services Description Language)은 웹 서비스가 제공하는 서비스를 설명하는 데 사용되는 XML 기반 언어입니다.

WSDL은 특정 웹 서비스가 XML 형식으로 제공하는 모든 작업을 설명합니다. 또한 서비스를 호출 할 수있는 방법, 즉 어떤 입력 값을 제공해야하는지, 각 서비스 종류에 대해 생성 할 응답 형식을 정의합니다.  

웹 서비스 테스팅이란 무엇입니까?

웹 서비스 테스팅은 웹 서비스와 SOAP & REST 같은 프로토콜을 테스트합니다. 웹 서비스를 테스트하려면

  1. 수동으로 테스트
  2. 나만의 자동화 코드 만들기
  3. SoapUI와 같은 규격화된 자동화 도구를 사용하십시오.

WebService 테스팅에는 다음 단계가 포함됩니다.

  1. WSDL 파일 이해하기
  2. 특정 웹 서비스가 제공하는 작업 결정
  3. 우리가 보내야 할 XML 요청 형식을 결정하십시오.
  4. 응답 XML 형식 결정
  5. 도구를 사용하거나 코드를 작성하여 요청을 보내고 응답을 확인합니다.

통화 변환 기능을 제공하는 WebService를 테스트하려고한다고 가정 해 보겠습니다. 다른 국가 통화 간의 현재 전환율입니다. 이 서비스는 응용 프로그램에서 하나의 통화에서 다른 통화로 값을 변환하는 데 사용할 수 있습니다.

위의 단계를 살펴 보겠습니다.

1 단계에서 4 단계 : WSDL의 부족 및 작업 및 XML 형식 결정

 

환율 변환기 WSDL 파일을  @ ( http://www.webservicex.net/CurrencyConvertor.asmx?wsdl ), 우리가 통과해야하는 매개 변수가 지원 통화 변환기 웹 서비스 방법에 대한 정보를 제공 할과 매개 변수 유형 ... 등 볼수 있다.

웹 서비스 테스트 : 초보자 용 자습서 

웹 서비스 테스트 : 초보자 용 자습서  

5 단계 : 도구를 사용하거나 코드를 작성하여 요청을 보내고 응답을 확인합니다.

 

웹 서비스를 테스트 할 수있는 많은 도구가 있습니다. SoapUI는 웹 서비스를 테스트하는 데 도움이되는 인기있는 도구 중 하나입니다. 사실 XML을 통해 웹 서비스 공급자 응용 프로그램에 XML 요청을 보내고 응답 XML을 구문 분석하고 예상 결과와 비교하여 유효성을 검사 할 수있는 모든 프로그래밍 언어를 사용할 수 있습니다. 여기서는 WebService를 테스트합니다.

  1. Java 사용
  2. SoapUI 사용

PART 1) Apache Axis2 API (Java)를 사용한 웹 서비스 테스트.

일반적으로 웹 서비스는 요청을 받아 XML 형식으로 응답을 보냅니다.

Apache Axis2 API 프로젝트는 서버 측 (서비스 제공자)과 클라이언트 측 (서비스 이용자)을위한 웹 서비스를 작성하는 데 사용되는 Java 구현 API입니다.

Axis2는 SOAP 메시지를 전송하고 SOAP 메시지를 수신 및 처리 할 수 ​​있습니다. API를 사용하여 웹 서비스를 생성하는 작은 Java 프로그램을 작성할 수 있습니다. Axis2는 웹 서비스가 제공하는 서비스를 통신하는 데 사용될 Java 프로그램에서 WSDL을 생성합니다. 웹 서비스 요청을 생성하고 요청을 서비스 엔드 포인트로 보내고 응답을 처리하기 위해 클라이언트 프로그램으로 사용할 수있는 WSDL 파일에서 Java 클래스 (스텁)를 생성하기 위해 동일한 Axis2를 사용할 수 있습니다.

  1. 기본적으로 스텁 클래스를 인스턴스화하는 간단한 Java 프로그램을 작성합니다.
  2. 스텁을 사용하여 필요한 모든 정보를 전달하여 요청 메소드를 호출합니다.
  3. 스텁 프로그램은 해당 요청을 XML 요청 형식으로 변환하고 요청을 읽고 요청을 처리하고 XML 형식으로 응답을 보내는 서비스 끝점을 보냅니다.
  4. 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.currencyconvertor -d adb -s

웹 서비스 테스트 : 초보자 용 자습서

단계 d) 명령이 성공적으로 실행되면 필요한 파일이있는 폴더가 표시됩니다.

웹 서비스 테스트 : 초보자 용 자습서  

단계 e) 다음으로 생성 된 스텁을 사용하여 실제 요청을 보낼 클라이언트 프로그램을 만들어야합니다. 이클립스를 열고 새로운 Java 프로젝트를 만들고 위에서 만든 폴더를 선택하십시오.  

웹 서비스 테스트 : 초보자 용 자습서

단계 f) axis2 소프트웨어 폴더의 lib 폴더에 프로젝트 빌드 경로에 모든 axis2 관련 jar를 추가합니다.

(예 : C : \ Axis \ axis2-1.6.2 \ lib)

웹 서비스 테스트 : 초보자 용 자습서

단계 g) 새 Java 클래스 (예 : Client.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 {

       // 서비스 끝점 URL을 전달하여 스텁 객체를 만듭니다.
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       // ConversionRate는 from과 to 통화를 사용해야하는 클래스입니다.
       // ConversionRate 객체는 conversionRate 연산의 매개 변수가됩니다.
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       // 응답을 잡는 데 사용될 ConversionRateResponse 객체를 만듭니다.
       // 스텁 객체를 사용하여 conversionRate 서비스 호출
       ConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);

       // conversionRateResponse 객체를 사용하여 ConversionRate 서비스의 응답을 검색 할 수 있습니다.
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace ();
      }
    }
}

		

 

2 부) SoapUI를 사용하여 WebService 테스트하기

 

SoapUI에서  

  1. 파일> 새 Soap 프로젝트(Go to File > New Soap Project)로 이동하십시오.
  2. 프로젝트 이름과 WSDL URI 위치를 입력하십시오.
  3. 확인을 클릭하십시오.

 

웹 서비스 테스트 : 초보자 용 자습서  

  1. 첫 번째 요청을 확장하고 'Request1'을 두 번 클릭하십시오. SOAP 요청을 XML 형식으로 표시합니다.
  2. 통화 및 통화를 입력하십시오.
  3. 제출 버튼을 클릭하십시오.
  4. 응답 XML이 오른쪽 창에 표시됩니다.

 

웹 서비스 테스트 : 초보자 용 자습서  

결론을 내리면 SoapUI와 같은 도구를 사용하면 WebService 테스팅 노력을 신속하게 처리 할 수 ​​있습니다. 따라서 SoapUi는 다음 튜토리얼에서 우리 학습의 초점이 될 것입니다.

개요

  • 소프트웨어 응용 프로그램은 WebService를 사용하여 서로 통신하고 데이터를 교환합니다.
  • SOAP와 REST는 WebService를 생성하기위한 2 가지의 유명한 프로토콜이다.
  • SOAP은 XML 기반 데이터 교환을 지원합니다.
  • REST는 XML, Json 또는 간단한 URL로 데이터 교환을 지원합니다.
  • WSDL은 웹 서비스에서 제공하는 서비스를 설명하는 데 사용되는 XML 기반 언어입니다. SOAP은 WSDL을 사용하여 정의됩니다.
  • WebService를 테스트하려면
    • 자신 만의 코드를 만듭니다. 예를 들어 Java 용 Axis2 API 사용
    • SoapUI와 같은 WebService 테스트 자동화 도구 사용
  • SoapUI와 같은 자동화 도구는 테스트 작업에 뛰어 들고 Axis2 API를 사용하여 코드를 직접 작성하는 것보다 코딩 작업이 덜 필요합니다.

 

자주하는 질문

WebService와 WebAPI의 차이점은 무엇입니까?

웹 서비스

웹 API

  • W3C에서 정의한 모든 통신 및 데이터 교환은 XML을 기반으로합니다.
  • 웹 API 통신 및 데이터 교환은 XML, JSON 또는 일반 데이터 일 수 있습니다.
  • 정의 된 표준 - WSDL
  • 정의 된 표준 없음
  • 데이터를 압축 할 수는 없지만 HTML 요청을 압축 할 수는 있습니다.
  • 데이터를 압축 할 수 있습니다.
  • 예 : SOAP
  • 예 : REST


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