SoapUI에서 테스트 스위트 및 테스트 케이스를 만드는 방법
SOAP 프로토콜 이해
SOAPUI 테스트 케이스를 만들기 전에 SOAP 프로토콜에 대한 기본 사항을 이해하겠습니다. 이는 SOAP UI를 사용하여 SOAP 요청 및 응답을 효과적으로 테스트하는 데 도움이 됩니다.
SOAP는 단순 개체 액세스 프로토콜. 다음은 SOAP 프로토콜의 속성입니다.
- 서로 다른 두 시스템 간의 통신을 위한 XML 기반 프로토콜입니다.
- 플랫폼과 언어에 독립적입니다. 따라서 이를 사용하여 개발된 시스템은 Java .NET으로 개발된 시스템과 통신할 수 있습니다.
- SOAP 요청/응답은 HTTP를 통해 전송됩니다.
SOAP 메시지 형식 알아보기
SOAP 메시지는 다음 요소를 포함하는 일반적인 XML 문서입니다. 메시지는 요청 메시지 또는 응답 메시지일 수 있습니다.

지난 튜토리얼에서 수행했던 작업공간을 설정한 후, 주어진 웹 서비스를 테스트하기 위해 SoapUI 프로젝트 구조, 테스트 스위트, 테스트 케이스를 생성해야 합니다. 새로운 SOAP 프로젝트를 생성하기 위한 SoapUI 프로젝트 예제를 이해해 보겠습니다.
SOAP 프로젝트 만들기
단계 1) 이제 프로젝트에 따라 SOAP/REST 프로토콜을 가져와야 합니다. 새로운 SOAP 프로젝트를 생성하겠습니다.
단계 2) 우리는 다음 SOAP 요청을 활용할 것입니다. http://www.dneonline.com/calculator.asmx?wsdl
- 프로젝트 이름 입력
- WSDL 요청의 경로를 입력하세요. 이 경우 http://www.dneonline.com/calculator.asmx?wsdl
- 확인을 클릭하십시오.
참고 :
- 모든 작업에 대한 샘플 요청을 생성하시겠습니까? 주어진 WSDL에서 사용 가능한 모든 작업에 대한 샘플 요청을 만듭니다. WSDL 주소를 입력하자마자 이 옵션이 자동으로 체크됩니다. 체크를 해제할 수 있습니다.
- 가져온 WSDL에 대한 테스트 스위트를 작성하십시오. 가져온 WSDL에 대한 프로젝트 내에서 SoapUI 테스트 모음을 만듭니다.
- 상대 경로: 프로젝트 파일과 관련된 모든 파일을 저장할 수 있습니다.
단계 3) 위에 언급된 WSDL로 SOAP 프로젝트를 생성하면, 프로젝트에 가져올 두 가지 작업이 있다는 것을 알 수 있습니다.
단계 4) 첫 번째 요청을 확장하고 '추가'를 마우스 오른쪽 버튼으로 클릭하세요. 그런 다음 '새 요청'을 클릭하세요.
그런 다음 '확인'을 클릭하세요. SOAP 요청을 XML 형식으로 표시합니다.
- 'intA'와 'intB'를 입력하세요.
- 제출 버튼을 클릭하십시오
- 응답 XML은 오른쪽 창에 표시됩니다.
왜 테스트 케이스를 만드는지 궁금할 것입니다. 여기에서 Webservice를 직접 테스트할 수 있는 경우…
글쎄요, 한 가지 작업에 대한 요청을 보낼 수 있습니다. 다른 작업은 어떨까요? 이 작업을 사용하여 Additions에 대한 입력 조합을 몇 개나 할 수 있나요? 각 조합에 대한 요청을 편집해야 합니다.
예를 들어: 4와 4 대신 5와 5를 추가하려면… 작업을 다시 편집해야 합니다. 따라서 작업 자체를 직접 편집하지 않고도 모든 가능한 시나리오를 테스트할 수 있는 테스트 모음/케이스를 만들어야 합니다.
SoapUI에서 테스트 스위트를 생성하는 방법
다음은 SoapUI에서 테스트 스위트를 생성하는 단계입니다.
1단계) 프로젝트의 루트를 마우스 오른쪽 버튼으로 클릭합니다.
프로젝트 내에서 테스터는 프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하여 테스트 스위트를 생성할 수 있습니다.
2단계) 테스트 모음 세부 정보 입력
테스트 스위트의 이름을 입력하고 확인을 눌러야 합니다.
3단계) 생성된 테스트 스위트 확인
생성된 테스트 모음은 아래와 같이 탐색기 창에 표시됩니다.
4단계) 테스트 스위트 열기
테스트 스위트 창이 오른쪽 창에 열립니다. 방금 만들었으므로 SoapUI 테스트 사례가 없습니다. 따라서 모든 옵션이 비활성화됩니다.
SoapUI에서 테스트 케이스를 만드는 방법
다음은 SoapUI에서 테스트 케이스를 생성하는 단계별 프로세스입니다.
단계 1) 테스트 스위트 내에서 '테스트 스위트'를 마우스 오른쪽 버튼으로 클릭하고 'New TestCase'를 선택하여 여러 테스트를 생성할 수 있습니다.
단계 2) 의 이름을 지정하십시오. 테스트 케이스 그리고 '확인'을 클릭하세요.
단계 3) 생성된 테스트 케이스에는 아래와 같이 XNUMX단계가 있습니다.
주의 사항: 테스트 케이스에 모든 종류의 테스트에 대한 테스트 단계가 0개 추가된 것을 볼 수 있습니다. 테스트 단계를 추가하면 괄호 안의 숫자가 자동으로 변경됩니다.
기능 테스트 단계는 '테스트 단계'로 들어가야 하고, 성능 테스트 단계는 '부하 테스트'로, 보안 테스트 단계는 '보안 테스트'로 들어가야 합니다.
단계 4) 아래와 같이 테스트 단계를 마우스 오른쪽 버튼으로 클릭하고 적절한 테스트 단계를 선택하면 다양한 테스트 단계를 삽입할 수 있습니다. 따라서 REST 웹 서비스를 테스트하려면 REST 테스트 요청을 선택합니다.
SoapUI에 테스트 단계 추가
이제 가져온 SOAP 테스트 요청을 검증하는 테스트 단계를 추가하겠습니다.
단계 1) 아래와 같이 'SOAP 요청'이라는 새 단계를 추가합니다.
단계 2) 단계 이름을 입력하고 확인을 클릭합니다.
단계 3) '확인'을 클릭하면 호출할 작업을 선택하기 위한 대화 상자가 나타납니다. 모든 작업이 나열되어 있으며 사용자는 호출하려는 작업을 선택할 수 있습니다.
- 나열될 작업은 많습니다. Opera사용된 SOAP 버전을 제외하고는 동일합니다.CalculatorSoap – SOAP 버전 1.1을 사용하는 반면,CalculatorSoap12 – SOAP 버전 1.2를 사용합니다.
- 이 맥락에서 버전은 중요하지 않습니다. 따라서 원하는 것을 선택할 수 있습니다.
- 작업을 선택한 후 '확인'을 클릭하세요.
단계 4) 테스트 케이스를 추가하는 동안 표준 어설션을 추가할 수 있습니다. 어설션은 체크포인트/검증 포인트라고도 하며 다음 튜토리얼에서 자세히 다룰 것입니다.
테스트 케이스를 만들 때 다음 체크포인트/어설션을 추가할 수 있습니다. 아래 검증 포인트 없이 테스트 단계를 만드는 옵션으로 테스트 케이스를 만들어 보겠습니다.
- 테스트 실행 시 응답 메시지가 SOAP인지 확인합니다.
- 응답 스키마가 유효한지 확인합니다.
- SOAP 응답에 FAULT가 포함되어 있는지 확인합니다.
단계 5) 테스트 케이스를 생성하면 아래와 같이 요청 XML이 표시됩니다. XML의 구조는 아래 스냅샷에 설명되어 있습니다.
단계 6) 방금 하나의 테스트 단계를 추가했으므로 이제 테스트 단계 수가 XNUMX로 증가합니다. 마찬가지로 로드 및 보안 테스트 단계를 추가하면 추가된 단계 수에 따라 해당 숫자가 자동으로 증가합니다.
수동으로 요청 보내기 및 SoapUI에서 응답 읽기
단계 1) 두 개의 정수를 추가하고 싶습니다.
- 인타 – 5
- intB – 5
다음으로,
- 요청 XML로 전송될 물음표 대신 이러한 입력을 입력해야 합니다.
- 해당 값을 해당 XML 태그에 입력한 후 '요청 제출' 버튼을 클릭하여 응답을 확인하세요.
단계 2) 요청을 제출하면 웹 서비스 요청이 웹 서버에 의해 처리되고 아래와 같이 응답을 다시 보냅니다.
응답을 읽으면 5 더하기 5는 10이라는 결론을 내릴 수 있습니다.
비누 반응 및 로그 패널 이해
이 SoapUI 테스트 튜토리얼의 시작 부분에서 설명했듯이 SOAP 메시지는 HTTP 프로토콜을 통해 전송됩니다. RAW 메시지를 살펴보겠습니다. 이는 SOAP 요청과 응답이 HTTP를 통해 어떻게 전송되었는지 배우는 데 도움이 됩니다.
단계 1) 두 SOAP-UI 요청 창 모두에서 'RAW' 탭을 클릭합니다.
- 요청이 웹서버에 게시됩니다. 따라서 Http의 POST 방식을 사용합니다.
- SOAP 요청은 Http 메시지 본문으로 전송됩니다.
단계 2) 현재 'RAW' 탭을 클릭하세요 HTTP를 통해 응답이 전송되는 방식을 이해하려면 SOAP-UI 응답 창에서
- 요청을 처리한 후 성공을 의미하는 Http 응답 코드(200)가 표시됩니다. 웹서버가 성공적으로 처리했습니다.
- SOAP 응답은 HTTP 메시지 본문의 일부로 클라이언트에 다시 전송됩니다.
쉬운 이해와 디버깅을 위한 HTTP 응답 코드의 빠른 스냅샷입니다. 아래 표는 웹서버에서 수신한 HTTP 코드를 기반으로 문제를 해결하는 데 도움이 됩니다.
HTTP 코드 | 상품 설명 |
---|---|
1xx: | 정보 – 이는 요청이 수신되고 계속되는 프로세스를 의미합니다. |
2xx: | 성공 - 작업이 성공적으로 수신되고 이해되었으며 수락되었습니다. |
3xx: | 리디렉션 – 이는 요청을 완료하려면 추가 조치를 취해야 함을 의미합니다. |
4xx: | 클라이언트 오류 – 이는 요청에 잘못된 구문이 포함되어 있거나 처리할 수 없음을 의미합니다. |
5xx: | 서버 오류 - 서버가 명백히 유효한 요청을 이행하지 못했습니다. |
단계 3) 테스트 케이스 창에 표시되는 다른 정보를 살펴보겠습니다.
- 전송되는 요청에 NO 헤더를 표시하십시오.
- 웹 서버로 전송되는 요청에 첨부 파일이 없음을 나타냅니다.
- 10개의 헤더 정보를 나타내며, 이를 클릭하면 동일한 정보가 표시됩니다.
- 응답 메시지에 첨부 파일이 없음을 나타냅니다.
로그 창:
로그 창에는 클라이언트와 서버 간의 트랜잭션에 관한 완전한 정보가 있습니다. 사용자는 아래와 같이 로그 창의 탭을 볼 수 있습니다. SOAP-UI로 작업할 때 가장 일반적으로 사용되는 로그 창에 대해 논의하겠습니다.
SoapUI 로그 – 웹 서버의 응답 정보를 표시합니다. 'bin' 디렉토리 아래 SOAP-UI가 설치된 폴더의 Soapui.log 파일에도 동일한 정보가 저장되어 있습니다.
HTTP 로그 – 모든 HTTP 패킷 전송을 표시합니다. 'RAW'의 모든 정보는 HTTP 로그에 표시됩니다.
오류 기록 - 오류 로그에는 전체 프로젝트 세션 중에 발생한 모든 오류가 표시됩니다. SOAP UI가 설치된 위치의 'bin' 디렉터리에 있는 'soapui-errors.log'에서도 동일한 정보를 확인할 수 있습니다.
메모리 로그 – 이 탭은 메모리 소비를 모니터링하고 아래에 표시된 것처럼 차트 형태로 표시합니다. 메모리 집약적 작업이 수행될 때 정말 유용합니다.
이제 테스트 스위트, 테스트 케이스, 테스트 단계를 생성하고 응답을 얻었으므로 다음 단계는 응답을 검증하는 것입니다. 다음 튜토리얼에서는 어설션 유형을 다룰 것입니다.