주장 SoapUI: 스크립트, XQuery, XPath 유형

⚡ 스마트 요약

주장 SoapUI 웹 서비스 응답이 올바른지 여부를 결정하는 체크포인트로서, 단순히 실행되는 요청을 실제 검증 가능한 콘텐츠를 기반으로 통과 또는 실패하는 테스트로 바꿔줍니다.

  • 🔘 카테고리 : 자산 콘텐츠, 규정 준수/상태/표준, 스크립트, SLA, JMS 및 보안.
  • ☑️ 포함 : 응답에 특정 문자열이 존재하는지 확인하며, 정규 표현식을 지원합니다.
  • 포함되지 않음: 문자열이 누락되었음을 확인하는 기능으로, 오류 토큰이나 유출된 필드에 유용합니다.
  • 🧪 XPath 일치 항목: 먼저 네임스페이스를 선언한 다음, 특정 노드를 대상으로 지정하고 해당 값을 비교합니다.
  • 🛠️ XQuery 일치 항목: 반복되는 노드 집합의 유효성을 검사하여, 기존 방식대로라면 수백 번의 XPath 검사가 필요했을 작업을 간소화합니다.
  • 📊 스크립트: Groovy 어설션은 동적 응답과 설정 또는 해제 로직을 처리합니다.
  • 🔍 문제 해결 : 잘못된 네임스페이스와 콜론 대신 점을 사용하는 구문이 대부분의 오류를 유발합니다.

주장 SoapUI

어설션이란 무엇입니까?

주장이란 어떤 것을 긍정하거나 진술하는 행위를 의미합니다. 체크 포인트나 검증 포인트로 해석될 수도 있습니다.

웹 서버에 요청을 보내면 응답을 받게 됩니다. 우리는 응답에 예상한 데이터가 포함되어 있는지 검증해야 합니다. 응답을 검증하기 위해서는 어설션을 사용해야 합니다. 어설션이 없으면 테스트 단계는 서비스가 응답했다는 사실만 증명할 뿐, 응답이 정확했다는 것을 증명할 수는 없습니다. 이것이 바로 모든 테스트에 어설션이 필요한 이유입니다. API 테스트 적어도 하나는 휴대해야 합니다.

어설션 유형

답변을 제시하는 방법은 다양하지만, 여기서는 일반적으로 사용되는 방법에 초점을 맞추겠습니다. SoapUI 응답 유효성 검사 시 어설션 유형을 지정할 수 있습니다. 아래는 오픈 소스 버전에서 사용 가능한 범주입니다. SoapUI.

  1. 재산 내용
  2. 준수 상태 표준
  3. 스크립트
  4. 서비스 수준 계약 (SLA)
  5. 제이엠에스
  6. 보안

아래 스크린샷에서 볼 수 있듯이, 대화 상자는 모든 주장을 해당 범주별로 그룹화합니다.

어설션 범주는 다음과 같습니다. SoapUI 어설션 추가 대화 상자
어설션의 유형 SoapUI

위에 나열된 기능 외에도, 프로 버전에는 웹 서비스가 데이터베이스를 올바르게 업데이트했는지 확인할 수 있는 JDBC 어설션 기능이 내장되어 있습니다.

버전 참고: current SoapUI 문서에는 다음 내용도 포함되어 있습니다. JDBC 위의 카테고리들과 함께 (JDBC 상태 및 JDBC 타임아웃) 카테고리가 추가되었으며, 메시지 내용 더욱 풍부한 XML 비교를 위해 속성 콘텐츠 내부에 어설션을 추가했습니다. 여기서 "Pro"라고 언급된 상용 버전은 현재 판매 중입니다. ReadyAPI SmartBear에서 제공하는 기능이므로 최신 빌드에서는 메뉴 레이블이 다르게 표시될 수 있지만 어설션 동작은 동일하게 유지됩니다.

어설션 포함

지정된 문자열의 존재를 검색합니다. 정규식도 지원합니다.

다음과 같이 WSDL 요청을 사용하여 이전 튜토리얼과 동일한 예를 계속 진행하겠습니다. http://www.dneonline.com/calculator.asmx아직 해당 프로젝트를 구축하지 않았다면, 다음 단계를 따라 진행하세요. 프로젝트, 테스트 스위트 및 테스트 케이스 생성 먼저.

1단계: 기본적으로 어설션은 없습니다.

  1. 어설션 수는 어설션 탭에 표시됩니다.
  2. 새로운 주장을 추가하려면 '새 주장 추가' 버튼을 클릭하세요.

SoapUI 어설션 탭에 어설션이 하나도 표시되지 않고 '새 어설션 추가' 버튼만 나타납니다.

2 단계 : 이제

  1. 어설션 카테고리를 선택합니다.
  2. 어설션 유형을 선택합니다.
  3. '추가' 클릭

어설션 범주와 유형이 선택된 상태에서 어설션 추가 대화 상자가 나타납니다.

3단계: 응답에 문자열 '46'이 있는지 확인해 보겠습니다. '확인'을 클릭하세요.

참고: 대소문자를 무시하고 정규식을 추가할 수도 있습니다.

값 46이 입력된 어설션 구성 대화 상자가 포함되어 있습니다.

4단계: 추가하는 즉시 어설션이 실행되어 유효(VALID) 또는 무효(INVALID) 여부를 표시합니다.

어설션 탭에서 Contains 어설션이 VALID로 보고됩니다.

5단계: 이제 'Contains Assertion in'의 내용을 변경한다고 가정해 보겠습니다. SoapUI'에서 '47'로 변경하고 무슨 일이 일어나는지 보세요.

Contains Assertion 내용을 46에서 47로 수정합니다.

6단계: 어설션이 실행되고 결과가 사용자에게 표시됩니다. 응답에 '47' 문자열이 없으므로 어설션이 실패했습니다.

어설션 탭에서 Contains 어설션이 실패했다고 보고됩니다.

어설션이 포함되어 있지 않음

이와 반대되는 기능을 하는 함수는 지정된 문자열이 존재하지 않는지 검색합니다. 또한 정규 표현식을 지원합니다.

1단계: 이제 '새 어설션 추가' 버튼을 클릭한 후,

  1. 어설션 카테고리를 선택합니다.
  2. 어설션 유형 선택 - 이 경우 '포함하지 않음'
  3. '추가' 클릭

"NOT Contains"가 선택된 상태에서 어설션 대화 상자를 추가합니다.

2단계: 응답에 'intA' 문자열이 있는지 확인해 보겠습니다. 'FromCurrency' 문자열을 입력하고 '확인'을 클릭하세요.

FromCurrency 문자열이 입력된 상태에서 어설션이 포함되지 않음 대화 상자가 나타납니다.

3단계: 어설션이 추가되는 즉시 실행되어 결과가 표시됩니다. 지금까지 두 개의 어설션을 추가했으므로 두 어설션 모두 실행되고 결과가 표시됩니다.

어설션 탭에는 포함 및 미포함 결과가 모두 표시됩니다.

4단계: 이제 'Not Contains Assertion'의 내용을 변경하고 어떤 변화가 있는지 살펴보겠습니다. "AddResult"라는 문자열이 존재하지 않는지 확인해 보겠습니다.

AddResult 토큰을 확인하는 어설션이 포함되지 않음 대화 상자

5단계: 'AddResult' 문자열이 실제로 응답에 존재하므로 아래와 같이 'NOT Contains' 어설션이 실패합니다.

AddResult가 존재하기 때문에 Not Contains 어설션이 실패합니다.

XPath 일치 어설션

문자열 일치는 단순하므로 다음 어설션에서는 단일 노드를 대상으로 합니다. XPath 표현식을 사용하여 대상 노드와 해당 값을 선택합니다. xpathXML 문서에서 노드를 선택하기 위한 XML 쿼리 언어입니다.

1단계: 이제 '새 어설션 추가' 버튼을 클릭한 후,

  1. 어설션 카테고리를 선택합니다.
  2. 어설션 유형 선택 – 이 경우 'XPath 일치'
  3. '추가' 클릭

XPath 일치 항목이 선택된 상태에서 어설션 추가 대화 상자를 추가합니다.

2단계: XPath 추가 창이 열립니다.

추가하기 전에 SoapUI XPath에서는 네임스페이스를 선언해야 합니다. XML 네임스페이스는 URI(Uniform Resource Identifier) ​​참조로 식별되는 이름들의 모음으로, XML 문서에서 요소 및 속성 이름으로 사용됩니다. 이는 XML 문서에서도 동일하게 사용됩니다. SoapUI XPath 어설션.

XML 네임스페이스를 선언하려면 '선언' 버튼을 클릭하기만 하면 되지만, 직접 수동으로 네임스페이스를 선언할 수도 있습니다.

네임스페이스를 선언한 후에는 생성된 네임스페이스를 사용하여 XPath를 참조해야 합니다.

'선언' 버튼을 클릭하면 두 개의 URI가 있으므로 두 개의 네임스페이스가 나타납니다. 그중 하나는 스키마입니다. URL 그리고 다른 하나는 실제 웹 서비스에 해당합니다. URLXPath를 참조할 때는 스키마 네임스페이스가 아닌 웹 서비스가 위치한 실제 네임스페이스를 사용해야 합니다. 선언된 줄은 아래 그림과 같이 XPath 상자 상단에 나타납니다.

XPath 어설션 창 내부에 soap 및 ns1 네임스페이스를 선언했습니다.

네임스페이스 비누='http://schemas.xmlsoap.org/soap/envelope/'를 선언합니다.

네임스페이스 ns1='http://tempuri.org/' 선언;

선언 버튼을 클릭한 직후에 나타나는 XPath 어설션 창

3단계: 이제 유효성을 검사해야 하는 XML 노드의 XPath를 입력해야 합니다.

//ns1:AddResult 사이에 포함된 노드의 값을 제공합니다. & ns1은 'http://tempuri.org/'를 가리키는 선언된 네임스페이스에 해당합니다.

XML을 입력한 후 '현재에서 선택'을 클릭하여 앞으로 비교할 현재 응답의 값을 선택해야 합니다.

현재 강조 표시된 항목에서 선택한 XPath 표현식이 입력되었습니다.

4단계: 지금까지,

  1. 네임스페이스를 선언한 후 유효성 검사가 필요한 XML 노드의 XPath를 입력했습니다.
  2. 현재 값을 예상 값으로 만들려면 '현재에서 선택'을 클릭해야 합니다.
  3. 필요한 경우 수정할 수 있는 현재 값이 사용자에게 표시됩니다.
  4. '저장'을 클릭합니다.

XPath 일치 구성에서 예상 값과 저장 버튼이 표시됩니다.

5단계: 추가된 어설션 SoapUI 아래와 같이 표시됩니다.

XPath 일치 어설션이 추가된 것을 보여주는 어설션 탭

스크립팅 어설션

이 Assertion 기술은 수백 개의 Assertion을 관리하고 유지하는 것이 매우 어렵기 때문에 가장 널리 사용되는 기술입니다.

SoapUI 둘 중 하나를 사용 Groovy 스크립팅 또는 JavaScript 스크립팅 어설션을 위해. 스크립팅 기법은 개발을 위해 채택되었습니다.ping SOAP 테스트를 위한 프레임워크입니다. 스크립팅 어설션은 다음과 같은 상황에서 사용됩니다.

  • 스크립팅을 사용하면 설정(setup) 및 해제(tear down) 메서드를 각각 이용하여 테스트 케이스 실행 전후에 특정 작업을 수행할 수 있습니다. 설정은 특정 메서드 실행 전에 실행되는 절차(예: 객체 생성 및 초기화)이고, 해제는 메서드 실행 후에 실행되는 절차(예: 객체 소멸 및 정리)입니다. 이 기능은 다른 어설션 유형에서는 사용할 수 없으며, 코딩을 통해서만 구현할 수 있습니다.
  • 이 기능을 통해 사용자는 프로젝트를 열고 닫거나, 프로젝트 관련 설정을 초기화 또는 정리하거나, 스크립팅 중에 매우 유용한 환경 변수를 다룰 수 있습니다.
  • 이는 동적 응답 콘텐츠를 주장하는 데 도움이 됩니다.
  • 스크립팅 어설션은 미리 정의되지 않은 사용자 정의 어설션을 생성하는 데 사용됩니다. SoapUI.

스크립트 어설션을 시연하기 위해 SoapUI우리는 이전에 만들어둔 '추가' 테스트 케이스인 계산기 WSDL을 활용할 것입니다.

1단계: Groovy 스크립트를 추가하는 단계는 다른 어설션과 동일하지만, 미리 정의된 어설션이 아니라 사용자가 직접 정의한 어설션이라는 점이 다릅니다. 사용자 정의 어설션은 내장된 어설션보다 훨씬 더 유연하게 사용할 수 있습니다.

어설션을 추가해야 하는 테스트 단계를 선택합니다.

테스트 단계가 선택되었습니다. SoapUI 어설션을 추가하기 전에 네비게이터

아래와 같이 '어설션 추가' 버튼을 클릭합니다.

테스트 단계 어설션 툴바에 있는 어설션 추가 버튼

2단계: 이제 어설션 범주를 선택합니다.

  1. 이 경우에는 스크립트입니다.
  2. 선택 SoapUI 스크립트 어설션이며, 이와 관련된 하위 유형은 없습니다.
  3. '추가'를 클릭하세요.

스크립트 범주가 선택된 상태에서 어설션 추가 대화 상자를 엽니다.

3단계: 스크립팅 대화 상자가 열리고, 사용자는 여기에서 응답 XML의 유효성을 검사하는 사용자 정의 스크립트를 작성할 수 있습니다.

빈 SoapUI 스크립트 어설션 편집기 대화 상자

4단계: 이제 전환율을 검증하는 Groovy 스크립트를 작성해 보겠습니다. 스크립트는 주석과 함께 아래에 첨부되어 있습니다. Groovy에 대한 기본적인 지식이 있으면 도움이 될 것입니다. Java 스크립트 또는 Groovy 자신만의 스크립트를 작성하기 전에 스크립트를 작성하세요.

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"

//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")

//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult

//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. 실행을 시작하려면 '실행' 버튼을 클릭하세요.
  2. 스크립트의 출력은 출력 창에 표시됩니다. 전환 가치와 최종 결과(합격 또는 실패)가 모두 인쇄되었습니다.
  3. '스크립트 어설션 통과'라는 정보가 표시됩니다. 확인을 클릭합니다.

참고: 스크립트가 구문적으로 정확하다면 최종 정보 팝업에는 항상 '스크립트 어설션 통과' 메시지가 표시됩니다. 스크립트 내의 주장과 상관 관계가 없습니다.

스크립트 어설션 출력 창에 결과 값과 통과 여부가 표시됩니다.

확인을 클릭하십시오.

5단계: 이제 어설션 탭에 이 테스트 스위트에 추가한 모든 어설션과 각 어설션의 상태가 표시됩니다.

테스트 스위트에 추가된 모든 어설션을 나열하는 어설션 탭입니다.

6 단계 : 지금

  1. 네비게이터 트리에서 테스트 스위트를 선택하십시오.
  2. '실행' 버튼을 클릭하세요
  3. 전체 테스트 모음에 대한 결과가 표시됩니다.

모든 어설션을 실행한 후 테스트 스위트 실행 결과

XQuery 매치 어설션

이 코드는 XQuery 표현식을 사용하여 대상 속성에서 콘텐츠를 선택합니다. XQuery 어설션을 더 잘 이해하려면 훨씬 더 큰 응답 XML이 필요합니다. SoapUI아래와 같이 다른 WSDL 파일을 가져오겠습니다. http://www.webservicex.net/medicareSupplier.asmx?WSDL

참고 : 이 실습에서 사용된 공개 웹서비스X.NET 데모 엔드포인트는 더 이상 안정적으로 접근할 수 없으므로, 아래의 요청 및 응답 스크린샷은 참조 예시로 남겨둡니다. 반복되는 노드 집합을 반환하는 모든 WSDL은 동일한 방식으로 XQuery 어설션을 실행합니다.

1단계: 기존 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'WSDL 추가'를 선택합니다.

마우스 오른쪽 버튼을 클릭하면 메뉴가 나타납니다. SoapUI WSDL 추가를 보여주는 프로젝트

2단계: WSDL 추가 대화 상자가 열립니다. 다른 옵션은 기본값으로 두고 '확인' 버튼을 클릭합니다.

기본 가져오기 옵션이 포함된 WSDL 대화 상자를 추가합니다.

3단계: 모든 작업은 아래와 같이 나열되어 있습니다.

메디케어 공급업체 WSDL의 운영 내비게이터 트리에 나열되어 있습니다.

4단계: 이제 다음을 추가해 보겠습니다. 테스트 케이스 우리가 만든 것과 동일한 테스트 스위트 내에서 지원 통화 변환기.

기존 테스트 스위트에 새로운 테스트 케이스 옵션을 추가합니다.

5단계: 테스트 케이스 이름을 입력하고 '확인' 버튼을 클릭합니다.

새 테스트 케이스 대화 상자에 테스트 케이스 이름을 입력합니다.

6단계: 아래와 같이 테스트 케이스가 생성됩니다.

새로운 테스트 케이스가 생성되었습니다. SoapUI 네비게이터 트리

7단계: 아래 그림과 같이 'Soap 테스트 요청' 유형의 새 테스트 단계를 추가합니다.

SOAP 테스트 요청이 선택된 '단계 추가' 메뉴

8단계: 테스트 단계의 이름을 입력합니다. 예를 들어, 더 의미 있는 'Supplier_by_City'라고 입력해 보겠습니다. '확인'을 클릭합니다.

새로운 테스트 단계의 이름을 Supplier_by_City로 지정합니다.

9 단계 : Opera검증하고 싶은 내용입니다. 이 경우에는 'MedicareSupplierSoap -> GetSupplierByCity'입니다. '확인'을 클릭합니다.

테스트 단계에서 GetSupplierByCity 작업을 선택합니다.

10단계: 테스트 케이스 이름을 입력하고 '확인'을 클릭합니다.

SOAP 테스트 요청 이름 확인

11단계: 요청 XML 개요는 아래와 같이 표시됩니다.

생성된 GetSupplierByCity 요청 XML 개요

12단계: 이제 '뉴욕' 시의 모든 공급업체 정보를 찾아보겠습니다.

그렇게 하려면 코드에 다음 줄을 추가하세요.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

아래 WSDL URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

City 값을 New York으로 수정하여 XML 요청을 변경했습니다.

13단계: 테스트를 실행하면 아래와 같은 응답을 받습니다.

GetSupplierByCity 응답에 중복된 공급업체 기록이 포함되어 있습니다.

14단계: 모든 공급업체 번호를 검증해야 한다고 가정해 보겠습니다. 수백 개의 XPath 어설션이 필요하므로 XPath 어설션을 사용할 수 없습니다. 따라서 이 경우에는 XQuery를 사용하는 것이 불가피합니다.

XQuery Assertion은 본질적으로 반복적인 XML 응답 그룹의 유효성을 검사하는 데 도움이 됩니다.

XQuery가 반복할 반복되는 SupplierData 노드입니다.

15단계: 이제 '어설션 추가'를 클릭하세요.

  1. 이 경우 '어설션 카테고리' – 속성 콘텐츠를 선택합니다.
  2. 어설션 유형을 'XQuery 어설션'으로 선택합니다.
  3. '추가'를 클릭하세요.

속성 콘텐츠 범주에서 XQuery 어설션이 선택되었습니다.

16단계: XPath 어설션과 마찬가지로 네임스페이스를 선언해야 합니다.

  1. '선언' 버튼을 클릭하면 자동으로 허용됩니다. SoapUI 네임스페이스를 선언하려면, '선언' 버튼을 클릭하면 '스키마에서 네임스페이스를 선언하시겠습니까?'라는 메시지가 포함된 팝업 창이 나타납니다. 아래 그림과 같이 '예'를 클릭하여 진행하세요.
  2. 모든 공급업체 번호를 검색하려면 XPath 쿼리를 작성해야 하며 이를 <SupplierNumber> 내에 배치하고 태그.
  3. 현재 응답에서 실행될 '현재에서 선택'을 클릭하세요.
  4. '현재 목록에서 선택'을 클릭하면 모든 공급업체 번호가 나열됩니다.
  5. '저장'을 클릭합니다.

스키마 확인 팝업에서 네임스페이스를 선언하세요

참고: '선언' 버튼을 누르면 다른 결과가 나올 수 있습니다. URL's는 네임스페이스 선언이지만, 실제 웹 서비스 위치 네임스페이스가 코딩 시 고려되는 사항입니다.

네임스페이스 선언을 포함한 완성된 XQuery 표현식은 다음과 같습니다.

// Namespace declaration
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webservicex.net/';
declare namespace x = '';

// Placing the result in Myresult Tags

{
// Iterating through all the supplier number
for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData

//Return all the Supplier number within ‘SupplierNumber’ Tags.
return {data($x/ns1:SupplierNumber)}
}

XQuery 표현식 창에 모든 공급업체 번호가 나열됩니다.

17단계: XQuery 어설션이 실행되고 아래 그림과 같이 '어설션' 패널에 최종 결과가 표시됩니다. 이제 모든 공급업체 번호 정보를 검증하는 XQuery 어설션을 성공적으로 추가했습니다. 이 어설션은 웹 서버로 요청이 전송될 때마다 실제 값과 비교됩니다.

참고: 실제 값은 표시되지 않습니다. 모든 실제 값이 예상 값과 동일하면 VALID를 표시하고 그렇지 않으면 'Failed'를 표시합니다.

XQuery 어설션 결과를 보여주는 어설션 패널

내장된 어설션을 언제 사용해야 합니까?

마우스 클릭 방식과 스크립트 방식 모두 살펴봤으니, 이제 실질적으로 어떤 방식을 선택할지가 관건입니다.

  • 내장된 어설션 중 하나를 사용하여 유효성을 검사할 수 있을 정도로 응답이 짧은 경우.
  • 웹 서버에서 전송된 응답이 본질적으로 항상 정적인 경우 내장 어설션을 사용할 수도 있습니다. 동적이라면 내장된 어설션을 사용하여 이를 어설션할 수 없습니다.
  • 시간 초과 어설션 및 보안 어설션과 같은 내장 어설션의 사용이 불가피해지는 경우.
  • 내장된 어설션은 테스트를 반복할 필요가 없는 일회성 사용에 매우 적합합니다.

어설션 옵션

생성된 어설션은 아래에 강조 표시된 제어판을 사용하여 가장 잘 제어할 수 있습니다.

어설션 툴박스 제어판 SoapUI

생성된 어설션을 사용하면 테스터가 어설션 도구 상자에서 다음 사항을 구성할 수 있습니다.

선택권 기술설명
어설션을 위로 이동 아이콘 선택한 어설션의 순서가 위로 이동합니다.
어설션을 아래로 이동 아이콘 선택한 어설션이 순서 아래로 이동합니다.
어설션 아이콘 제거 선택한 어설션을 제거합니다.
어설션 아이콘을 구성하거나 편집하세요. 선택한 어설션을 재구성/편집합니다.

아래는 프로 버전에서만 사용할 수 있는 기능입니다. SoapUI현재 배송되는 상품 ReadyAPI프로 버전은 어설션을 그룹화하여 생성된 어설션에 추가적인 검증 계층을 더할 수 있도록 지원합니다.

  • 과 : 모든 어설션은 유효한 어설션으로 평가되어 그룹 조건이 통과됩니다.
  • 또는: 그룹 PASSED 조건을 주장하려면 그룹 내의 어설션 중 적어도 하나가 VALID여야 합니다.
  • Pro 버전도 허용 어설션 복제: 이 옵션을 사용하면 테스터가 어설션을 동일 프로젝트 또는 다른 프로젝트의 다른 테스트 단계로 복사할 수 있습니다.
  • 어설션 비활성화/활성화: 이 옵션을 사용하면 그룹화되었거나 그룹화되지 않은 모든 어설션을 비활성화하거나 활성화할 수 있습니다. 어설션이 비활성화되면 회색으로 표시되며, 테스트 케이스 실행 시 비활성화된 어설션은 실행되지 않습니다.
  • 어설션 그룹 해제: 테스터는 필요에 따라 그룹화된 어설션을 언제든지 그룹 해제할 수 있습니다.

다양한 어설션 유형에서 사용할 수 있는 전체 메소드 목록

아래 표는 위에서 설명한 모든 어설션을 어설션 추가 대화 상자에서 나타나는 범주별로 그룹화하여 정리한 것입니다.

어설션 메커니즘 기술설명
부동산 내용
포함 지정된 문자열의 존재를 검색합니다. 정규식도 지원합니다.
포함하지 않음 지정된 문자열이 존재하지 않는지 검색합니다. 정규식도 지원합니다.
XPath 일치 XPath 표현식을 사용하여 대상 노드와 해당 값을 선택합니다.
XQuery 일치 XQuery 표현식을 사용하여 대상 속성에서 콘텐츠를 선택합니다.
준수, 현황, 표준
HTTP 모든 리소스 다운로드 다운로드 후 HTML 문서의 유효성을 검사하며 HTML을 포함하는 모든 속성에 적용됩니다.
잘못된 HTTP 상태 코드 Codes HTML 응답에 정의된 코드 목록에 없는 상태 코드가 포함되어 있는지 확인합니다.
SOAP 오류가 아님 마지막으로 수신된 메시지가 SOAP 오류가 아닌지 확인합니다. SOAP 테스트 단계에만 적용 가능하다는 것은 매우 분명합니다.
스키마 준수 마지막으로 수신된 메시지가 WSDL 또는 WADL 표준 스키마 정의를 준수하는지 확인합니다. SOAP 및 REST 테스트 단계에 적합합니다.
SOAP 오류 마지막으로 수신된 메시지가 SOAP 오류인지 확인합니다. 이는 'NOT SOAP' 오류 어설션의 반대입니다.
SOAP 응답 마지막으로 수신된 응답이 유효한 SOAP 응답인지 확인하고 SOAP 테스트 요청 단계에만 유효합니다.
유효한 HTTP 상태 Codes HTML 응답에 정의된 코드 목록에 있는 상태 코드가 포함되어 있는지 확인합니다. 이는 '잘못된 HTTP 상태'의 반대 기능입니다. Codes의 주장.
WS-주소 지정 요청 마지막으로 수신된 요청에 적절한 WS-Addressing 헤더가 포함되어 있는지 확인합니다.
WS-주소 지정 응답 마지막으로 수신된 응답에 적절한 WS-Addressing 헤더가 포함되어 있는지 확인합니다.
WS-보안 상태 마지막으로 수신된 메시지에 유효한 WS-Security 헤더가 포함되어 있고 SOAP 요청에 대해서만 유효한지 확인합니다.
스크립트
스크립트 어설션 사용자가 사용자 정의 검증을 수행하기 위해 사용자 정의 스크립트를 실행할 수 있습니다.
서비스 수준 계약 (SLA)
응답 SLA 마지막으로 수신된 응답의 응답 시간이 정의된 제한 내에 있는지 확인합니다.
제이엠에스
JMS 상태 테스트 단계의 JMS 요청이 성공적으로 실행되었고 JMS 끝점이 있는 테스트 단계에 대해 유효한지 확인합니다.
JMS 시간 초과 테스트 단계의 JMS 응답이 지정된 기간보다 오래 걸리지 않았는지 확인합니다.
보안
민감한 정보 노출 응답 메시지가 대상 시스템에 대한 중요한 정보를 노출하지 않는지 확인합니다. REST, SOAP 및 HTTP 테스트 단계에 이 어설션을 사용할 수 있습니다.

위의 주장이 포함된 SOAPUI 프로젝트를 다운로드하세요.

일반적인 오류 및 문제 해결

대부분의 어설션 실패 trac몇 가지 사소한 오류가 있으니, 표현식을 다시 작성하기 전에 이러한 오류를 확인하세요.

  • 올바른 네임스페이스를 사용하십시오. 네임스페이스는 다음과 같아야 합니다. URL 웹 서비스가 위치한 곳입니다.
  • 개발 중에 오류가 발생하면ping 스크립팅 어설션을 사용하려면 'log.info'를 사용하여 변수 내용을 출력하세요.
  • 원하는 출력이 나오지 않으면 요청에 유효한 입력이 전달되었는지 확인하세요.

예를 들어, 환율 변환기에서 'intA'에 정수가 아닌 'x'를 입력하면 'SOAP-Client' 오류 코드가 발생합니다. 이는 클라이언트 측에서 전달된 매개변수에 문제가 있음을 의미합니다. 유효하지 않은 값을 포함하는 요청이 먼저 표시됩니다.

SoapUI intA에 유효하지 않은 정수가 아닌 값을 전달하는 요청

응답은 아래와 같이 결과 대신 오류 코드를 반환합니다.

SOAP 클라이언트에서 반환된 오류 코드 SoapUI 응답 편집기

XPath 및 XQuery 어설션을 사용할 때 올바른 구문을 사용해야 합니다. 위의 어설션을 사용할 때 콜론(:) 대신 마침표(.)를 사용해서는 안 됩니다. 구문은 //namespace:Tagname이며 //namespace.tagname이 아닙니다. 이렇게 하면 태그 이름이 올바르더라도 '현재 응답에 일치하는 항목이 없습니다'라는 메시지가 표시될 수 있습니다.

현재 응답에서 일치하는 항목이 없습니다. XPath 구문 오류로 인해 오류가 발생했습니다.

자주 묻는 질문

숫자는 얼마든지. SoapUI 이 기능은 샘플러 테스트 단계가 실행된 후 해당 단계에 연결된 모든 어설션을 적용하며, 이러한 어설션 중 하나라도 실패하면 테스트 케이스 보기에서 해당 단계가 실패로 표시됩니다.

이 방법은 XML 메시지를 예상 문서의 노드별로 비교하므로 전체 페이로드를 하나의 일반 문자열로 처리하는 대신 선택된 필드를 무시하거나 느슨하게 일치시킬 수 있습니다.

오픈 소스 SoapUI 본 내용은 속성 콘텐츠, 규정 준수, 스크립트, SLA, JMS 및 보안을 다룹니다. ReadyAPI 그룹을 추가합니다ping복제, JDBC 검사 및 제어 활성화 또는 비활성화 기능을 제공합니다.

AI 모델은 샘플 응답을 읽고 XPath 또는 XQuery 표현식을 제안하고, 경계값을 제시하며, 실행할 때마다 변경되는 필드를 표시하여 수동으로 네임스페이스와 표현식을 작성하는 작업을 크게 줄여줍니다.

예. 부조종사 자동 완성 Groovy유틸리티 및 XmlHolder 상용구 코드입니다. 구문적으로 유효한 스크립트는 비교 대상과 관계없이 "스크립트 어설션 통과"를 보고하므로 항상 스크립트를 먼저 실행하십시오.

예. 어설션 콘텐츠 필드는 속성 확장을 지원하므로 예상 값을 리터럴 값이 아닌 프로젝트 또는 테스트 케이스 속성에서 가져올 수 있어 여러 환경에서 하나의 어설션을 재사용할 수 있습니다.

어설션이 실패하면 테스트 케이스 보기에서 해당 테스트 단계가 실패로 표시되고, 창 하단의 테스트 실행 로그에 실패 세부 정보와 함께 "실패" 항목이 기록됩니다.

포함 여부, 미포함 여부, XPath 일치 여부, XQuery 일치 여부, 응답 SLA, 스크립트, 유효 및 무효 HTTP 상태 코드, 민감 정보 노출, WADL 또는 추론된 스키마에 대한 스키마 준수 여부 등을 평가합니다.

이 게시물을 요약하면 다음과 같습니다.