Search code examples
soapgatling

How to invoke a SOAP Web service using Gatling 2.2.0


I am new to Gatling and Scala. How to invoke / test a java SOAP web service using Gatling 2.2.0 ? I had searched google and gatling documentation, but could not find any link for that

code:

    val httpProtocol = http
        .baseURL("http://PUNITP83267L:8081/WebServiceProject/services/MyService")
    val headers_0 = Map(
        "accept-encoding" -> "gzip, deflate",
        "Content-Type" -> "text/xml;charset=UTF-8",
        "SOAPAction" -> "",
        "Content-Length" -> "275",
        "Host" -> "PUNITP83267L:8081",
        "Connection" -> "alive",
        "accept-language" -> "en-US,en;q=0.8",
        "user-agent" -> "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
    )

    val scn = scenario("SOAPRecordedSimulation")
        .exec(http("simple Soap Request")
        .post("<?xml version=\"1.0\" encoding=\"UTF-8\"?><soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
              <soapenv:Body><greetMeResponse xmlns=\"http://ws.star.fs.infosys.com\">
              <greetMeReturn>Hello uMESH</greetMeReturn></greetMeResponse>
              </soapenv:Body></soapenv:Envelope>\"\r\n")
        .headers(headers_0))
    setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}

Solution

  • Am not sure if there is a recorder available. But, you could make changes to your script as below:

    class testSOAP extends Simulation {
    
    val httpProtocol = http
                .baseURL("http://PUNITP83267L:8081/WebServiceProject/services/")
    
        val header = Map(
        "accept-encoding" -> "gzip, deflate", 
        "Content-Type" -> "text/xml;charset=UTF-8", 
        "SOAPAction" -> "", "Content-Length" -> "275", 
        "Host" -> "PUNITP83267L:8081", 
        "Connection" -> "alive", 
        "accept-language" -> "en-US,en;q=0.8", 
        "user-agent" -> "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36")
    
        val scn = scenario("SOAPRecordedSimulation")
                .exec(http("simple Soap Request")
                .post("MyService")
                .headers(header)
                .body(StringBody("""<?xml version=\"1.0\" encoding=\"UTF-8\"?><soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Body><greetMeResponse xmlns=\"http://ws.star.fs.infosys.com\"><greetMeReturn>Hello uMESH</greetMeReturn></greetMeResponse></soapenv:Body></soapenv:Envelope>\"\r\n""")))
            setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
    }