Forum Discussion

pammu007's avatar
pammu007
Occasional Visitor
8 years ago

how to set keystore for soapui in a maven based Jenkins automation(on Linux), to access https URIs?

I am trying to Automate/run a soapui TestSuite using mavens and Jenkins in Cloud. 

 

Test Suite invokes SOAP/REST URLs via HTTPs and requires certificates to be configured in the keystore

 

Problem Statement:

While Running the Testsuite using Jenkins, it fails as it cant find the ssl certificates configured in the default soapui_setting.xml being loaded by maven.

 

 

SoapUI Pro 4.6.2 Maven2 TestCase Runner
15:33:57 22:33:57,712 INFO  [SoapUI] Adding [/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/./ext/SOAFrameworks.jar] to extensions classpath
15:33:57 22:33:57,713 INFO  [SoapUI] Adding [/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/./ext/jxl.jar] to extensions classpath
15:33:57 22:33:57,713 INFO  [SoapUI] Adding [/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/./ext/sqljdbc.jar] to extensions classpath
15:33:57 22:33:57,713 INFO  [DefaultSoapUICore] Creating new settings at [/home/ec2-user/soapui-settings.xml]
15:33:57 22:33:57,987 INFO  [SoapUIProGroovyScriptEngineFactory] Setting Script Library to [/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/scripts]
15:33:58 22:33:58,348 INFO  [WsdlProject] Loaded project from [file:/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/NPSRegressionTestSuite-soapui-project.xml]
15:33:58 22:33:58,533 INFO  [SoapUIProGroovyScriptEngineFactory] Setting Script Library to [/home/ec2-user/cloudbees/workspace/NPS/ProductGet/NPS-npsproductget-env_RegressionTest_Build/scripts]
15:34:00 22:34:00,283 INFO  [SoapUIProTestCaseRunner] Running SoapUI tests in project [Regression-jenkins]
15:34:00 22:34:00,285 INFO  [SoapUIProTestCaseRunner] Running Project [Regression-jenkins], runType = SEQUENTIAL
15:34:00 22:34:00,295 INFO  [SoapUIProTestCaseRunner] Running SoapUI testcase [RegressionTestCase]
15:34:00 22:34:00,300 INFO  [SoapUIProTestCaseRunner] running step [StartTestcase]
15:34:01 22:34:01,232 INFO  [log] setLastDataRow : setting the last data row for sheet regression as 1
15:34:01 22:34:01,250 INFO  [SoapUIProTestCaseRunner] running step [DataSource]
15:34:01 22:34:01,838 INFO  [log] Storing the values from row 1 of data sheet regression to SoapUI properties step Properties
15:34:01 22:34:01,983 INFO  [SoapUIProTestCaseRunner] running step [Properties]
15:34:02 22:34:02,021 INFO  [SoapUIProTestCaseRunner] running step [EPS-Style]
15:34:02 22:34:02,165 DEBUG [HttpClientSupport$SoapUIHttpClient] Attempt 1 to execute request
15:34:02 22:34:02,166 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Sending request: POST /productservice/v6 HTTP/1.1
15:34:02 22:34:02,299 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] I/O error closing connection
15:34:02 javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

I didn't find any means to change it apart from the SOAP UI SSL Preferences documented everywhere.

 

Any pointers to do so at runtime using any scripts/builtin commands will be useful.

 

Thanks

Param

1 Reply

  • Hi,

     

    You can change the SSL settings in the SSL preferences dynamically by using the below groovy script.

     

    import com.eviware.soapui.SoapUI
    import com.eviware.soapui.settings.SSLSettings

     

    SoapUI.getSettings().setString(SSLSettings.KEYSTORE, "mykeystore.jks");
    SoapUI.getSettings().setString(SSLSettings.KEYSTORE_PASSWORD, "mypassword");

     

     

    Regards,

    Marcus

    SmartBear Support