2017-12-21 8 views
-1

CSV Struktur und Inhalte zuordnen:SOAPUI Groovy Skript CSV zu lesen und zu Eigenschaften

ClientRef,Status,Type,Service 
107547,NEW,Inspection,Pest 
107321,ALL,WorkOrder,Pest 
107443,UPDATED,Collection,Bin 
107291,ALL,Delivery,Bin 
107411,ALL,Abandoned,Env 
107189,NEW,Food,Env 
107219,NEW,Protection,Env 

I bis SOAPUI Eigenschaften für ClientRef festgelegt haben, Status, Type und Service, sondern müssen den Inhalt der CSV aufzufüllen Datei in die obigen Eigenschaften, um eine SOAP-Anfrage zu senden. Wie kann ich das machen?

+0

ok, wir sehen die CSV. wenn Sie Hilfe erwarten, um Ihren Code zu liefern. – ShpielMeister

+0

Verwenden Sie 'ReadyAPI'? – Rao

Antwort

0

Dies sollte Ihnen den Anfang machen. Ich habe OpenCSV verwendet, um die Daten in eine List von Beans zu lesen, dann über die Liste iteriert und einen Testfall aufgerufen, der Ihre SOAP-Anfrage enthalten würde.

import com.opencsv.bean.CsvBindByName 
    import com.opencsv.bean.CsvToBeanBuilder 

    public class RequestBean { 

     @CsvBindByName(column = "ClientRef", required = true) 
     private String clientRef; 

     @CsvBindByName(column = "Status", required = true) 
     private String status; 

     @CsvBindByName(column = "Type", required = true) 
     private String type; 

     @CsvBindByName(column = "Service", required = true) 
     private String service; 

     public String getClientRef() { 
      return clientRef; 
     } 

     public void setClientRef(String clientRef) { 
      this.clientRef = clientRef; 
     } 

     public String getStatus() { 
      return status; 
     } 

     public void setStatus(String status) { 
      this.status = status; 
     } 

     public String getType() { 
      return type; 
     } 

     public void setType(String type) { 
      this.type = type; 
     } 

     public String getService() { 
      return service; 
     } 

     public void setService(String service) { 
      this.service = service; 
     } 
    } 


    // Read the CSV values into a bean 
    List<RequestBean> beans = new CsvToBeanBuilder(new FileReader("/path-to/RequestDataFile.csv")) 
     .withType(RequestBean.class) 
     .build() 
     .parse() 

    // Iterate through the bean, setting project-level properties and execute a test case. 
    beans.each { 

     testRunner.testCase.testSuite.project.setPropertyValue("ClientRef", it.clientRef) 
     testRunner.testCase.testSuite.project.setPropertyValue("Status", it.status) 
     testRunner.testCase.testSuite.project.setPropertyValue("Type", it.type) 
     testRunner.testCase.testSuite.project.setPropertyValue("Service", it.service) 

     // Execute the test case 
     //def testCase = testRunner.testCase.testSuite.project.getTestSuiteByName("TestSuite").getTestCaseByName("TestCase") 
     //def properties = new com.eviware.soapui.support.types.StringToObjectMap() 
     //testCase.run(properties, false) 
    } 

Sie müssen die soapUI documentation for more about setting properties durch Groovy und Auflösen von externen JAR-Dateien wie OpenCSV sehen.

+0

Prost Craig, auf jeden Fall eine große Hilfe - Vielen Dank! – MDFWRESTLER

+0

Hallo, ich habe OPENCSV 3.9 Jar-Datei heruntergeladen und legte diese in bin \ ext, aber muss etwas fehlen, wie ich mehrere Fehler bekomme - Testfall fehlgeschlagen [org.codehouse.groovy.control.MultipleCompilationErrorsException: Start fehlgeschlagen: Script1. groovy: 9: unerwartetes Token: Bohnen @ Zeile 9, Spalte 1. beans.each { ^ org.codehaus.groovy.syntax.SyntaxException: unerwartete Token: Bohnen @ Zeile 9, Spalte 1. \t bei org.codehaus .groovy.antlr.AntlrParserPlugin.transformCSTIntoAST (AntlrParserPlugin.java:140) \t bei org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST (AntlrParserPlugin.java:108) – MDFWRESTLER

+0

Sie Version 4.1 benötigen für die CSV-to-Bohne Feature. Es ist verfügbar unter https://sourceforge.net/projects/opencsv/ – craigcaulfield

Verwandte Themen