2014-04-07 5 views
3

Java로 SoapUI 테스트를 실행해야합니다. 유용한 링크를 알려주시겠습니까? 테스트로드/실행 방법 (코드 예제)을 보여 주시면 기쁘게 생각합니다.Java에서 soapUI 테스트를 실행하는 방법

내 프로젝트에도 적용 할 수있는 링크가 하나만 있습니다 (http://pritikaur23.wordpress.com/2013/06/16/saving-a-soapui-project-and-sending-requests-using-soapui-api/).

하지만 내가 오류 아래에 직면 동일한 작업을 수행하려고 할 때 -

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/apache/xmlbeans/SchemaTypeSystem; 

내가 필요한 모든 jar 파일을 추가하기 때문에 이상한. 또한 xmlbeans의 다른 버전을 시도했습니다.

감사합니다.

답변

6

코드로 soapUI 테스트를 실행하는 방법을 찾았습니다.


는 작은 설명 :

첫째 - 나는 pom.xml 파일 대신에 직접 포함 .JAR하는 받는다는 프로젝트와 추가 종속성을 만들었습니다. SoapUI 테스트는 다음 종속성을 추가 할 필요했다 경우 : - :

<dependency> 
     <groupId>net.java.dev.jgoodies</groupId> 
     <artifactId>looks</artifactId> 
     <version>2.1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.squirrel-sql.thirdparty-non-maven</groupId> 
     <artifactId>com-fifesoft-rsyntaxtextarea</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.karaf.eik.plugins</groupId> 
     <artifactId>org.apache.commons.collections</artifactId> 
     <version>3.2.1</version> 
    </dependency> 

둘째

<dependency> 
     <groupId>com.github.redfish4ktc.soapui</groupId> 
     <artifactId>maven-soapui-extension-plugin</artifactId> 
     <version>4.6.4.0</version> 
    </dependency> 

을 내가 예외를

java.lang.NoSuchMethodError 

필요한 종속성을 가지고 있기 때문에 나는 또한 약간의 종속성을 추가

환경을 준비한 후 코드를 작성할 수있었습니다. Java로 지정된 soapUI 프로젝트에서 모든 테스트 스위트와 테스트 케이스를 실행할 수있는 코드 예제를 보여줍니다.

// method for running all Test Suites and test cases in the project 
public static void getTestSuite() throws Exception { 

    String suiteName = ""; 
    String reportStr = ""; 

    // variables for getting duration 
    long startTime = 0; 
    long duration = 0; 

    TestRunner runner = null; 

    List<TestSuite> suiteList = new ArrayList<TestSuite>(); 
    List<TestCase> caseList = new ArrayList<TestCase>(); 

    SoapUI.setSoapUICore(new StandaloneSoapUICore(true)); 

    // specified soapUI project 
    WsdlProject project = new WsdlProject("your-soapui-project.xml"); 

    // get a list of all test suites on the project 
    suiteList = project.getTestSuiteList(); 

    // you can use for each loop 
    for(int i = 0; i < suiteList.size(); i++){ 

     // get name of the "i" element in the list of a test suites 
     suiteName = suiteList.get(i).getName(); 
     reportStr = reportStr + "\nTest Suite: " + suiteName; 

     // get a list of all test cases on the "i"-test suite 
     caseList = suiteList.get(i).getTestCaseList(); 


     for(int k = 0; k < caseList.size(); k++){ 

      startTime = System.currentTimeMillis(); 

      // run "k"-test case in the "i"-test suite 
      runner = project.getTestSuiteByName(suiteName).getTestCaseByName(caseList.get(k).getName()).run(new PropertiesMap(), false); 

      duration = System.currentTimeMillis() - startTime; 

      reportStr = reportStr + "\n\tTestCase: " + caseList.get(k).getName() + "\tStatus: " + runner.getStatus() + "\tReason: " + runner.getReason() + "\tDuration: " + duration; 
     } 

    } 

    // string of the results 
    System.out.println(reportStr); 
} 

출력 :

Test Suite: TS_ONE 
    TestCase: TC_ONE Status: FAILED Reason: Cancelling due to failed test step Duration: 1549 
    TestCase: TC_TWO Status: FINISHED Reason: {} Duration: 1277 
    ... 
    TestCase: TC_N Status: FAILED Reason: Cancelling due to failed test step Duration: 1282 
Test Suite: TS_TWO 
    TestCase: TC_BlaBla Status: FINSHED Reason: {} Duration: 1280 
    ... 

나는 위의 정보가 사람을 도움이되기를 바랍니다.

+0

내가 어딘가에서 얻을 것입니다 런타임에 페이로드를 전달하여 API를 테스트하고 싶습니다. –

3

Hudson과 같은 연속 통합 서버를 사용하면 자동으로 단위 테스트를 실행할 수 있습니다. 아래는 JUnit 테스트에서 SoapUI 프로젝트를 통합 한 예입니다.

public void testRunner() throws Exception 
{ 
    SoapUITestCaseRunner runner = new SoapUITestCaseRunner(); 
    runner.setProjectFile("src/dist/sample-soapui-project.xml"); 
    runner.run(); 
} 

자세한 내용 here.

+0

감사 답변에 대한 코드를 제공했다. 내 솔루션과 함께 아래에 덧글을 추가했습니다. – user3505967

+0

@HeLL 이 방법을 사용하는 경우 테스트 사례의 속성을 어떻게 설정할지 결정합니다. –

2

Currentyl 만 SoapUI 의존성이 @HeLL에 필요가

<dependency> 
     <groupId>com.smartbear.soapui</groupId> 
     <artifactId>soapui</artifactId> 
     <version>5.1.3</version> 
     <scope>test</scope> 
    </dependency> 
+0

는 <저장소> soapui soapui 저장소를 추가하는 것을 잊지 마세요 http://www.soapui.org/repository/maven2 pistolPanties

관련 문제