사용 SoapUI 과 Selenium 웹 서비스 테스트용
⚡ 스마트 요약
SoapUI 과 Selenium 이 도구를 사용하면 웹 서비스와 해당 서비스를 사용하는 브라우저를 검사할 수 있습니다. Groovy 그것은 다리입니다. 왜냐하면 SoapUI 실행 Groovy 본래부터 그리고 Groovy 모든 것에 도달합니다 Java 도서관 Selenium 배들.
SoapUI 가장 인기 있는 오픈 소스입니다. 기능 테스트 공구 API 테스트. 그것은 완전한 것을 제공합니다 테스트 범위 모든 표준 프로토콜과 기술을 지원합니다.
SOAP이란 무엇입니까?
SOAP HTTP는 간단한 XML 기반 프로토콜입니다. 이를 통해 애플리케이션은 HTTP를 통해 정보를 교환할 수 있습니다. 웹 서비스를 사용합니다. Descript통신을 위한 ion 언어(WSDL) 및 기타 응용 프로그램이 상호 작용할 수 있습니다. 웹 서비스 WSDL 인터페이스를 통해.
SOAP 웹 서비스와 REST 웹 서비스 비교 SoapUI
SoapUI 원래 SOAP 클라이언트로 시작했으며 이름도 그렇지만, REST 엔드포인트도 테스트합니다. 어떤 스타일을 가리키는지에 따라 테스트 구성 방식이 달라집니다.
| 아래 | SOAP | REST |
|---|---|---|
| 와tract | WSDL 파일은 모든 작업을 설명합니다. SoapUI 요청을 자동으로 생성할 수 있습니다. | 일반적으로 OpenAPI 또는 Swagger 정의를 사용하거나 공식적인 계약이 없는 경우가 많습니다.tract 전혀. |
| 메시지 형식 | XML 봉투만 해당됩니다. | 일반적으로 JSON 형식이 많이 사용되지만, XML 및 기타 형식도 허용됩니다. |
| 교통편 | 대부분 HTTP를 사용하지만 SOAP는 전송 프로토콜에 독립적입니다. | HTTP, 해당 메서드와 함께 URL 의도를 가지고. |
| 주장 SoapUI | XPath와 XQuery는 응답 봉투와 일치하는 항목을 찾습니다. | JSONPath와 스크립트 어설션이 페이로드와 일치합니다. |
| 일반적인 사용 | 은행, 통신 및 기타tract-heavy 엔터프라이즈 통합. | 데이터 용량이 가벼운 공공 및 모바일 서비스. |
아래 예제에서는 SOAP 기반의 날씨 서비스를 사용하지만, 동일한 실행기 클래스를 사용하면 아무런 변경 없이 REST 기반 테스트 케이스도 실행할 수 있습니다. Java 암호.
SOAPUI란 무엇인가요?
비누UI SOAPUI는 오픈 소스 크로스 플랫폼 웹 서비스 테스트 도구입니다. SOAPUI-Pro 에디션은 중요 웹 서비스를 다루는 기업을 위한 추가 기능을 제공합니다. 웹 서비스는 인터넷 애플리케이션에서 중요한 역할을 합니다.
⚠️ 제품명 참고: 스마트베어 생산 중단 SoapUI 찬성 독립형 제품으로 출시했던 것을 LoadUI Pro 및 ServiceV Pro와 함께 통합했습니다. ReadyAPI무료 버전은 다음을 유지합니다. SoapUI 이름은 동일하며 여전히 활발하게 출시되고 있습니다. 아래 단계는 기존 버전과 현재 버전 모두에서 작동합니다. SoapUI 프로젝트가 열려 있습니다 ReadyAPI.
Selenium?
Selenium 이는 하나의 프로그램이 아니라 사람이 브라우저를 조작하는 방식과 유사하게 브라우저를 제어하는 도구 모음입니다. 여기서는 두 가지 구성원이 중요합니다.
- Selenium — 다양한 플랫폼에서 브라우저 테스트를 자동화하는 도구입니다.
- Selenium 웹드라이버 — 각 브라우저의 기본 자동화 지원 기능을 활용하여 브라우저에 직접 호출합니다.
왜 결합해야 하나요? SoapUI Selenium 한 번의 테스트로
서비스 점검과 화면 점검은 일반적으로 두 개의 별개 소프트웨어 제품군에서 처리되는 별개의 작업입니다. 따라서 두 작업 사이의 경계선에 있는 결함은 두 테스트 모두에서 그대로 남을 가능성이 높습니다. 두 작업을 함께 실행하면 이러한 격차를 해소할 수 있습니다.
- 왕복 여정을 증명하세요. 브라우저에서 제출된 예약은 서비스 응답에 나타나야 합니다. 두 부분을 모두 검증하려면 통합 테스트만 가능합니다.
- 빠르게 상태를 설정하세요. API를 통해 고객을 생성하는 데는 단 1초밖에 걸리지 않지만, 12개의 양식 필드를 통해 고객을 생성하는 데는 1분이 걸리고 실패할 확률도 더 높습니다.
- 오류의 원인을 파악하세요. UI에 잘못된 총액이 표시될 경우, 동일한 실행 과정에서 API 어설션을 통해 서비스 또는 페이지의 문제인지 즉시 확인할 수 있습니다.
- 하나의 데이터 세트를 재사용하세요. 아래 예시의 우편번호와 도시 쌍은 서비스 호출에 사용되며, 브라우저 어설션에도 동일하게 사용될 수 있습니다.
- 중복된 보험을 해지하세요. 서비스 계층에서 이미 검증된 유효성 검사 규칙은 각각 느린 브라우저 테스트를 거칠 필요가 없습니다.
그 대가는 테스트 부담 증가입니다. 두 가지 도구, 두 가지 종속성 세트, 그리고 더 긴 실행 시간이 필요합니다. 실제로 두 가지 방식을 넘나드는 몇몇 여정에 대해서만 결합 테스트를 유지하고, 나머지는 각각 별도의 테스트로 진행하세요. API 또는 순수 브라우저 검사.
Selenium 과 SoapUI
가장 간단하고 쉬운 통합 방법 Selenium 과 SoapUI 사용하는 것입니다 Groovy, 그 SoapUI 광범위하게 지원합니다.
Groovy 객체 지향 스크립팅 언어이며 모든 기능을 포함합니다. Java 도서관, 그래서 모든 Java 키워드와 함수는 다음과 같이 사용할 수 있습니다. Groovy 스크립트를 직접 실행합니다. JVM에서 실행됩니다.Java 가상 머신)은 바로 이러한 기능을 가능하게 해줍니다. Groovy 안으로 들어가다 SoapUI 및 Java Selenium 같은 수업을 공유하는지 테스트해 보세요.
사용을 위한 전제 조건 Selenium 과 SoapUI
코드를 작성하기 전에 다음 항목을 설치하십시오.
⚠️ 버전 참고: Groovy 5.0은 현재 안정 버전이며 JDK 11 이상이 필요하므로 먼저 JDK를 설치하십시오. Groovy 버전은 그것을 따르세요. Selenium 에 추가됩니다 Java Maven 프로젝트 또는 Gradle 다운로드 폴더가 아닌 종속성으로, SoapUI jar 파일은 테스트 파일과 동일한 클래스 경로에 있어야 합니다. 대부분의 첫 시도가 실패하는 이유는 바로 이 부분 때문입니다.
전화 SoapUI 테스트 케이스 실행기 Selenium
아래 코드는 a를 호출합니다. SoapUI 테스트 케이스입니다. 도시와 해당 우편번호의 속성을 설정하고, 실행 시 각 도시와 우편번호의 값을 가져와 일치하지 않는 쌍에 대한 실패 횟수를 보고합니다. 이 코드는 다음 환경에서 실행됩니다. Selenium.
참고 : 여기서는 우편번호와 도시를 저장하기 위해 정적 속성 파일 대신 usePropertyFileFlag=true를 사용합니다. 우편번호와 도시는 setProjectProperties() 메서드를 통해 런타임에 동적으로 전달됩니다.
코드 실행 방법:
- 시작 SoapUI.
- 새로운 테스트 케이스를 시작하세요.
- 새로운 추가 Groovy 단계.
- 샘플 코드를 해당 단계에 복사하여 붙여넣으세요.
- 재생을 클릭하세요.
- 당신이 볼 수 있습니다 Firefox 시작 및 탐색 Google그 후에는 볼 수 있습니다. SoapUI 로그 항목.
- 코드는 다음을 사용하여 실행됩니다. JUnit.
Code 예시
@when("<I use the weather service to get the weather information") public void i_use_the_weather_service_to_get_the_information() { Set<Entry<String, string>> set = zipAndCities.entrySet(); while (iterator,hasNext)) { Entry<String, String> entry = iterator.next(); String zipCode = entry.getkey(); String city = entry.getValue(); String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city}; try{ SoapUITestCaseRunner soapUITestCaseRunner = new SoapUITestCaseRunner(); soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml"); soapUITestCaseRunner.setProjectProperties(prop); soapUITestCaseRunner.setTestSuite("TestSuite1"); soapUITestCaseRunner.setTestCase("TestCase1"); soapUITestCaseRunner.run(); } catch (Exception e) { System.err.println("checking" + zipCode + " failed!"); failureCount++; zipCodes.append(zipCode + " [" + city +"] "); e.printStackTrace(); }finally{ totalCount++; } } } }
⚠️ Code 참고 사항 : 이 코드 조각은 게시된 그대로 재현된 것으로, 컴파일 가능한 클래스가 아닌 코드 조각입니다. 빌드하기 전에 먼저 에서 얻은 이터레이터를 선언해야 합니다. 세트.이터레이터(), 옳은 (이터레이터, hasNext) 동안 에 (iterator.hasNext()) 동안 entry.getkey() 에 entry.getKey()주석을 대문자로 표기합니다. @언제단계 텍스트 시작 부분의 불필요한 문자를 제거하고 사용하십시오. 끈 보다는 현 Set 선언 부분에서. 원문은 그대로 유지되므로 게시된 예제는 손상되지 않습니다.
콘솔 보기에서는 모든 정보를 한눈에 볼 수 있습니다. 테스트 사례실행되었습니다. 가져온 우편번호와 도시 목록을 확인할 수 있습니다. SoapUI 테스트 사례 1.
관측 SoapUI 로그 파일
로그 파일은 운영 체제 또는 소프트웨어 응용 프로그램에서 발생하는 모든 작업을 기록합니다. 로그 파일을 보려면 다음을 참조하십시오. SoapUI 로그 파일을 보려면 메인 디렉토리로 이동하세요. 그러면 해당 파일이 보일 겁니다. soapui.log.
In SoapUI로그 파일은 설치 디렉터리 내의 bin 폴더에 있습니다. 예를 들어 C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin과 같습니다. 최신 설치 환경에서는 버전 폴더의 위치가 다를 수 있습니다. ReadyAPI 설치 프로그램은 자체 bin 폴더에 파일을 저장합니다.
이 로그 파일을 클릭하여 열면 아래 스크린샷과 유사하게 보입니다.
어디에 SoapUI Selenium 통합 과정에서 흔히 문제가 발생합니다.
이 단계에서 발생하는 거의 모든 오류는 테스트 문제라기보다는 배선 문제입니다. 따라서 배선부터 먼저 확인해야 합니다.
| 징후 | 가능한 원인 | 무엇을 확인해야 하나요? |
|---|---|---|
| NoClassDefFoundError 또는 ClassNotFoundException이 발생했습니다. SoapUI테스트케이스러너 | The SoapUI jar 파일이 테스트 클래스패스에 없습니다. | 추가 SoapUI 빌드 파일에 대한 종속성을 지정하거나 클래스패스가 해당 jar 파일을 가리키도록 설정합니다. SoapUI lib 폴더. jar 파일이 누락되어 일반적인 오류로 표시됩니다. Selenium 예외 콘솔에서. |
| 프로젝트 파일을 찾을 수 없습니다. | setProjectFile() 함수는 작업 디렉터리를 기준으로 상대 경로를 해석하는데, 이 작업 디렉터리는 IDE와 빌드 도구에 따라 다릅니다. | 프로젝트 루트 디렉토리에서 실행하거나 절대 경로를 지정하세요. |
| 테스트 스위트 또는 테스트 케이스를 찾을 수 없습니다. | setTestSuite() 및 setTestCase()에 사용되는 이름은 프로젝트 이름과 정확히 일치해야 합니다. | 이름을 그대로 복사하세요 SoapUI 프로젝트 트리입니다. 대소문자를 구분합니다. |
| 해당 상품은 요청에 도달하지 않습니다. | setProjectProperties()가 run() 이후에 실행되었거나 요청에서 해당 속성을 참조하지 않았습니다. | run() 함수를 실행하기 전에 모든 속성을 설정하고, 요청 내에서 속성 자리 표시자 구문을 사용하십시오. |
| 브라우저가 시작되지 않습니다 | 드라이버와 설치된 브라우저의 주요 버전이 서로 다릅니다. | 하자 Selenium 관리자가 드라이버를 확인하거나 드라이버를 브라우저 빌드와 일치시킵니다. |
| IDE에서는 기능이 작동하지만 실행기에서는 작동하지 않습니다. | 이 단계는 데이터 소스와 같은 Pro 버전 전용 기능을 사용합니다. | 라이선스를 확인하거나 오픈소스 기반의 동등한 기능을 사용하여 해당 단계를 다시 구현하십시오. |
실행 프로그램이 정상적으로 종료되고 soapui.log에 예상되는 항목이 표시되면 통합이 제대로 작동하는 것이며 더 광범위한 환경에 통합할 수 있습니다. 자동화 테스트 모음곡.



